diff --git a/specification/templates/CHANGELOG.md b/specification/templates/CHANGELOG.md index 9b83eab..67c2f93 100644 --- a/specification/templates/CHANGELOG.md +++ b/specification/templates/CHANGELOG.md @@ -17,6 +17,8 @@ and this repository adheres to [Semantic Versioning](https://semver.org/spec/v2. ## Version 0.1.0 - 2021-04-01 +Status: **Deprecated** (End of Support expected on 2024-04-01) + ### General - This release marks the first release of the repository. diff --git a/specification/versioning.md b/specification/versioning.md index 0d069cd..df71b43 100644 --- a/specification/versioning.md +++ b/specification/versioning.md @@ -77,3 +77,35 @@ until the end of that component’s existence: MUST be provided as the latest `PATCH` version for the latest `MINOR` version of the latest `MAJOR` and SHOULD NOT be provided for previous `PATCH` or `MINOR` releases. + +## Release life cycle management + +Each repository `MUST` use [GitHub releases mechanism](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases) +to create a versioned snapshot of components and features +delivered to the users. If the release is also distributed via other +distribution channels (e.g. CDN, Registries, AppStores) it `MUST` state +its life cycle status according to following rules by any means available +in the given software distribution solution. + +Each release `MUST` clearly state the life cycle +status and described as: Supported, Deprecated, End of Support. +At minimum the required information should be included in [CHAANGELOG.md](https://github.com/signalfx/gdi-specification/blob/main/specification/templates/CHANGELOG.md) +and equivalent mechanism provided by system used for distributing software. + +If new version is released previously released versions `MUST` be evaluated +according to stability guarantees and marked as: + +- Latest release `SHOULD` be marked as **Supported** indicating that this is + version recommended to new and existing users +- If applicable latest release of previous `MAJOR` line that is still under + active development `MUST` be marked as **Supported** indicating that previous + `MAJOR` line is under active development and users not ready to adopt + latest `MAJOR` version may use previous versions. +- Release which was superseded by newer version, thus has entered deprecation + period `MUST` be marked as **Deprecated** and `MUST` indicated planned + end of support date. This indicates that users should plan for upgrade to + one of supported versions before date given. +- Release which deprecation period has ended `MUST` be marked as + **End of support** and `MUST` indicate date on which the release was marked + as end of support. This indicates that support for given release is no longer + provided and the users should immediately upgrade to newer supported version.