Skip to content

Commit 92f9d6f

Browse files
[Triage] Improve the release priority page
Renamed from release blockers and adding more workflow details
1 parent 7f6f3cc commit 92f9d6f

File tree

4 files changed

+109
-41
lines changed

4 files changed

+109
-41
lines changed

index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ for your topic of interest. You can also use the search function in the top-left
4444
triage/about
4545
triage/workflow
4646
triage/guidelines
47-
triage/release_blockers
47+
triage/release_priorities
4848
triage/sprint_instructions
4949

5050
.. toctree::

triage/release_blockers.rst

Lines changed: 0 additions & 35 deletions
This file was deleted.

triage/release_priorities.rst

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
.. _doc_bug_triage_release_priorities:
2+
3+
Release priority tracking
4+
=========================
5+
6+
Release priorities are issues that we aim to fix before we release the
7+
next version. There are a few different things to consider when
8+
determining if an issue is a release priority or not.
9+
10+
See below for an explanation of how to
11+
`identify release priorities <#identifying-release-priority-issues>`__,
12+
and how to asign a `severity <#severity>`__ to them. But generally
13+
prefer to flag issues as release priorities when in doubt, it is better
14+
to have to remove issues, if it means not missing potentially critical issues.
15+
16+
Release priorities have their own project, `4.x Release Priorities <https://github.com/orgs/godotengine/projects/61>`__.
17+
18+
Identifying release priority issues
19+
-----------------------------------
20+
21+
The following is a checklist to determine if an issue is a release priority or not.
22+
23+
If an issue is old (over 6 months), and haven't gotten worse, or gotten new duplicate issues
24+
or users that report having encountered the issue, it is likely not a release priority.
25+
26+
If you are unsure if an issue is a priority prefer to flag issues as priorities, but
27+
add a note in the tracker clarifying this.
28+
29+
Is it a regression?
30+
~~~~~~~~~~~~~~~~~~~
31+
32+
Any regression in the current release cycle is considered a release priority. A regression
33+
is any feature or part of the engine that used to work but no longer works, for example something
34+
that worked in 4.5.1 but doesn't work in 4.6.dev2. Regressions are also assigned the “regression” label.
35+
36+
Regressions from previous cycles can also be considered release priorities depending on when they happened
37+
and how severe they are (for example, a bug that occurs in 4.5 but not 4.4 can be considered a release priority
38+
during the 4.6 dev cycle).
39+
40+
Regressions should be fixed as soon as possible. Regressions from previous cycles should also be backported
41+
where appropriate.
42+
43+
It is important to flag anything that looks like a regression as a priority. Some changes to existing behavior
44+
is intentional, but the relevant maintainers should make this evaluation and will remove the issue if it
45+
isn't a regression. And even if the change in behavior is intentional there might be missing compatibility code
46+
or documentation for the change which needs to be evaluated.
47+
48+
Is it a crash with significant user impact?
49+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50+
51+
An engine issue that causes crashes or freezes and affects a lot of users is a release priority. This is
52+
mostly determined based on many users reporting the same issue, or that remains an issue over a long time.
53+
54+
This often involves graphics issues and can be hard to identify or result in unclear bug reports, identifying
55+
if the time the issues started line up with recent graphics driver updates can be a good indicator.
56+
57+
Is it a showstopper bug?
58+
~~~~~~~~~~~~~~~~~~~~~~~~
59+
60+
Showstopper bugs are release priorities. A showstopper issue is any issue that prevents users from performing key tasks,
61+
like using certain parts of the engine, or that causes loss of data or work, and that has no workaround or that causes
62+
significant workflow disruption.
63+
64+
Examples of showstopper issues are:
65+
* Parts of the editor or engine that do not work, or are difficult to use, including on some platforms.
66+
* Errors that causes loss of data or work, for example deleting or corrupting project files.
67+
* Issues using or importing file formats.
68+
* Issues with specific hardware, like controllers not working or rendering being broken on certain graphics hardware.
69+
70+
Is it a bug in a new feature?
71+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72+
73+
Issues in new features should be priorities even if the issue itself isn't critical otherwise.
74+
Fixing issues in new features might require changing significant parts of the feature in ways that breaks compatibility,
75+
or it might be difficult to fix the issue without breaking compatibility. This means that fixing issues in new features,
76+
and making sure issues in new features are evaluated by maintainers, is especially important.
77+
78+
Is it a security issue?
79+
~~~~~~~~~~~~~~~~~~~~~~~
80+
81+
Any security issue is a release priority. Security issues include things like vulnerabilities in engine or third-party code,
82+
like remote code execution, but also engine issues that cause damage or data loss for the user, like the editor deleting
83+
files outside the project directory.
84+
85+
Is it a new platform requirement?
86+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
87+
88+
Any new platform requirement that will affect users is a release priority. This includes things like Google Play changing
89+
the required target API for Android, or operating system updates or changes that affect users or exported projects on those platforms.
90+
91+
Severity
92+
--------
93+
94+
Release priorities should also be assigned a severity, this is usually
95+
handled by either the production team or the specific :ref:`area maintainers <doc_areas>`, so this is only a rough
96+
outline to use to assign this if you are able:
97+
98+
* *Immediate Blocker*: This must be resolved before the next dev/beta/RC snapshot.
99+
* *Release Blocker*: This must be resolved as soon as possible, and before entering the RC phase or the next RC snapshot.
100+
* *Very bad*: This is a critical issue which either affects a lot of users, or is a showstopper for a significant part of the userbase.
101+
* *Bad*: This is an annoying issue which may affect a lot of users, but isn’t a showstopper.
102+
* *Not Critical*: This is an overall minor issue, but which may affect a new feature and would be nice to fix before stable.
103+
* *Unassessed*: This issue was added to the tracker but without assessing its severity. This needs to be evaluated by maintainers as it may be a release priority.

