Skip to content

Commit e89213e

Browse files
tacaswelljklymaktimhoffm
committed
DOC: clarify the milestoning and backport policy wording
- make less prescriptive - fix formatting (the milestone guidelines were in a nested list?) - minor wording tweaks closes #25649 Co-authored-by: Jody Klymak <jklymak@gmail.com> Co-authored-by: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com>
1 parent 60163b5 commit e89213e

File tree

1 file changed

+36
-25
lines changed

1 file changed

+36
-25
lines changed

doc/devel/coding_guide.rst

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -273,25 +273,28 @@ Labels
273273
Milestones
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

@@ -439,26 +442,34 @@ Other branches are fed through :ref:`automatic <automated-backports>` or
439442
targeting other branches is only rarely necessary for special maintenance
440443
work.
441444

442-
.. backport_strategy:
445+
.. _backport-strategy:
443446

444447
Backport strategy
445448
-----------------
446449

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:
448454

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
452458

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.
457468

458469
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.
462473

463474

464475
.. _automated-backports:

0 commit comments

Comments
 (0)