@@ -273,25 +273,28 @@ Labels
273273Milestones
274274----------
275275
276- * Set the milestone according to these rules :
276+ Set the milestone according to these guidelines :
277277
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 ``.
280280
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 ``.
283283
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 ``.
286286
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.
288290
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.
291294
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.
295298
296299.. _pr-merging :
297300
@@ -440,26 +443,34 @@ Other branches are fed through :ref:`automatic <automated-backports>` or
440443targeting other branches is only rarely necessary for special maintenance
441444work.
442445
443- .. backport_strategy :
446+ .. _ backport-strategy :
444447
445448Backport strategy
446449-----------------
447450
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:
449455
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
453459
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.
458469
459470The 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.
463474
464475
465476.. _automated-backports :
0 commit comments