Add assorted improvements to the version policy draft. (#16362)
Austin S. Hemmelgarn committed
Nov 10, 2023 at 08:44 UTC
b570425e9e99631e81599a7fdeaf4757bec321f6
1 file changed
+21
-5
packaging/VERSIONING_AND_PUBLIC_API.md
+21
-5
@@ -63,14 +63,20 @@ The remainder of the document outlines the public API of the Netdata agent.
63
64
We define two categories of components within the public API:
65
66
-- Strictly defined components are guaranteed not to change in a backwards incompatible manner without an associated major version bump, and will have impending changes announced in the release notes at least one minor release before they are changed.
67
-- Loosely defined components are guaranteed not to change in a backwards incompatible manner without an associated minor version bump, and will have impending changes announced in the release notes at least one minor release before they are changed.
66
+- Strictly defined components are guaranteed not to change in a backwards incompatible manner without an associated
67
+ major version bump, and will have impending changes announced in the release notes at least one minor release
68
+ before they are changed.
69
+- Loosely defined components are guaranteed not to change in a backwards incompatible manner without an associated
70
+ minor version bump, and will have impending changes announced in the release notes at least one minor release
71
+ before they are changed.
72
73
There are also a few things we handle specially, which will be noted later in the document.
74
75
### Strictly Defined Public API Components
76
73
-The following aspects of the public API are strictly defined, and are guaranteed not to change in a backwards incompatible manner without an associated major version increase, and such changes will be announced in the release notes at least one minor release prior to being merged:
77
+The following aspects of the public API are strictly defined, and are guaranteed not to change in a backwards
78
+incompatible manner without an associated major version increase, and such changes will be announced in the release
79
+notes at least one minor release prior to being merged:
80
81
- All mandatory build dependencies which are not vendored in the Netdata Agent code. This includes, but is not
82
limited to:
@@ -80,7 +86,11 @@ The following aspects of the public API are strictly defined, and are guaranteed
86
- The REST API provided by the Netdata Agent’s internal web server, accessible via the `/api` endpoint. This
87
does not extend to the charts, labels, or other system-specific data returned by some API endpoints.
88
- The protocol used for streaming and replicating data between Netdata Agents.
83
-- The set of features provided by default in our pre-built packages.
89
+- The protocol used for communicating with external data collection plugins.
90
+- The APIs provided by the `python.d.plugin` and `charts.d.plugin` data collection frameworks.
91
+- The set of optional features supported by the Agent which are provided by default in our pre-built packages. If
92
+ support for an optional feature is being completely removed from the agent, that is instead covered by what
93
+ component that feature is part of.
94
95
### Loosely Defined Public API Components
96
@@ -88,15 +98,21 @@ The following aspects of the public API are loosely defined. They are guaranteed
98
incompatible manner without an associated minor version increase, and such changes will be announced in the release
99
notes at least one minor release prior to being merged:
100
91
-- Configuration options in any configuration file normally located under `/etc/netdata` on a typical install.
101
+- Configuration options in any configuration file normally located under `/etc/netdata` on a typical install,
102
+ as well as their default values.
103
- Environment variables that are interpreted by the Netdata Agent, or by the startup code in our official OCI
104
container images.
105
- The exact set of charts provided, including chart families, chart names, and provided metrics.
106
- The exact set of supported data collection sources and data export targets.
107
- The exact set of system service managers we officially support running the Netdata Agent under.
108
+- The exact set of alert delivery mechanisms supported by the Netdata Agent.
109
- The high-level implementation of the Netdata Agent’s integrated web server.
110
- The v0 and v1 dashboard UIs provided through the Netdata Agent’s internal web server.
111
112
+All loosely defined API components may also change in a backwards incompatible manner if the major version is
113
+increased. Large scale changes to these components may also warrant a major version increase even if there are no
114
+backwards incompatible changes to strictly defined public API components.
115
+
116
### Special Cases
117
118
The following special exceptions to the public API exist: