tisonkun commented on code in PR #433: URL: https://github.com/apache/pulsar-site/pull/433#discussion_r1114357062
########## contribute/release-policy.md: ########## @@ -0,0 +1,93 @@ +--- +id: release-policy +title: Release policy +--- + +## Release semantics + +The Pulsar project follows a variant of [Semantic Versioning](http://semver.org/spec/v2.0.0.html). Existing releases can expect patches for bugs and security vulnerabilities. New features will target minor releases. The difference is that a major version bump will not carry any special meaning in terms of "big features" included in the release or breaking API changes. Instead, it would simply signal a new long-term support (LTS) release. + +For example, + +* 2.10.0 is a feature release; +* 2.10.1 is a patch release; +* 2.11.0 is a feature release; +* 3.0.0 is the first LTS release; +* 3.1.0 is a feature release; +* 3.2.0 is a feature release; +* 3.2.1 is a patch release; +* 4.0.0 is a LTS release. + +## Compatibility between releases + +When upgrading an existing cluster, it is important to upgrade components linearly. + +Before 3.0, upgrade should be done linearly through each minor version. For example, when upgrading from 2.8 to 2.10, it is important to upgrade to 2.9 before going to 2.10. + +Starting from 3.0, additionally, live upgrade/downgrade between one LTS and the next one is guaranteed. For example, + +* 3.0 -> 4.0 -> 3.0 is OK; +* 3.2 -> 4.0 -> 3.2 is OK; +* 3.2 -> 4.4 -> 3.2 is OK; +* 3.2 -> 5.0 is _not_ OK. + +## Release frequency and support expectation + +| | Release frequency | Active Support | Security Support | +|-----------------|-------------------|----------------|------------------| +| LTS release | Every 18 months | 24 months | 36 months | +| Feature release | Every 3 months | 6 months | 6 months | +| Patch release | When it is ready | N/A | N/A | + +This can be translated into: + +* The last 2 LTS releases and the last 2 feature releases are supported. +* Security patches are provided for the past 3 LTS releases and 2 feature releases + +Therefore, users can choose between stay in an LTS release until they are ready to jump into the next LTS, or try the latest releases which contains required features. + +## Supported Versions + +| Version | Released | Active Support | Security Support | Latest | +|---------|---------------|-----------------|------------------|--------| +| 2.10 | April 2022 | April 2023 | April 2023 | 2.10.3 | +| 2.9 | November 2021 | November 2022 | November 2022 | 2.9.4 | +| 2.8 | June 2021 | June 2022 | June 2022 | 2.8.4 | +| 2.7 | November 2020 | November 2021 | November 2021 | 2.7.5 | +| 2.6 | June 2020 | June 2021 | June 2021 | 2.6.4 | +| 2.5 | January 2020 | January 2021 | January 2021 | 2.5.2 | +| 2.4 | July 2019 | July 2020 | July 2020 | 2.4.2 | Review Comment: This table is possibly to be data-driven, perhaps by `data/release-pulsar.js`. I'm investigating for doing it programatically, but leave it as is for the first review so that we know what it basically looks like. The final result should be as https://endoflife.date/python where: 1. Distinguish supported/unsupported versions by color. 2. Calculate the time interval. 3. Link to release notes. 4. Del line for unsupported versions. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
