@@ -9,33 +9,15 @@ companies, and individuals from the community.
99
1010A time-based release process enables the Zephyr project to provide users with a
1111balance of the latest technologies and features and excellent overall quality. A
12- roughly 4 -month release cycle allows the project to coordinate development of
12+ roughly 6 -month release cycle allows the project to coordinate development of
1313the features that have actually been implemented, allowing the project to
1414maintain the quality of the overall release without delays because of one or two
1515features that are not ready yet.
1616
17- The Zephyr release model was loosely based on the Linux kernel model:
18-
19- - Release tagging procedure:
20-
21- - linear mode on main branch,
22- - release branches for maintenance after release tagging.
23- - Each release period will consist of a development phase followed by a
24- stabilization phase. Release candidates will be tagged during the
25- stabilization phase. During the stabilization phase, only stabilization
26- changes such as bug fixes and documentation will be merged unless granted a
27- special exemption by the Technical Steering Committee.
28-
29- - Development phase: all changes are considered and merged, subject to
30- approval from the respective maintainers.
31- - Stabilisation phase: the release manager creates a vN-rc1 tag and the tree
32- enters the stabilization phase
33- - CI sees the tag, builds and runs tests; Test teams analyse the report from the
34- build and test run and give an ACK/NAK to the build
35- - The release owner, with test teams and any other needed input, determines if the
36- release candidate is a go for release
37- - If it is a go for a release, the release owner lays a tag release vN at the
38- same point
17+ Each release period will consist of a development phase followed by a
18+ stabilization phase. Release candidates will be created during the stabilization
19+ phase.
20+
3921
4022.. figure :: release_cycle.svg
4123 :align: center
@@ -52,6 +34,47 @@ The Zephyr release model was loosely based on the Linux kernel model:
5234 Information on previous releases can be found :ref: `here <zephyr_release_notes >`.
5335
5436
37+ Development Phase
38+ *****************
39+
40+ A relatively straightforward discipline is followed with regard to the merging
41+ of patches for each release. At the beginning of each development cycle, the
42+ main branch is said to be open for development. At that time, code which is deemed to be
43+ sufficiently stable (and which is accepted by the maintainers and the wide community) is
44+ merged into the mainline tree. The bulk of changes for a new development cycle
45+ (and all of the major changes) will be merged during this time.
46+
47+ The development phase lasts for approximately five months. At the end of this time,
48+ the release owner will declare that the development phase is over and releases the first
49+ of the release candidates. For the codebase release which is destined to be
50+ 3.1.0, for example, the release which happens at the end of the development phase
51+ will be called 3.1.0-rc1. The -rc1 release is the signal that the time to merge
52+ new features has passed, and that the time to stabilize the next release of the
53+ code base has begun.
54+
55+ Stabilization Phase
56+ *******************
57+
58+ Over the following weeks and depending on the release milestone, only stabilization,
59+ cosmetic updates, bug fixes, documentation improvements, and new tests for
60+ existing features are permitted. (See :ref: `table <release_milestones >` below).
61+
62+ On occasion, more significant changes and new features will be allowed, but such
63+ occasions are rare and require a TSC approval and a justification. As a general
64+ rule, if you miss submitting your code during the development phase for a given
65+ feature, the best thing to do is to wait for the next development cycle. (An
66+ occasional exception is made for drivers for previously unsupported hardware; if
67+ they do not touch any other in-tree code, they cannot cause regressions and
68+ should be safe to add at any time).
69+
70+ As fixes make their way into the mainline, the patch rate will slow over time.
71+ The mainline release owner releases new -rc drops once or twice a week; a normal
72+ series will get up to somewhere between -rc4 and -rc6 before the code base is
73+ considered to be sufficiently stable and the release criteria have been achieved
74+ at which point the final 3.1.0 release is made.
75+
76+ At that point, the whole process starts over again.
77+
5578.. _merge_criteria :
5679
5780Merge Criteria
@@ -108,54 +131,6 @@ Merge Criteria
108131 * Integration Tests (Via twister) on emulation/simulation platforms
109132 * Simulated Bluetooth Tests
110133
111- * Planned
112-
113- * Footprint
114- * Code coverage
115- * Coding Guidelines
116- * Static Analysis (Coverity)
117- * Documentation coverage (APIs)
118-
119- Development Phase
120- *****************
121-
122- A relatively straightforward discipline is followed with regard to the merging
123- of patches for each release. At the beginning of each development cycle, the
124- main branch is said to be open for development. At that time, code which is deemed to be
125- sufficiently stable (and which is accepted by the maintainers and the wide community) is
126- merged into the mainline tree. The bulk of changes for a new development cycle
127- (and all of the major changes) will be merged during this time.
128-
129- The development phase lasts for approximately five months. At the end of this time,
130- the release owner will declare that the development phase is over and releases the first
131- of the release candidates. For the codebase release which is destined to be
132- 3.1.0, for example, the release which happens at the end of the development phase
133- will be called 3.1.0-rc1. The -rc1 release is the signal that the time to merge
134- new features has passed, and that the time to stabilize the next release of the
135- code base has begun.
136-
137- Stabilization Phase
138- *******************
139-
140- Over the next weeks and depending on the release milestone, only stabilization,
141- cosmetic changes, tests, bug and doc fixes are allowed (See :ref: `table
142- <release_milestones>` below).
143-
144- On occasion, more significant changes and new features will be allowed, but such
145- occasions are rare and require a TSC approval and a justification. As a general
146- rule, if you miss submitting your code during the development phase for a given
147- feature, the best thing to do is to wait for the next development cycle. (An
148- occasional exception is made for drivers for previously unsupported hardware; if
149- they do not touch any other in-tree code, they cannot cause regressions and
150- should be safe to add at any time).
151-
152- As fixes make their way into the mainline, the patch rate will slow over time.
153- The mainline release owner releases new -rc drops once or twice a week; a normal
154- series will get up to somewhere between -rc4 and -rc6 before the code base is
155- considered to be sufficiently stable and the release criteria have been achieved
156- at which point the final 3.1.0 release is made.
157-
158- At that point, the whole process starts over again.
159134
160135.. _release_quality_criteria :
161136
@@ -242,16 +217,18 @@ Release Milestones
242217 - Release Manager
243218 * - T-3W
244219 - Feature Freeze (RC1)
245- - No new features after RC1, ONLY stabilization and cosmetic changes, bug and doc
246- fixes are allowed. New tests for existing features are also allowed.
220+ - After RC1, no new features may be introduced. Only stabilization,
221+ cosmetic updates, bug fixes, documentation improvements, and new tests
222+ for existing features are permitted.
247223 - Release Engineering
248224 * - T-2W
249225 - 2nd Release Candidate
250226 - No new features after RC2, ONLY stabilization and cosmetic changes, bug and doc fixes are allowed.
251227 - Release Manager
252228 * - T-1W
253229 - Hard Freeze (RC3)
254- - Only blocker bug fixes after RC3, documentation and changes to release notes are allowed.
230+ - Only blocker bug fixes after RC3, documentation improvements and changes
231+ to release notes are allowed.
255232 Release notes need to be complete by this checkpoint. Release Criteria is
256233 met.
257234 - Release Manager
0 commit comments