From e7362bc4929733fe8fb35cf2da1642af25c7cf70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Wed, 5 Jan 2022 15:52:33 +0100 Subject: [PATCH 1/9] add stable release policy --- RELEASES.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/RELEASES.md b/RELEASES.md index 408f51e8a75..27d0e65e398 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -21,6 +21,40 @@ To summarize: **All our ibc-go releases allow chains to communicate successfully We ensure all major releases are supported by relayers ([hermes](https://github.com/informalsystems/ibc-rs), [rly](https://github.com/strangelove-ventures/relayer) and [ts-relayer](https://github.com/confio/ts-relayer) at the moment) which can relay between the new major release and older releases. We have no plans of upgrading to an IBC protocol specification v2.0, as this would be very disruptive to the ecosystem. +## Stable Release Policy + +A Major Release series continues to receive bug fixes (released as a Patch Release) until it reaches End Of Life. A Major Release series reaches End of Life 6 months after the publication of the next Major Release series. For example, if the current Major Release series is v1, then v1 will be supported for up to 6 months after the publication of v2. + +Only the following major release series have a stable release status: + +TODO: create table, use specific release lines (v1.1.x, v1.2.x) + + v1 will be supported until x.x.x. + v2 will be supported until 6 months after the publication of v3. + +At the time this policy was adopted, v1 and v2 had already been released. The 6 month policy for the v1 Major Release series will go into affect on the day this policy was merged into the codebase as opposed to when v2 was released. + +### What pull requests will be included in stable patch-releases? + +Pull requests that fix bugs and add features that fall in the following categories: + +* **Severe regressions**. +* Bugs that may cause **client applications** to be **largely unusable**. +* Bugs that may cause **state corruption or data loss**. +* Bugs that may directly or indirectly cause a **security vulnerability**. +* Non-breaking features that are strongly requested by the community. +* Non-breaking CLI improvements that are strongly requested by the community. + +### What pull requests will NOT be automatically included in stable point-releases? + +As rule of thumb, the following changes will **NOT** be automatically accepted into stable point-releases: + +* **State machine changes**, unless the previous behaviour would result in a consensus halt. +* **Protobuf-breaking changes**. +* **Client-breaking changes**, i.e. changes that prevent gRPC, HTTP and RPC clients to continue interacting with the node without any change. +* **API-breaking changes**, i.e. changes that prevent client applications to *build without modifications* to the client application's source code. +* **CLI-breaking changes**, i.e. changes that require usage changes for CLI users. + ## Graphics The decision tree above was generated with the following code: From dc36beeca54e1ad0e4e3481ef785126c56aac877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Wed, 5 Jan 2022 15:58:42 +0100 Subject: [PATCH 2/9] add release series table --- RELEASES.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index 27d0e65e398..92aaa9f8a27 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -27,10 +27,11 @@ A Major Release series continues to receive bug fixes (released as a Patch Relea Only the following major release series have a stable release status: -TODO: create table, use specific release lines (v1.1.x, v1.2.x) - - v1 will be supported until x.x.x. - v2 will be supported until 6 months after the publication of v3. +|Release|End of Life Date| +|-------|-------| +|`v1.1.x`|July 05, 2022| +|`v1.2.x`|July 05, 2022| +|`v2.0.x`|6 months after v3 release| At the time this policy was adopted, v1 and v2 had already been released. The 6 month policy for the v1 Major Release series will go into affect on the day this policy was merged into the codebase as opposed to when v2 was released. From f2c60b678b2baa46302b8d6ddafa1f1b8f695951 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Wed, 5 Jan 2022 16:00:50 +0100 Subject: [PATCH 3/9] point-release -> patch-release --- RELEASES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASES.md b/RELEASES.md index 92aaa9f8a27..bb347096a13 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -46,7 +46,7 @@ Pull requests that fix bugs and add features that fall in the following categori * Non-breaking features that are strongly requested by the community. * Non-breaking CLI improvements that are strongly requested by the community. -### What pull requests will NOT be automatically included in stable point-releases? +### What pull requests will NOT be automatically included in stable patch-releases? As rule of thumb, the following changes will **NOT** be automatically accepted into stable point-releases: From 92d36c66f9de9c7c402aea88afc4c0ee54867ca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?colin=20axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Fri, 7 Jan 2022 11:15:51 +0100 Subject: [PATCH 4/9] Apply suggestions from code review Co-authored-by: Carlos Rodriguez --- RELEASES.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index bb347096a13..907d4123196 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -23,7 +23,7 @@ We ensure all major releases are supported by relayers ([hermes](https://github. ## Stable Release Policy -A Major Release series continues to receive bug fixes (released as a Patch Release) until it reaches End Of Life. A Major Release series reaches End of Life 6 months after the publication of the next Major Release series. For example, if the current Major Release series is v1, then v1 will be supported for up to 6 months after the publication of v2. +A major release series continues to receive bug fixes (released as a patch release) until it reaches End Of Life. A major release series reaches End of Life 6 months after the publication of the next major release series. For example, if the current major release series is v1, then v1 will be supported for up to 6 months after the publication of v2. Only the following major release series have a stable release status: @@ -33,7 +33,7 @@ Only the following major release series have a stable release status: |`v1.2.x`|July 05, 2022| |`v2.0.x`|6 months after v3 release| -At the time this policy was adopted, v1 and v2 had already been released. The 6 month policy for the v1 Major Release series will go into affect on the day this policy was merged into the codebase as opposed to when v2 was released. +At the time this policy was adopted, v1 and v2 had already been released. The 6 month policy for the v1 Major Release series will go into effect on the day this policy was merged into the codebase as opposed to when v2 was released. ### What pull requests will be included in stable patch-releases? From 41a80624e3abe6cd6d90e772b6446ffef74218ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Fri, 7 Jan 2022 16:07:32 +0100 Subject: [PATCH 5/9] change LTS to be 1 year with potential extension --- RELEASES.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index 907d4123196..37565187fd9 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -23,17 +23,17 @@ We ensure all major releases are supported by relayers ([hermes](https://github. ## Stable Release Policy -A major release series continues to receive bug fixes (released as a patch release) until it reaches End Of Life. A major release series reaches End of Life 6 months after the publication of the next major release series. For example, if the current major release series is v1, then v1 will be supported for up to 6 months after the publication of v2. +A major release series continues to receive bug fixes (released as a patch release) until it reaches End Of Life. A major release series reaches End of Life 1 year after its initial release. An extension to the End of Life date is made if the next major release is not made for 6 months. In this situation, the End of Life is the date of publication for the next major release plus 6 months. + +For example, if the current major release series is v1 and was released on January 1st, 2022, then v1 will be supported at least until January 1st, 2023. If v2 is published on August 1st 2022, then v1's End of Life will be March 1st, 2023. Only the following major release series have a stable release status: |Release|End of Life Date| |-------|-------| -|`v1.1.x`|July 05, 2022| -|`v1.2.x`|July 05, 2022| -|`v2.0.x`|6 months after v3 release| - -At the time this policy was adopted, v1 and v2 had already been released. The 6 month policy for the v1 Major Release series will go into effect on the day this policy was merged into the codebase as opposed to when v2 was released. +|`v1.1.x`|September 03, 2022| +|`v1.2.x`|September 10, 2022| +|`v2.0.x`|November 09, 2022| ### What pull requests will be included in stable patch-releases? From 6a3228c1b9e488c3abc491032a47749ed2460613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?colin=20axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Wed, 12 Jan 2022 17:39:45 +0100 Subject: [PATCH 6/9] Update RELEASES.md Co-authored-by: Damian Nolan --- RELEASES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASES.md b/RELEASES.md index 37565187fd9..7c00108c7df 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -23,7 +23,7 @@ We ensure all major releases are supported by relayers ([hermes](https://github. ## Stable Release Policy -A major release series continues to receive bug fixes (released as a patch release) until it reaches End Of Life. A major release series reaches End of Life 1 year after its initial release. An extension to the End of Life date is made if the next major release is not made for 6 months. In this situation, the End of Life is the date of publication for the next major release plus 6 months. +A major release series continues to receive bug fixes (released as a patch release) until it reaches end of life. A major release series reaches end of life 1 year after its initial release. An extension to the end of life date is made if the next major release is not made for 6 months. In this situation, the end of life is the date of publication for the next major release plus 6 months. For example, if the current major release series is v1 and was released on January 1st, 2022, then v1 will be supported at least until January 1st, 2023. If v2 is published on August 1st 2022, then v1's End of Life will be March 1st, 2023. From ebd2521ba1075f424a03acd918331e55e009221f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?colin=20axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Thu, 13 Jan 2022 12:06:13 +0100 Subject: [PATCH 7/9] Update RELEASES.md Co-authored-by: Carlos Rodriguez --- RELEASES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASES.md b/RELEASES.md index 7c00108c7df..f674ea52caf 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -25,7 +25,7 @@ We ensure all major releases are supported by relayers ([hermes](https://github. A major release series continues to receive bug fixes (released as a patch release) until it reaches end of life. A major release series reaches end of life 1 year after its initial release. An extension to the end of life date is made if the next major release is not made for 6 months. In this situation, the end of life is the date of publication for the next major release plus 6 months. -For example, if the current major release series is v1 and was released on January 1st, 2022, then v1 will be supported at least until January 1st, 2023. If v2 is published on August 1st 2022, then v1's End of Life will be March 1st, 2023. +For example, if the current major release series is v1 and was released on January 1st, 2022, then v1 will be supported at least until January 1st, 2023. If v2 is published on August 1st 2022, then v1's end of life will be March 1st, 2023. Only the following major release series have a stable release status: From 5ea8c11fa75f934275a206c545d94afb9eb5b833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?colin=20axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Fri, 14 Jan 2022 10:26:28 +0100 Subject: [PATCH 8/9] Update RELEASES.md Co-authored-by: Carlos Rodriguez --- RELEASES.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/RELEASES.md b/RELEASES.md index f674ea52caf..71377a8e81b 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -23,7 +23,9 @@ We ensure all major releases are supported by relayers ([hermes](https://github. ## Stable Release Policy -A major release series continues to receive bug fixes (released as a patch release) until it reaches end of life. A major release series reaches end of life 1 year after its initial release. An extension to the end of life date is made if the next major release is not made for 6 months. In this situation, the end of life is the date of publication for the next major release plus 6 months. +The beginning of a new major release series is marked by the release of a new major version. A major release series is comprised of all minor and patch releases made under the same major version number. The series continues to receive bug fixes (released as minor or patch releases) until it reaches end of life. The date when a major release series reaches end of life is determined by one of the two following methods: +- If the next major release is made within the first 6 months, then the end of life date of the major release series is 1 year after its initial release. +- If the next major release is made 6 months after the initial release, then the end of life date of the major release series is 6 months after the release date of the next major release. For example, if the current major release series is v1 and was released on January 1st, 2022, then v1 will be supported at least until January 1st, 2023. If v2 is published on August 1st 2022, then v1's end of life will be March 1st, 2023. From 28f9107887a4284e04b2a4a8486f3e608d17f1a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Tue, 1 Feb 2022 13:37:35 +0100 Subject: [PATCH 9/9] update end of life table --- RELEASES.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index 71377a8e81b..27f0874c650 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -33,9 +33,11 @@ Only the following major release series have a stable release status: |Release|End of Life Date| |-------|-------| -|`v1.1.x`|September 03, 2022| -|`v1.2.x`|September 10, 2022| -|`v2.0.x`|November 09, 2022| +|`v1.1.x`|July 01, 2022| +|`v1.2.x`|July 01, 2022| +|`v2.0.x`|February 01, 2023| + +**Note**: The v1 major release series will reach end of life 6 months after merging this policy. v2 will reach end of life one year after merging this policy. ### What pull requests will be included in stable patch-releases?