Migrate bug-triage directory to contributing docs

This commit is contained in:
Lukas Tenbrink
2025-09-11 22:13:16 +02:00
committed by GitHub
parent 7849544605
commit 317b0fc000
4 changed files with 0 additions and 606 deletions

View File

@@ -1,95 +0,0 @@
# Introduction to Triage
So you are looking to help with bug triage? First of all, thank you! Your help means a lot!
Bug triage is a fundamental part of our development, this should not be surprising,
but this process is far more than just confirming that a bug is happening. The more information
we have on a bug, what problems it causes, when it was introduced, what areas it affects, and
so on makes a lot of difference. A bug being thoroughly triaged bug helps other contributors a lot.
Knowing something was an intentional change means not wasting time trying to "fix" it,
knowing all the details means solving the complete issue and not just part of it,
and it minimizes the risk of introducing new bugs due to not having the complete picture.
## Tasks
Listed below are basic instructions and descriptions of different triage tasks.
When relevant these sections link to more detailed documentation on these tasks.
For more detailed instructions on the triage process in general, please see [Bug Triage Overview](/bug-triage/triage-workflow.md).
### Confirming report details
The most basic step of triage is to make sure an issue report is filled in properly.
For details on what a report should contain please see [triage workflow](/bug-triage/triage-workflow.md).
### Identifying duplicates
Duplicate reports add a lot of clutter to the tracker, and critical details reported on one report
might not be present on others. Identifying duplicate issues is very helpful to ensure everything
is tracked in one place. This can be difficult due to different wording, but using tags can help narrow
things down, make sure to also look at the pinned issues at the top of the issue page in case the author
missed these.
Another tool that can help identifying duplicates are the team trackers, for a list of these see
[Team Triage Trackers](/bug-triage/team-trackers.md).
<!-- TODO: Add link to potential future searching instructions -->
### Testing bugs
Testing bugs is a critical part of bug triage. Even just confirming that a bug occurs
is useful. Any information here is helpful, not being able to reproduce a bug with the
provided steps or MRP adds information about what might be going on.
If you're unable to reproduce the bug it could mean that the steps are incomplete,
or that the MRP is incorrect. In this case you might need to ask the author for further
details or ask them to create an MRP.
<!-- TODO: Links? -->
### Creating MRPs
If you are able to reproduce a bug, but there is no attached MRP, you can help by creating one.
This is especially important if the steps are more complex, or if the issue requires specific content,
like a 3D model or a texture. Having an MRP is very useful for the process of solving issues and testing
solutions, and not having to create the conditions again streamlines this process.
### Bisecting regressions
Figuring out when a particular bug occurred can greatly help fixing the issue, or at least pointing to what might
have caused it. Knowing when a bug occurred also helps with deciding if a fix for a bug should be cherry-picked to
a previous version. When a bug is reproducible in a current release but not in a previous one (i.e. a feature broke),
we call it a regression.
Bisecting can be done at multiple levels, the basic level is checking if, for example, a bug that was
confirmed on `4.4` is also reproducible on `4.3`. Next you can test development releases, such as `4.4.beta1`,
these can be found in the [Godot archive](https://godotengine.org/download/archive/).
Once the specific development release has been identified you can go one step further and
[bisect](https://docs.godotengine.org/en/latest/contributing/workflow/bisecting_regressions.html) the regression.
Make sure to announce the fact that you are bisecting a bug on the issue report to make sure no one else starts
bisecting it as well, as bisecting can take some time.
### Testing confirmed bugs with other environments
Some bugs may have platform-specific components which may or may not be apparent in the initial report.
Notably issues that relate to areas like rendering, windowing, input, audio, file I/O,
or buildsystem - or outright crash reports - can often be platform specific.
If you have a different setup from the bug reporter (operating system, GPU, etc.) and the issue can
reasonably be expected to involve platform-specific components, it can be very useful to test the bug
with your setup. Testing the bug and reporting if you can reproduce it, or if you can't,
adds important information that can help identifying the cause of the bug, and making sure that contributors
know how to reproduce it. This applies especially if someone reports that they can't reproduce the bug
on Windows but you are able to do so on macOS for example.
Here extra details like your graphics driver version, different hardware like a specific sound card or similar can also be relevant.
### Bringing bugs to the attention of maintainers
In cases where a report might have gone unnoticed by maintainers, for example when a report has been confirmed but nothing
has happened for a long time (and you can reproduce it too), linking the issue in the team's RC channel can help bringing attention to the issue.
For a list of these see [Team Triage Trackers](/bug-triage/triage-workflow.md#team-triage-trackers), as well as mentioning it in the
[#bugsquad](https://chat.godotengine.org/channel/bugsquad) channel if it needs more attention by triagers. For editor related bugs
you can mention it in the [#editor](https://chat.godotengine.org/channel/editor) channel.
<!-- TODO: Further details on when it might be relevant to mention, instructions to ping individual maintainers? -->

View File

@@ -1,27 +0,0 @@
# Release Blocker Tracking
Release blockers are issues that we aim to fix before we release the next version. There are a few different things to consider when determining if
an issue is a release blocker or not. Generally any bug that has appeared during the current cycle should be considered release blockers (and assigned the “regression” label),
if the issue isn't considered critical it will marked as not critical, see [severity](#severity) below.
Issues with new features can also be considered release blockers. This is because once a feature is part of a released version (and isn't considered experimental)
it is much harder to change how that feature works without breaking compatibility
(see the [release policy page](https://docs.godotengine.org/en/latest/about/release_policy.html#what-are-the-criteria-for-compatibility-across-engine-versions)).
This means that fixing issues, especially minor issues that wouldn't be critical otherwise, should be done early to avoid compatibility issues later.
<!-- TODO: Add more details here -->
Release blockers have their own project, [4.x Release Blockers](https://github.com/orgs/godotengine/projects/61).
## Severity
Release blockers should also be assigned a severity, this is usually handled by either the production team or the specific [area maintainers](/bug-triage/team-trackers.md),
so this is only a rough outline to use to assign this if you are able:
* *Not Critical*: For issues that do not have to be fixed before the next release, but would be good if we can to reduce newly introduced issues.
* *Bad*: For issues that should be fixed before the next release, but are less critical.
* *Very bad*: Like *Bad* but worse.
* *Release Blocker*: For issues that we absolutely need to fix before releasing. These include issues that severely hurt engine usability, breaks existing functionality, or are new features that
don't work. In some cases less critical bugs can be considered a release blocker if it involves new API and delaying fixing the problem means restricting the solution due to
compatibility issues.
* *Immediate Blocker*: For issues that should be solved as soon as possible, rather than before release. This includes issues that make the engine completely unusable, breaks the buildsystem,
or are dangerous or damaging (such as security issues or privacy issues).

View File

@@ -1,343 +0,0 @@
## Team Triage Trackers
<!-- TODO: Add basic introduction -->
To search for PRs with requested reviews from a team, add `team-review-requested:` to the search bar, followed by the
team name (see below for each team, the link opens a search on GitHub). Note that this *doesn't* show PRs that have already
been reviewed by that team, any review comments at all, from any member of a specific team, will remove the request,
so this is not always helpful.
Some GitHub labels aren't neatly covered by trackers, below is a list of teams and labels that don't (currently) have trackers:
* 2D Nodes:
- [godotengine/2d-nodes](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2F2d-nodes)
- `topic:2d` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3A2d) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3A2d)
* 3D Nodes:
- [godotengine/3d-nodes](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2F3d-nodes)
- `topic:3d` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3A3d) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3A3d)
* Documentation:
- [godotengine/documentation](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fdocumentation)
- `documentation` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Adocumentation) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Adocumentation)
* Tests:
- [godotengine/tests](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Ftests)
- `topic:tests` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Atests) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Atests)
For more information about the different GitHub labels, please see the [labels documentation](https://docs.godotengine.org/en/latest/contributing/workflow/bug_triage_guidelines.html#labels).
<!-- TODO: Consider using a table -->
### Animation
Tracked in:
* [Animation Team Issue Triage](https://github.com/orgs/godotengine/projects/74) (This tracker doesn't follow the pattern of the other ones)
RC channel:
* [#animation](https://chat.godotengine.org/channel/animation)
GitHub team:
* [godotengine/animation](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fanimation)
GitHub label:
* `topic:animation` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Aanimation) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Aanimation)
### Asset Pipeline
Tracked in:
* [Asset Pipeline Issue Triage](https://github.com/orgs/godotengine/projects/72) (This tracker doesn't follow the pattern of the other ones)
RC channel:
* [asset-pipeline](https://chat.godotengine.org/channel/asset-pipeline)
GitHub team:
* [godotengine/import](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fimport)
GitHub label:
* `topic:import` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Aimport) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Aimport)
### Audio
Tracked in:
* [Audio Issue Triage](https://github.com/orgs/godotengine/projects/101)
RC channel:
* [#audio](https://chat.godotengine.org/channel/audio)
GitHub team:
* [godotengine/audio](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Faudio)
GitHub label:
* `topic:audio` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Aaudio) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Aaudio)
### Buildsystem
Tracked in:
* [Buildsystem Issue Triage](https://github.com/orgs/godotengine/projects/53)
RC channel:
* [#buildsystem](https://chat.godotengine.org/channel/buildsystem)
GitHub team:
* [godotengine/buildsystem](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fbuildsystem)
GitHub label:
* `topic:buildsystem` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Abuildsystem) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Abuildsystem)
### Core
Tracked in:
* [Core Issue Triage](https://github.com/orgs/godotengine/projects/95)
RC channel:
* [#core](https://chat.godotengine.org/channel/core)
Categories:
* Threads
* Math
* String
* Input
* Resource
* Templates
* Debugger
* Variant
* Main
* Viewport
* IO
* Object/ClassDB
These categories largely match the specific folders the classes are in.
GitHub team:
* [godotengine/core](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fcore)
GitHub labels:
* `topic:core` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Acore) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Acore)
* `topic:input` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Ainput) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Ainput)
### Editor
Tracked in:
* [Editor Issue Triage](https://github.com/orgs/godotengine/projects/111)
RC channel:
* [#editor](https://chat.godotengine.org/channel/editor)
Categories:
* Docks:
Editor docks (Inspector, Scene etc.) and dock layout
* 2D Editor:
2D editor and related features, including GUI
* 3D Editor:
3D editor and related features, including gizmos
* Shader Editor:
Includes visual shaders
* Script Editor:
Text editing (Scripts, TextFiles)
* Animation:
`AnimationPlayer`, `AnimationTree` and animation-related systems
* Tiles:
`TileMapLayer` and `TileSet` editors
* Project Export:
Export dialog, export process and related features
* Project Manager:
Project Manager and its components
* Plugins:
Related to editor plugins, both user (e.g. `EditorInterface`) and native (any plugin not covered by other categories)
* Game View:
Issues relating to the embedded game view
* AssetLib:
AssetLib integration with the editor
* Debugger:
Related to editor/runtime interactions
* Systems:
Misc editor systems not covered by other categories
* Usability:
User experience, editor visuals (themes etc.)
* File System:
Related to `EditorFileSystem`, cache, UIDs, previews
* Asset Pipeline:
Asset import, models and materials, imported animations
GitHub teams:
* [godotengine/2d-editor](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2F2d-editor)
* [godotengine/3d-editor](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2F3d-editor)
* [godotengine/debugger](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fdebugger)
* [godotengine/docks](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fdocks)
* [godotengine/script-editor](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fscript-editor)
* [godotengine/usability](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fusability)
GitHub label:
* `topic:editor` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Aeditor) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Aeditor)
* `topic:export` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Aexport) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Aexport)
* `topic:i18n` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Ai18n) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Ai18n)
* `topic:plugin` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Aplugin) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Aplugin)
### GDExtension
Tracked in:
* [GDExtension Issue Triage](https://github.com/orgs/godotengine/projects/81/views/1)
RC Channel:
* [#gdextension](https://chat.godotengine.org/channel/gdextension)
GitHub team:
* [godotengine/gdextension](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fgdextension)
GitHub label:
* `topic:gdextension` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Agdextension) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Agdextension)
### GDScript
Tracked in:
* [GDScript Issue Triage](https://github.com/orgs/godotengine/projects/79)
RC channel:
* [#gdscript](https://chat.godotengine.org/channel/gdscript)
GitHub team:
* [godotengine/gdscript](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fgdscript)
GitHub label:
* `topic:gdscript` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Agdscript) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Agdscript)
### GUI
Tracked in:
* [GUI Issue Triage](https://github.com/orgs/godotengine/projects/100)
RC channel:
* [#gui](https://chat.godotengine.org/channel/gui)
GitHub team:
* [godotengine/gui-nodes](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fgui-nodes)
GitHub label:
* `topic:gui` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Agui) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Agui)
### Navigation
Tracked in:
* [Navigation Issue Triage](https://github.com/orgs/godotengine/projects/103)
RC channel:
* [#navigation](https://chat.godotengine.org/channel/navigation)
GitHub team:
* [godotengine/navigation](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fnavigation)
GitHub label:
* `topic:navigation` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Anavigation) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Anavigation)
### .NET / Mono
Tracked in:
* [.NET Issue Triage](https://github.com/orgs/godotengine/projects/83) (Internal tracker)
RC channel:
* [#dotnet](https://chat.godotengine.org/channel/dotnet)
GitHub team:
* [godotengine/dotnet](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fdotnet)
GitHub label:
* `topic:dotnet` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Adotnet) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Adotnet)
### Network
Tracked in:
* [Network Issue Triage](https://github.com/orgs/godotengine/projects/96)
RC channel:
* [#networking](https://chat.godotengine.org/channel/networking)
GitHub team:
* [godotengine/network](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fnetwork)
GitHub labels:
* `topic:multiplayer` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Amultiplayer) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Amultiplayer)
* `topic:network` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Anetwork) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Anetwork)
### Particles
Tracked in:
* [Particles Issue Triage](https://github.com/orgs/godotengine/projects/115)
RC channel:
* [#vfx-tech-art](https://chat.godotengine.org/channel/vfx-tech-art)
GitHub team:
* No dedicated team (currently)
GitHub label:
* `topic:particles` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Aparticles) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Aparticles)
### Physics
Tracked in:
* [Physics Issue Triage](https://github.com/orgs/godotengine/projects/102)
RC channel:
* [#physics](https://chat.godotengine.org/channel/physics)
GitHub team:
* [godotengine/physics](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fphysics)
GitHub label:
* `topic:physics` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Aphysics) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Aphysics)
### Platforms
Tracked in:
* [Platforms Issue Triage](https://github.com/orgs/godotengine/projects/84)
RC channel:
* [#platforms](https://chat.godotengine.org/channel/platforms)
Has a "Platform" field for each platform type to fill in.
GitHub teams:
* [godotengine/android](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fandroid)
* [godotengine/ios](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fios)
* [godotengine/linux-bsd](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Flinux-bsd)
* [godotengine/macos](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fmacos)
* [godotengine/uwp](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fuwp)
* [godotengine/web](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fweb)
* [godotengine/windows](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fwindows)
GitHub labels:
* `topic:porting` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Aporting) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Aporting)
* `platform:android` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Aplatform%3Aandroid) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Aplatform%3Aandroid)
* `platform:ios` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Aplatform%3Aios) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Aplatform%3Aios)
* `platform:linuxbsd` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Aplatform%3Alinuxbsd) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Aplatform%3Alinuxbsd)
* `platform:macos` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Aplatform%3Amacos) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Aplatform%3Amacos)
* `platform:uwp` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Aplatform%3Auwp) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Aplatform%3Auwp)
* `platform:web` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Aplatform%3Aweb) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Aplatform%3Aweb)
* `platform:windows` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Aplatform%3Awindows) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Aplatform%3Awindows)
### Rendering
Tracked in:
* [Rendering Issue Triage](https://github.com/orgs/godotengine/projects/78)
RC channel:
* [#rendering](https://chat.godotengine.org/channel/rendering)
GitHub teams:
* [godotengine/rendering](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Frendering)
* [godotengine/shaders](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fshaders)
GitHub labels:
* `topic:rendering` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Arendering) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Arendering)
* `topic:shaders` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Ashaders) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Ashaders)
### XR
Tracked in:
* [XR Issue Triage](https://github.com/orgs/godotengine/projects/104)
RC channel:
* [#xr](https://chat.godotengine.org/channel/xr)
GitHub team:
* [godotengine/xr](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+team-review-requested%3Agodotengine%2Fxr)
GitHub label:
* `topic:xr` [issues](https://github.com/godotengine/godot/issues?q=is%3Aissue%20state%3Aopen%20label%3Atopic%3Axr) [PRs](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+label%3Atopic%3Axr)

View File

@@ -1,141 +0,0 @@
# Bug Triage Overview
This is page is meant to outline in more detail the process of triaging bugs. For a basic introduction, please see the
[introduction to triage](/bug-triage/introduction.md) page. If you have any questions, or if there's anything missing,
please don't hesitate to ask in the [#bugsquad](https://chat.godotengine.org/channel/bugsquad) channel.
## Triage Checklist
* Make sure the issue is [valid](#check-issue-validity):
- If the issue is not filled in properly, i.e. ignores the template, ask the author to do so.
- If the issue is in the wrong place, direct the author to the correct place.
- If the issue is spam, close it.
* Make sure the issue has all the required information, if not ask the author to add the missing information.
* [Check for duplicates](#check-for-duplicates).
* Check if the issue is a recent regression. If it is, add it to the [release blocker tracker](/bug-triage/release-blockers.md) and mark
it as a “regression”.
* Add initial labels.
* [Assign a milestone](#assigning-milestones) if relevant.
* Test the issue if you are able, or ask others to test it.
- If you cannot replicate the issue, and it has been fixed, close the issue.
- If you need more details after testing it, ask the author. And add the “needs testing” and “needs work” labels as needed.
- If you can replicate the issue, mark it as “confirmed”.
* Finalize the assessment, updating any labels or milestone if needed and adding it to the appropriate [team trackers](/bug-triage/team-trackers.md).
## Check Issue Validity
The first step of triage is to confirm that the issue is valid and filled in properly. This means that:
* It is a bug report, for the engine, and not a:
- Feature proposal, belonging in [Godot Proposals](https://github.com/godotengine/godot-proposals)
- Online documentation issue, belonging in [Godot Docs](https://github.com/godotengine/godot-docs) (this should generally be transferred)
- A support question, these should be directed to other [community channels](https://godotengine.org/community/)
* Has all the required information:
- The engine version tested with (with a specific version hash if not using an official release)
- System information in most cases
- Clear and detailed reproduction steps
- A valid MRP if the steps are not trivial, or if the issue depends on scene setup or requires data, such as animations, meshes, etc., where getting
the required setup to test are not trivial.
If the report is missing this information, ask for this information before proceeding. If the issue lacks critical information, or is written in a way that makes it
difficult to classify the issue, it should be tagged with “needs work”. Otherwise you can proceed and add some basic tags to the issue and add the “needs testing” tag.
Issues that are clearly spam should be closed and tagged as “spam” and marked as archived.
## Initial Assessment
Once the basic details of the issue have been verified the issue should be tagged with the appropriate tags.
See [bug triage guidelines](https://docs.godotengine.org/en/latest/contributing/workflow/bug_triage_guidelines.html) for details on these tags.
If the bug is reported on the current development version (i.e. the `master` branch, and any pre-releases such as `4.4.beta1`) it is important to verify if it also occurs
on a past stable release. If this information is missing from the report (i.e. the author only reports having tested development versions) please either ask the author to
test with a stable version or test the bug yourself. If it *doesn't* occur on a past release it is considered a regression and should be tagged with the “regression” label,
and should also be added to the “4.x Release Blockers” project. See [release blocker tracking](/bug-triage/release-blockers.md) for details.
Try to tag an issue as specifically as possible, adding “needs testing” and “needs work” if necessary. Don't worry about misidentifying issues,
for example classifying something as a “bug” when it's actually an issue in the documentation or a missing feature.
Maintainers for each area will double checks reports when investigating, and will change tags as necessary.
It's more important to get an issue tagged correctly than getting it right from the start.
## Check for Duplicates
<!-- TODO -->
<!-- TODO: Add page with tips and tricks for finding duplicates and using the search function effectively -->
If the same bug, with the same fix, is reported in multiple versions, it is a duplicate. For example a bug reported for and fixed in `4.5`,
which is marked for cherry-picking for `4.4` (i.e. the PR has the “cherrypick:4.4” label), should not be tracked separately for `4.4`.
## Assigning Milestones
Note that this is for assigning milestones to *open* issues, please see [closing an issue](#closing-an-issue) for details on closed issues and milestones.
Below is an outline of the different milestones we use, but as a general rule you can assume that issues that aren't release blockers, or specific to `3.x`,
shouldn't have milestones assigned.
For the `master` branch:
* *`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.
* *The current development version*: Should be assigned to issues that are [release blockers](/bug-triage/release-blockers.md), or otherwise prioritized
for the current version.
* *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.
* *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.
For Godot 3:
* *`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.
* Other Godot 3 milestones work the same way as for the `master` branch, except we do not track release blockers for `3.x`.
## Testing an Issue
A valid MRP is a *minimal* project that reproduces a bug. This means that it is no larger than it needs to be, it also has to be a project, not an exported executable.
Do _not_ run executable projects added to a bug report, they are not valid MRPs as an MRP needs to be something that can be evaluated in detail, and be tweaked if needed,
and more importantly they are untrusted files.
<!-- TODO: Add note about checking safety of tool scripts etc. -->
Some bugs can be hard to verify when testing different versions (for example when bisecting) due to generated data. In this case, you might need to delete the `.godot` folder
or any user data related to the project. See [data paths](https://docs.godotengine.org/en/latest/tutorials/io/data_paths.html) for details on where these files are stored.
<!-- TODO? -->
If you are unable to reproduce the bug, and the author reports using a different operating system, or using different hardware
(for example a different GPU manufacturer or family), please drop it in the [#bugsquad](https://chat.godotengine.org/channel/bugsquad) channel and ask for someone to test it.
## Finalize Assessment
For pre-release versions, it's critical to identify what change caused a specific bug. **All** such regressions should be bisected.
You can ask the issue author to follow the instructions in the
[Bisecting regressions](https://docs.godotengine.org/en/latest/contributing/workflow/bisecting_regressions.html) documentation.
If they are not able to (or the issue is critical and should be fixed as quickly as possible), then you can look into bisecting the issue yourself.
Once identified correctly it should be put on the relevant triage project(s) if appropriate. See [team trackers](/bug-triage/team-trackers.md) for a list of triage projects.
Functional enhancements shouldn't generally be put on the trackers (i.e. new features, not enhancements to documentation). Some teams have dedicated trackers for enhancements,
but they aren't detailed here.
## Closing an issue
Normally issues that have a linked PR are closed automatically when the linked PR is merged.[^1] Note that an issue can still be valid though it has a linked and merged PR,
for example if the issue wasn't fully resolved by the PR. So make sure an issue is no longer relevant before closing.
Issues closed as duplicates should be marked with the archived label, and the milestone should be removed if it has one. If an issue can no longer be replicated,
it should be assigned to the milestone it was fixed in. If you can't pin down when it was fixed (for example if the report was made long ago), it should be marked as archived as well.
The “needs testing” and “needs work” labels should also be removed when an issue is closed, regardless of how it was solved.
## Team Workflow
When issues arrive in the triage projects they will have the “For Team Assessment” status. These issues should be treated as being unverified, and should be verified before
moving the issue to another status. This can be done as part of regular team meetings, or be handled by individual maintainers processing these, as long as the assessment made
by triagers is verified.
As part of this verification, other information should be updated if needed. For example, if the issue was added to multiple trackers because it was unclear what area it
belongs to, it should be removed from the unrelated tracker(s). This is also a good time to verify any regression severity or assign one if it is unassessed.
If the report is missing information, please ask the author for more details. If the task of handling testing updated information can be handled by the bugsquad, this task
can be handed over to them for verification: for example, testing an updated MRP provided by the author.
[^1]: This is limited to PRs on the `master` branch, for other cases issues have to be closed manually. This is usually handled by the production team.