Skip to content

Commit 79674a9

Browse files
committed
Implement new maintenance policy
Main changes are: * Releases are maintained by a pre-defined, fixed period of time. One year for bug fixes and two years for security fixes. * Distinction between severe security issues and regular security issues is removed. * Npm versioning is updated to match not use the pre-release `-` separator.
1 parent fb46bd0 commit 79674a9

File tree

1 file changed

+25
-28
lines changed

1 file changed

+25
-28
lines changed

guides/source/maintenance_policy.md

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
Maintenance Policy for Ruby on Rails
44
====================================
55

6-
Support of the Rails framework is divided into four groups: New features, bug
7-
fixes, security issues, and severe security issues. They are handled as
6+
Support of the Rails framework is divided into three groups: New features, bug
7+
fixes, and security issues. They are handled as
88
follows, all versions, except for security releases, in `X.Y.Z`, format.
99

1010
--------------------------------------------------------------------------------
@@ -35,31 +35,32 @@ New Features
3535
------------
3636

3737
New features are only added to the main branch and will not be made available
38-
in point releases.
38+
in Patch releases.
3939

4040
Bug Fixes
4141
---------
4242

43-
Only the latest release series will receive bug fixes. Bug fixes are typically
44-
added to the main branch, and backported to the x-y-stable branch of the latest
45-
release series if there is sufficient need. When enough bugs fixes have been added
46-
to an x-y-stable branch, a new patch release is built from it. For example, a
47-
theoretical 1.2.2 patch release would be built from the 1-2-stable branch.
43+
Minor releases will receive bug fixes for one year after the first release in
44+
its series. For example, if a theoretical 1.1.0 is released on January 1, 2023, it
45+
will receive bug fixes until January 1, 2024. After that, it will be considered
46+
unsupported.
4847

49-
In special situations, where someone from the Core Team agrees to support more series,
50-
they are included in the list of supported series.
48+
Bug fixes are typically added to the main branch, and backported to the x-y-stable
49+
branch of the latest release series if there is sufficient need. When enough bugs
50+
fixes have been added to an x-y-stable branch, a new Patch release is built from it.
51+
For example, a theoretical 1.2.2 Patch release would be built from the 1-2-stable branch.
5152

5253
For unsupported series, bug fixes may coincidentally land in a stable branch,
5354
but won't be released in an official version. It is recommended to point your
5455
application at the stable branch using Git for unsupported versions.
5556

56-
**Currently included series:** `8.0.Z`.
57-
5857
Security Issues
5958
---------------
6059

61-
The current release series and the next most recent one will receive patches
62-
and new versions in case of a security issue.
60+
Minor releases will receive security fixes for two years after the first release in
61+
its series. For example, if a theoretical 1.1.0 is released on January 1, 2023, it
62+
will receive security fixes until January 1, 2025. After that, it will reach its
63+
end-of-life.
6364

6465
These releases are created by taking the last released version, applying the
6566
security patches, and releasing. Those patches are then applied to the end of
@@ -78,32 +79,28 @@ there could be breaking changes in the security release. A security release
7879
should only contain the changes needed to ensure the app is secure so that it's
7980
easier for applications to remain upgraded.
8081

81-
**Currently included series:** `8.0.Z`, `7.2.Z`.
82-
83-
Severe Security Issues
84-
----------------------
85-
86-
For severe security issues all releases in the current major series, and also the
87-
last release in the previous major series will receive patches and new versions. The
88-
classification of the security issue is judged by the core team.
89-
90-
**Currently included series:** `8.0.Z`, `7.2.Z`.
91-
92-
Unsupported Release Series
82+
End-of-life Release Series
9383
--------------------------
9484

95-
When a release series is no longer supported, it's your own responsibility to
85+
When a release series reaches its end-of-life, it's your own responsibility to
9686
deal with bugs and security issues. We may provide backports of the fixes and
9787
merge them, however there will be no new versions released. We
9888
recommend to point your application at the stable branch using Git. If you are
9989
not comfortable maintaining your own versions, you should upgrade to a supported
10090
version.
10191

92+
Release schedule
93+
----------------
94+
95+
We aim to release a version containing new features every six months. In the rare case where
96+
no release was made in one year, we will extend the support period for the previous release
97+
until the next release is made.
98+
10299
npm Packages
103100
------------
104101

105102
Due to a constraint with npm, we are unable to use the 4th digit for security
106103
releases of [npm packages][] provided by Rails. This means that instead of the
107-
equivalent gem version `7.0.1.4`, the npm package will be versioned `7.0.1-4`.
104+
equivalent gem version `7.0.1.4`, the npm package will be versioned `7.0.104`.
108105

109106
[npm packages]: https://www.npmjs.com/org/rails

0 commit comments

Comments
 (0)