|
| 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 assign a `severity <#severity>`__ to them. When in doubt, mark issues as |
| 13 | +release priorities. We can always remove issues from the list, but it is critical |
| 14 | +that we know about potentially important issues before releasing a version. |
| 15 | + |
| 16 | +Release priorities are tracked in a public 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 hasn'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 issues that remain open over a long period of 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 cause 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 break 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 | +If something seems like a serious security issue, please contact Godot's security team directly immediately |
| 86 | +([security@godotengine.org](mailto:security@godotengine.org)). The team will take the appropriate steps to address the issue. |
| 87 | + |
| 88 | +Is it a new platform requirement? |
| 89 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 90 | + |
| 91 | +Any new platform requirement that will affect users is a release priority. This includes things like Google Play changing |
| 92 | +the required target API for Android, or operating system updates or changes that affect users or exported projects on those platforms. |
| 93 | + |
| 94 | +Severity |
| 95 | +-------- |
| 96 | + |
| 97 | +Release priorities should also be assigned a severity, this is usually |
| 98 | +handled by either the production team or the specific :ref:`area maintainers <doc_areas>`, so this is only a rough |
| 99 | +outline to use to assign this if you are able: |
| 100 | + |
| 101 | +* *Immediate Blocker*: This must be resolved before the next dev/beta/RC snapshot. |
| 102 | +* *Release Blocker*: This must be resolved as soon as possible, and before entering the RC phase or the next RC snapshot. |
| 103 | +* *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. |
| 104 | +* *Bad*: This is an annoying issue which may affect a lot of users, but isn’t a showstopper. |
| 105 | +* *Not Critical*: This is an overall minor issue, but which may affect a new feature and would be nice to fix before stable. |
| 106 | +* *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. |
0 commit comments