@@ -273,25 +273,28 @@ Labels
273
273
Milestones
274
274
----------
275
275
276
- * Set the milestone according to these rules :
276
+ Set the milestone according to these guidelines :
277
277
278
- * *New features and API changes * are milestoned for the next minor release
279
- ``v3.N.0 ``.
278
+ * *New features and API changes * are milestoned for the next minor release
279
+ ``v3.N.0 ``.
280
280
281
- * *Bugfixes, tests for released code, and docstring changes * are milestoned
282
- for the next patch release ``v3.N.M ``.
281
+ * *Bugfixes, tests for released code, and docstring changes * may be milestoned
282
+ for the next patch release ``v3.N.M ``.
283
283
284
- * *Documentation changes * (all .rst files and examples) are milestoned
285
- ``v3.N-doc ``.
284
+ * *Documentation changes * (all .rst files and examples) may be milestoned
285
+ ``v3.N-doc ``.
286
286
287
- If multiple rules apply, choose the first matching from the above list.
287
+ If multiple rules apply, choose the first matching from the above list. See
288
+ :ref: `backport-strategy ` for detailed guidance on what should or should not be
289
+ backported.
288
290
289
- Setting a milestone does not imply or guarantee that a PR will be merged for that
290
- release, but if it were to be merged what release it would be in.
291
+ The milestone marks the release a PR should go into. It is an intent but can
292
+ be changed because of re-evaluation of the PR scope and maturity or release
293
+ planning.
291
294
292
- All of these PRs should target the main branch. The milestone tag triggers
293
- an :ref: `automatic backport <automated-backports >` for milestones which have
294
- a corresponding branch.
295
+ All Pull Requests should target the main branch. The milestone tag triggers
296
+ an :ref: `automatic backport <automated-backports >` for milestones which have
297
+ a corresponding branch.
295
298
296
299
.. _pr-merging :
297
300
@@ -439,26 +442,34 @@ Other branches are fed through :ref:`automatic <automated-backports>` or
439
442
targeting other branches is only rarely necessary for special maintenance
440
443
work.
441
444
442
- .. backport_strategy :
445
+ .. _ backport-strategy :
443
446
444
447
Backport strategy
445
448
-----------------
446
449
447
- We will always backport to the patch release branch (*v3.N.x *):
450
+ Backports to the patch release branch (*v3.N.x *) are the changes that will be
451
+ included in the next patch (aka bug-fix) release. The goal of the patch
452
+ releases is to fix bugs without adding any new regressions or behavior changes.
453
+ We will always attempt to backport:
448
454
449
- - critical bug fixes (segfault, failure to import, things that the user cannot
450
- work around)
451
- - fixes for regressions against the last two releases.
455
+ - critical bug fixes (segfault, failure to import, things that the
456
+ user can not work around)
457
+ - fixes for regressions introduced in last two minor releases
452
458
453
- Everything else (regressions against older releases, bugs/api
454
- inconsistencies the user can work around in their code) are on a
455
- case-by-case basis, should be low-risk, and need someone to advocate
456
- for and shepherd through the backport.
459
+ and may attempt to backport regressions introduced in older releases.
460
+
461
+ In the case where the backport is not clean, for example if the bug fix is
462
+ built on top of other code changes we do not want to backport, balance the
463
+ effort and risk of re-implementing the bug fix vs the severity of the bug.
464
+ When in doubt, err on the side of not backporting.
465
+
466
+ When backporting a Pull Request fails or is declined re-milestone the original
467
+ PR to the next minor release and leave a comment explaining why.
457
468
458
469
The only changes to be backported to the documentation branch (*v3.N.M-doc *)
459
- are changes to :file: `doc `, :file: `examples `, or :file: `tutorials `.
460
- Any changes to :file: `lib ` or :file: `src ` including docstring-only changes
461
- should not be backported to this branch.
470
+ are changes to :file: `doc `, :file: `examples `, or :file: `tutorials `. Any
471
+ changes to :file: `lib ` or :file: `src `, including docstring-only changes, must
472
+ not be backported to this branch.
462
473
463
474
464
475
.. _automated-backports :
0 commit comments