docs/DEPRECATION.md
This document covers Vector's deprecation policy and process.
In the course of Vector's development it can be necessary to deprecate configuration and (rarely) features to keep Vector maintainable and its configuration interface consistent for users. To avoid breaking compatibility abruptly, we follow the following deprecation policy.
Vector will retain deprecated configuration or features for at least one minor version (this will transition to one major version when Vector hits 1.0).
This means that deprecations will be eligible for removal in the next minor release after they are announced; however,
we will typically aim to support deprecations for a longer time period depending on their development maintenance
burden. For example, a deprecation announced in v0.16.0 would be eligible to be removed in v0.17.0 but may be
removed later in v0.20.0.
Exceptions can be made for deprecations related to security issues or critical bugs. These may result in removals being introduced in a release without being announced in a prior release.
Examples of possible deprecations in Vector:
A deprecation goes through three stages: Deprecation, Migration, and Removal. These are described below.
A configuration option or feature in Vector is marked as deprecated.
When this happens, we will notify by:
WARN level if Vector detects deprecated configuration or features being used
on start-up, during vector validate, or at runtime. This log message will lead with the text DEPRECATED to
make it easy to filter for.Users will have 1 or more minor releases to migrate away from using the deprecation using the instructions provided in the deprecation notice.
A deprecated configuration option or feature in Vector is removed.
When this happens, we will notify by:
When possible, Vector will error at start-up when a removed configuration option or feature is used.
When introducing a deprecation into Vector, the pull request introducing the deprecation should:
website/content/en/highlights for
the next release with a description and directions for transitioning if applicable.deprecation: "description of the deprecation"
to the cue data for the option or feature. If the cue schema does not support deprecation for whatever you
are deprecating yet, add it to the schema and open an issue to have it rendered on the website.(formerly OldName).WARN level starting with the word DEPRECATION if Vector detects
the deprecated configuration or feature being used (when possible).When removing a deprecation in a subsequent release, the pull request should:
! in the title after the type/scope