Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Bug triage guidelines

This page describes the typical workflow of the bug triage team aka bugsquad when handling issues and pull requests on Godot's GitHub repository. It is bound to evolve together with the bugsquad, so do not hesitate to propose modifications to the following guidelines.

Issues management

GitHub proposes various features to manage issues:

  • Set one or several labels from a predefined list

  • Set one milestone from a predefined list

  • Keep track of the issue in the project dashboard

  • Define one contributor as "assignee" among the Godot engine organization members

As the Godot engine organization on GitHub currently has a restricted number of contributors, we do not use assignees extensively for now. All contributors are welcome to take on any issue, if relevant after mentioning it on the issue ticket and/or discussing the best way to resolve it with other developers.

For the time being, we do not use the project dashboard feature either.

As far as possible, we try to assign labels (and milestones, when relevant) to both issues and pull requests.

Обозначения на карте

The following labels are currently defined in the Godot repository:

Категории:

  • Archived: either a duplicate of another issue, or invalid. Such an issue would also be closed.

  • Breaks compat: describes something that can only be fixed by breaking compatibility with existing projects.

  • Bug: describes something that is not working properly.

  • Cherrypick: describes something that can be backported to a stable branch after being merged in the master branch.

  • Confirmed: было подтверждено по крайней мере ещ` одним участником, кроме автора сообщения об ошибке (обычно для сообщений Bug ). Цель этой пометки - дать разработчикам знать, какие проблемы все ещ` воспроизводимы, когда они хотят выбрать, над чем работать. Поэтому хорошей практикой является добавление комментария о том, на какой платформе и в какой версии или коммите Godot проблема может быть воспроизведена; если разработчик посмотрит на проблему год спустя, метка Confirmed может быть уже неактуальной.

  • Crash: describes a bug that causes the engine to crash. This label is only used for "hard" crashes, not freezes.

  • Discussion: the issue is not consensual and needs further discussion to define what exactly should be done to address the topic.

  • Documentation: issue related to the documentation. Mainly to request enhancements in the API documentation. Issues related to the ReadTheDocs documentation should be filed on the godot-docs repository.

  • Enhancement: describes a proposed enhancement to an existing functionality.

  • Feature proposal: describes a wish for a new feature to be implemented. Note that the main Godot repository no longer accepts feature requests. Please use godot-proposals instead.

  • For PR meeting: the issue needs to be discussed in a pull request meeting. These meetings are public and are held on the Godot Contributors Chat.

  • Good first issue: the issue is assumed to be an easy one to fix, which makes it a great fit for new contributors who want to become familiar with the code base. It should be removed while an active PR is available, that resolves this issue.

  • High priority: the issue is particularly important as it can prevent people from releasing their projects or cause data loss.

  • Needs testing: the issue/pull request could not be completely tested and thus need further testing. This can mean that it needs to be tested on different hardware/software configurations or even that the steps to reproduce are not certain.

  • Needs work: the pull request needs additional work before it can be merged.

  • Performance: issues that directly impact engine or editor performance. Can also be used for pull requests that improve performance or add low-end-friendly options. Should not be coupled with Usability.

  • Production: Relates to the production team.

  • Regression: the bug appeared after a stable release not exhibiting the bug was released.

  • Salvageable: the pull request can't be merged due to design issues or merge conflicts and its author is not active anymore. However, it can still be picked up by an external contributor to bring it to a mergeable state. To do so, you need to open a new pull request based on the original pull request.

  • Tracker: issue used to track other issues (like all issues related to the plugin system).

  • Usability: issues that directly impact user usability. Should not be coupled with Performance.

The categories are used for general triage of the issues. They can be combined in some way when relevant, e.g. an issue can be labelled Enhancement and Usability at the same time if it's an issue to improve usability. Or Feature proposal and Discussion if it's a non-consensual feature request, or one that is not precise enough to be worked on. At least one of the categories Bug, Enhancement or Discussion is used to describe an issue or pull request.

