Skip to content

Commit 0a4367b

Browse files
authored
Merge pull request #14549 from nextcloud/backport/12484/stable33
2 parents e4201f6 + 175da1e commit 0a4367b

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

‎developer_manual/getting_started/development_process.rst‎

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,50 @@ Bugfixes
4040

4141
If a contribution fixes a bug that also affects older Nextcloud or app releases, it may qualify for a *backport*. Backporting a fix means applying the change on an older version of the code. Git calls this operation *cherry picking*.
4242

43+
Whenever a critical bug (i.e. security vulnerability) is fixed, it is backported to all applicable major releases and - once merged - published in the next set of maintenance releases for all still supported majors (e.g. 28.0.3 -> 28.0.4).
44+
45+
Backporting Considerations
46+
**************************
47+
48+
Major releases that have already been published do not need necessarily need every bug fix. Deciding what to backport is not obvious. There is some judgement involved here.
49+
50+
Here are some things to consider:
51+
52+
- Any major release that has not reached end-of-life status usually receives these backported fixes.
53+
- Backporting even the simplest changes has some level of risk.
54+
- Differences among stable branches - including of shipped and third-pary apps - means there are additional variables outside of the main branch (or even versus the latest stable).
55+
- Fixes often do not have a lot of time in the field (< 4 weeks and it's possible no one has directly interacted with the new code outside of the original developer).
56+
57+
Showstoppers (never backport things that cause these):
58+
59+
- API changes [security related matters will be handled on a case-by-case basis since they have a unique priority]
60+
61+
When assessing whether a bug is critical enough to backport, here are some possible questions to ask yourself:
62+
63+
- Is this really a bug fix? Or is it more an enhancement or a general improvement?
64+
- Is it even applicable to a previously published major release train?
65+
- Is that major release train still supported?
66+
- Is it a security vulnerability? [Yes, backport it without question.]
67+
- How well can the change be tested?
68+
- How confident are we in the fix?
69+
- Is the bug likely to impact many users/environments?
70+
- Is there *any* likelihood this change could inadvertenly introduce data loss?
71+
- Is there *any* likelihood this change could inadvertenly introduce a security matter?
72+
- How "hairy" is the change in general?
73+
- Are we willing to support the backport if the change breaks something unexpected in a prior release?
74+
- Can the change be backported as-is or will it require significant reworking?
75+
- Is the bug causing a lot of support requests or bug reports?
76+
- Does the main tracking Issue have a lot of upvotes/subscribers/comments?
77+
- Is it possible to take a "wait and see" attitude about backporting (i.e. continue to test the fix in main/master branch and wait one maintenance cycle to re-evaluate and only backport if further data from the field suggests its important enough and/or low-risk enough to do so)?
78+
79+
Use your best judgement.
80+
81+
If appropriate, mention any major concerns in the backport PR so other code reviewers can consider them.
82+
83+
Ideally, when triggering/requesting a backport, also explain *why* the backport is necessary (if it's not obvious). This will further help reviewers.
84+
85+
TLDR: Backporting bug fixes to older versions of code can have unintended side effects. Not every fix needs to be backported. Use caution.
86+
4387
Automatic Backport
4488
******************
4589

0 commit comments

Comments
 (0)