@@ -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
@@ -440,26 +443,34 @@ Other branches are fed through :ref:`automatic <automated-backports>` or
440
443
targeting other branches is only rarely necessary for special maintenance
441
444
work.
442
445
443
- .. backport_strategy :
446
+ .. _ backport-strategy :
444
447
445
448
Backport strategy
446
449
-----------------
447
450
448
- We will always backport to the patch release branch (*v3.N.x *):
451
+ Backports to the patch release branch (*v3.N.x *) are the changes that will be
452
+ included in the next patch (aka bug-fix) release. The goal of the patch
453
+ releases is to fix bugs without adding any new regressions or behavior changes.
454
+ We will always attempt to backport:
449
455
450
- - critical bug fixes (segfault, failure to import, things that the user cannot
451
- work around)
452
- - fixes for regressions against the last two releases.
456
+ - critical bug fixes (segfault, failure to import, things that the
457
+ user can not work around)
458
+ - fixes for regressions introduced in last two minor releases
453
459
454
- Everything else (regressions against older releases, bugs/api
455
- inconsistencies the user can work around in their code) are on a
456
- case-by-case basis, should be low-risk, and need someone to advocate
457
- for and shepherd through the backport.
460
+ and may attempt to backport regressions introduced in older releases.
461
+
462
+ In the case where the backport is not clean, for example if the bug fix is
463
+ built on top of other code changes we do not want to backport, balance the
464
+ effort and risk of re-implementing the bug fix vs the severity of the bug.
465
+ When in doubt, err on the side of not backporting.
466
+
467
+ When backporting a Pull Request fails or is declined re-milestone the original
468
+ PR to the next minor release and leave a comment explaining why.
458
469
459
470
The only changes to be backported to the documentation branch (*v3.N.M-doc *)
460
- are changes to :file: `doc `, :file: `examples `, or :file: `tutorials `.
461
- Any changes to :file: `lib ` or :file: `src ` including docstring-only changes
462
- should not be backported to this branch.
471
+ are changes to :file: `doc `, :file: `examples `, or :file: `tutorials `. Any
472
+ changes to :file: `lib ` or :file: `src `, including docstring-only changes, must
473
+ not be backported to this branch.
463
474
464
475
465
476
.. _automated-backports :
0 commit comments