Темы:

  • 2D: relates to 2D-specific issues. Should be coupled with one of the labels below, and should not be coupled with 3D.

  • 3D: relates to 3D-specific issues. Should be coupled with one of the labels below, and should not be coupled with 2D.

  • Animation: relates to the Animation system, editors and importers.

  • Assetlib: относится к проблемам с библиотекой активов.

  • Audio: относится к аудиофункциям (низкий и высокий уровень).

  • Buildsystem: относится к вопросам сборки, связанным либо с системой сборки SCons, либо с особенностями компилятора.

  • Codestyle: relates to the programming style used within the codebase.

  • Core: anything related to the core engine. Specific topics are split off separately as they crop up.

  • Dotnet: relates to the C# / Dotnet bindings.

  • Editor: относится к проблемам в редакторе (в основном к пользовательскому интерфейсу).

  • Export: relates to the export system and templates.

  • GDExtension: relates to the GDExtension system for native extensions.

  • GDScript: относится к GDScript.

  • GUI: relates to GUI (Control) nodes or to Nodes that compose user interfaces.

  • Import: relates to the resource import system.

  • Input: relates to the input system.

  • Multiplayer: relates to multiplayer (high-level networking) systems.

  • Navigation: relates to the navigation system (including A* and navmeshes).

  • Network: relates to (lot-level) networking.

  • Particles: particles, particle systems and their editors.

  • Physics: относится к физическому движку (2D/3D).

  • Plugin: относится к проблемам, возникающим при написании плагинов.

  • Porting: relates to some specific platforms or exporting projects.

  • Rendering: относится к движкам 2D и 3D рендеринга.

  • Shaders: relates to the Godot shader language or visual shaders.

  • Tests: relates to unit tests.

  • Thirdparty: relates to third-party libraries used in Godot.

  • XR: relates to Augmented Reality or Virtual Reality.

Вопросы обычно соответствуют только одной теме, хотя не исключено, что вопросы будут соответствовать двум темам. Общая идея заключается в том, что за всеми темами будут стоять специализированные команды авторов, и они смогут сосредоточиться на вопросах, помеченных темой их команды.

Платформы:

Android, iOS, Linux, macOS, Web, Windows

По умолчанию предполагается, что данная проблема относится ко всем платформам. Если используется один из ярлыков платформы, то он является эксклюзивным, и предыдущее предположение больше не действует (поэтому, если это ошибка, например, только для Android и Linux, выберите эти две платформы).

Documentation labels

In the documentation repository, we use the following labels:

  • Archived: either a duplicate of another issue, or invalid. Such an issue would also be closed.

  • Bug: Incorrect information in an existing page. Not to be used for missing information.

  • Cherrypick: describes something that can be backported to a stable branch after being merged in the master branch.

  • Dependencies: describes pull requests that update a dependency file.

  • Discussion: the issue is not consensual and needs further discussion to define what exactly should be done to address the topic.

  • Enhancememnt: new information to be added in an existing page.

  • Good first issue: the issue is assumed to be an easy one to fix, which makes it a great fit for new contributors who want to become familiar with the code base. It should be removed while an active PR is available, that resolves this issue.

  • Needs work: the pull request needs additional work before it can be merged.

  • Python: Pull requests that update Python code.

  • Salvageable: the pull request can't be merged due to design issues or merge conflicts and its author is not active anymore. However, it can still be picked up by an external contributor to bring it to a mergeable state. To do so, you need to open a new pull request based on the original pull request.

  • Tracker: issue used to track other issues (like all issues related to the plugin system).

Area:

  • About: Issues and PRs related to the About section of the documentation and other general articles.

  • Class reference: the issue is about the class reference, not a documentation page.

  • Community: Issues and PRs related to the Community section of the documentation.

  • Contributing: Issues and PRs related to the Contributing/Development section of the documentation.

  • Getting started: Issues and PRs related to the Getting Started section of the documentation.

  • Manual: Issues and PRs related to the Manual/Tutorials section of the documentation.

Content:

  • Images: Issues and PRs involving outdated or incorrect images in articles.

  • New page: Issues and PRs related to creation of new documentation pages for new or undocumented features.

  • Organization: Issues and PRs related to reorganizing the content.

  • Proofreading: Issues and PRs related to proofreading the documentation.

  • Redirect: Issues and PRs involving moving content and adding a redirect rule on the backend.

  • Website: Issues related to adding website features and fixing bugs, whether on the front or back-end,

Topic:

The available topics describe the same content as the topics in the main repository.

Основные этапы

Вехи соответствуют запланированным будущим версиям Godot, для которых существует дорожная карта. Проблемы, которые соответствуют указанной дорожной карте, должны быть зарегистрированы в соответствии с соответствующей вехой; если они не соответствуют какой-либо текущей дорожной карте, их следует оставить без вех. Как правило, проблема соответствует заданной вехе, если она касается функции, которая является новой в вехе, или критической ошибки, которая не может быть принята ни в одной будущей стабильной версии, или чего-либо, над чем Хуан хочет работать правильно. сейчас. :)

Вкладчики могут выбирать проблемы независимо от назначенной им вехи; если предлагается исправление ошибки, которая не считалась срочной и поэтому не имела вехи, оно, вероятно, все равно будет очень приветствоваться.