@@ -240,29 +240,81 @@ You can find more information [in the full LTS plan](https://github.com/nodejs/l
240
240
241
241
#### How does LTS work?
242
242
243
- Once a stable branch enters LTS, no new features may be added to that release. Changes are
244
- limited to bug fixes, security updates, possible npm updates, documentation updates, and certain
245
- performance improvements that can be demonstrated to not break existing applications.
246
- Semver-minor changes are only permitted if required for bug fixes. Semver-major changes are only
247
- permitted if required for critical security and bug fixes.
248
-
249
- Once a stable branch moves into Maintenance mode, only ** critical** bugs, ** critical** security fixes,
250
- and documentation updates will be permitted.
243
+ Once a stable branch enters LTS, changes in that branch are limited to bug
244
+ fixes, security updates, possible npm updates, documentation updates, and
245
+ certain performance improvements that can be demonstrated to not break existing
246
+ applications. Semver-minor changes are only permitted if required for bug fixes
247
+ and then only on a case-by-case basis with LTS WG and possibly Core Technical
248
+ Committee (CTC) review. Semver-major changes are permitted only if required for
249
+ security related fixes.
250
+
251
+ Once a stable branch moves into Maintenance mode, only ** critical** bugs,
252
+ ** critical** security fixes, and documentation updates will be permitted.
253
+
254
+ #### Landing semver-minor commits in LTS
255
+
256
+ The default policy is to not land semver-minor or higher commits in any LTS
257
+ branch. However, the LTS WG or CTC can evaluate any individual semver-minor
258
+ commit and decide whether a special exception ought to be made. It is
259
+ expected that such exceptions would be evaluated, in part, on the scope
260
+ and impact of the changes on the code, the risk to ecosystem stability
261
+ incurred by accepting the change, and the expected benefit that landing the
262
+ commit will have for the ecosystem.
263
+
264
+ Any collaborator who feels a semver-minor commit should be landed in an LTS
265
+ branch should attach the ` lts-agenda ` label to the pull request. The LTS WG
266
+ will discuss the issue and, if necessary, will escalate the issue up to the
267
+ CTC for further discussion.
268
+
269
+ #### How are LTS Branches Managed?
270
+
271
+ There are currently three LTS branches: ` v4.x ` , ` v0.10 ` , and ` v0.12 ` . Each
272
+ of these is paired with a "staging" branch: ` v4.x-staging ` , ` v0.10-staging ` ,
273
+ and ` v0.12-staging ` .
274
+
275
+ As commits land in ` master ` , they are cherry-picked back to each staging
276
+ branch as appropriate. If the commit applies only to the LTS branch, the
277
+ PR must be opened against the * staging* branch. Commits are selectively
278
+ pulled from the staging branch into the LTS branch only when a release is
279
+ being prepared and may be pulled into the LTS branch in a different order
280
+ than they were landed in staging.
281
+
282
+ Any collaborator may land commits into a staging branch, but only the release
283
+ team should land commits into the LTS branch while preparing a new
284
+ LTS release.
251
285
252
286
#### How can I help?
253
287
254
288
When you send your pull request, consider including information about
255
289
whether your change is breaking. If you think your patch can be backported,
256
290
please feel free to include that information in the PR thread.
257
291
258
- #### Who is doing the backporting?
259
-
260
- The current plan is for commits to cherry pick into a staging branch (e.g. v4.x-staging),
261
- which can be done by anyone. The preference would be for the individual landing the commit
262
- on master to backport to staging branches if it is appropriate.
292
+ Several LTS related issue and PR labels have been provided:
293
+
294
+ * ` lts-watch-v4.x ` - tells the LTS WG that the issue/PR needs to be considered
295
+ for landing in the ` v4.x-staging ` branch.
296
+ * ` lts-watch-v0.10 ` - tells the LTS WG that the issue/PR needs to be considered
297
+ for landing in the ` v0.10-staging ` branch.
298
+ * ` lts-watch-v0.12 ` - tells the LTS WG that the issue/PR needs to be considered
299
+ for landing in the ` v0.12-staging ` branch.
300
+ * ` land-on-v4.x ` - tells the release team that the commit should be landed
301
+ in a future v4.x release
302
+ * ` land-on-v0.10 ` - tells the release team that the commit should be landed
303
+ in a future v0.10 release
304
+ * ` land-on-v0.12 ` - tells the release team that the commit should be landed
305
+ in a future v0.12 release
306
+
307
+ Any collaborator can attach these labels to any PR/issue. As commits are
308
+ landed into the staging branches, the ` lts-watch- ` label will be removed.
309
+ Likewise, as commits are landed in a LTS release, the ` land-on- ` label will
310
+ be removed.
311
+
312
+ Collaborators are encouraged to help the LTS WG by attaching the appropriate
313
+ ` lts-watch- ` label to any PR that may impact an LTS release.
263
314
264
315
#### How is an LTS release cut?
265
316
266
- When the LTS working group determines that a new LTS release is required, selected commits
267
- will be picked from the staging branch to be included in the release. This process of making
268
- a release will be a collaboration between the LTS working group and the Release team.
317
+ When the LTS working group determines that a new LTS release is required,
318
+ selected commits will be picked from the staging branch to be included in the
319
+ release. This process of making a release will be a collaboration between the
320
+ LTS working group and the Release team.
0 commit comments