triage/workflow.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Triage checklist
2323
author to add the missing information.
2424
- `Check for duplicates <#check-for-duplicates>`__.
2525
- Check if the issue is a recent regression. If it is, add it to the
26-
:ref:`release blocker tracker <doc_bug_triage_release_blockers>` and
26+
:ref:`release priorities <doc_bug_triage_release_priorities>` and
2727
mark it as a “regression”.
2828
- Add initial labels.
2929
- `Assign a milestone <#assigning-milestones>`__ if relevant.
@@ -78,7 +78,7 @@ having tested development versions) please either ask the author to test
7878
with a stable version or test the bug yourself. If it *doesn’t* occur on
7979
a past release it is considered a regression and should be tagged with
8080
the “regression” label, and should also be added to the “4.x Release
81-
Blockers” project. See :ref:`doc_bug_triage_release_blockers` for details.
81+
Priorities” project. See :ref:`doc_bug_triage_release_priorities` for details.
8282

8383
Try to tag an issue as specifically as possible, adding “needs testing”
8484
and “needs work” if necessary. Don’t worry about misidentifying issues,
@@ -104,20 +104,20 @@ Note that this is for assigning milestones to *open* issues, please see
104104
and milestones.
105105

106106
Below is an outline of the different milestones we use, but as a general
107-
rule you can assume that issues that aren’t release blockers, or
107+
rule you can assume that issues that aren’t release priorities, or
108108
specific to ``3.x``, shouldn’t have milestones assigned.
109109

110110
For the ``master`` branch:
111111

112112
* ``4.x``: For Godot 4 in general, i.e. the ``master`` branch. We do not use the ``4.x`` milestone on issues, issues with no milestone are assumed to be relevant for the current development cycle.
113-
* *The current development version*: Should be assigned to issues that are :ref:`release blockers <doc_bug_triage_release_blockers>`, or otherwise prioritized for the current version.
113+
* *The current development version*: Should be assigned to issues that are :ref:`release priorities <doc_bug_triage_release_priorities>`, or otherwise prioritized for the current version.
114114
* *The next release version*: When we enter feature freeze we usually create a new milestone used for PRs that are approved but won’t make it into the current release, this milestone is not used for issues.
115115
* *Older Godot 4 versions*: This is used for issues that are only relevant for this specific version (or older versions), but not any newer version. An example of this would be an issue that was solved in ``4.5`` as part of an enhancement, but that enhancement cannot be cherry-picked for ``4.4`` and a separate issue is necessary to track the specific solution for ``4.4`` (and older, if relevant). For such issues it can also be relevant to add “[4.4]” at the beginning of the issue title to help clarify it is specific to this version.
116116

117117
For Godot 3:
118118

119119
* ``3.x``: For the ``3.x`` branch in general. Used for issues that are only relevant for the ``3.x`` version, and occurs on the current development version of ``3.x``. For these issues it can also help to add “[3.x]” at the beginning of the issue title to help identifying the issue.
120-
* Other Godot 3 milestones work the same way as for the ``master`` branch, except we do not track release blockers for ``3.x``.
120+
* Other Godot 3 milestones work the same way as for the ``master`` branch, except we do not track release priorities for ``3.x``.
121121

122122
Testing an Issue
123123
----------------

0 commit comments

Comments
 (0)