bug_triage_guidelines.rst 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. .. _doc_bug_triage_guidelines:
  2. Bug triage guidelines
  3. =====================
  4. This page describes the typical workflow of the bug triage team aka
  5. bugsquad when handling issues and pull requests on Godot's GitHub
  6. repository. It is bound to evolve together with the bugsquad, so do not
  7. hesitate to propose modifications to the following guidelines.
  8. Issues management
  9. -----------------
  10. GitHub proposes various features to manage issues:
  11. - Set one or several labels from a predefined list
  12. - Set one milestone from a predefined list
  13. - Keep track of the issue in the project dashboard
  14. - Define one contributor as "assignee" among the Godot engine
  15. organization members
  16. As the Godot engine organization on GitHub currently has a restricted
  17. number of contributors, we do not use assignees extensively for now. All
  18. contributors are welcome to take on any issue, if relevant after mentioning
  19. it on the issue ticket and/or discussing the best way to resolve it with
  20. other developers.
  21. For the time being we do not use the project dashboard feature either.
  22. As far as possible, we try to assign labels (and milestones, when relevant)
  23. to both issues and pull requests.
  24. Labels
  25. ~~~~~~
  26. The following labels are currently defined in the Godot repository:
  27. **Categories:**
  28. - *Archived*: either a duplicate of another issue, or invalid. Such an
  29. issue would also be closed.
  30. - *Bug*: describes something that is not working properly.
  31. - *Confirmed*: has been confirmed by at least one other contributor
  32. than the bug reporter (typically for *Bug* reports).
  33. The purpose of this label is to let developers know which issues are
  34. still reproducible when they want to select what to work on. It is
  35. therefore a good practice to add in a comment on what platform and
  36. what version or commit of Godot the issue could be reproduced; if a
  37. developer looks at the issue one year later, the *Confirmed* label
  38. may not be relevant anymore.
  39. - *Discussion*: the issue is not consensual and needs further
  40. discussion to define what exactly should be done to address the
  41. topic.
  42. - *Documentation*: issue related to the documentation. Mainly to request
  43. enhancements in the API documentation. Issues related to the ReadTheDocs
  44. documentation should be filed on the
  45. `godot-docs <https://github.com/godotengine/godot-docs>`_ repository.
  46. - *Enhancement*: describes a proposed enhancement to an existing
  47. functionality.
  48. - *Feature proposal*: describes a wish for a new feature to be
  49. implemented.
  50. - *Junior job*: the issue is *assumed* to be an easy one to fix, which makes
  51. it a great fit for junior contributors who need to become familiar with
  52. the code base.
  53. - *Needs rebase*: the issue need a git rebase to be merged.
  54. - *Needs testing*: the issue/pull request could not be completely tested
  55. and thus need further testing. This can mean that it needs to be tested
  56. on different hardware/software configurations or even that the steps to
  57. reproduce are not certain.
  58. - *PR welcome*: you are welcome to work on this issue and propose a pull
  59. request. Note that this **doesn't** mean you can't work on bugs without
  60. this label.
  61. - *Tracker*: issue used to track other issues (like all issues related to
  62. the plugin system).
  63. - *Usability*: issue that directly impact user usability.
  64. The categories are used for general triage of the issues. They can be
  65. combined in some way when relevant, e.g. an issue can be labelled
  66. *Enhancement* and *Usability* at the same time if it's an issue to improve
  67. usability. Or *Feature proposal* and *Discussion* if it's a non-consensual
  68. feature request, or one that is not precise enough to be worked on.
  69. **Topics:**
  70. - *Assetlib*: relates to issues with the asset library.
  71. - *Audio*: relates to the audio features (low and high level).
  72. - *Buildsystem*: relates to building issues, either linked to the SCons
  73. buildsystem or to compiler peculiarities.
  74. - *Core*: anything related to the core engine. It might be further
  75. split later on as it's a pretty big topic.
  76. - *Drivers*: relates to issues with the drivers used by the engine.
  77. - *Editor*: relates to issues in the editor (mainly UI).
  78. - *GDNative*: relates to the GDNative module.
  79. - *GDScript*: relates to GDScript.
  80. - *Physics*: relates to the physics engine (2D/3D).
  81. - *Plugin*: relates to problems encountered while writing plugins.
  82. - *Porting*: relates to some specific platforms.
  83. - *Rendering*: relates to the 2D and 3D rendering engines.
  84. - *VisualScript*: relates to issues with the visual scripting language.
  85. Issues would typically correspond to only one topic, though it's not
  86. unthinkable to see issues that fit two bills. The general idea is that
  87. there will be specialized contributors teams behind all topics, so they
  88. can focus on the issues labelled with their team's topic.
  89. **Platforms:** *Android*, *HTML5*, *iOS*, *Linux*, *OS X*, *Windows*, *Winrt*
  90. By default, it is assumed that a given issue applies to all platforms.
  91. If one of the platform labels is used, it is then exclusive and the
  92. previous assumption doesn't stand anymore (so if it's a bug on e.g.
  93. Android and Linux exclusively, select those two platforms).
  94. Milestones
  95. ~~~~~~~~~~
  96. Milestones correspond to planned future versions of Godot for which
  97. there is an existing roadmap. Issues that fit in the said roadmap should
  98. be filed under the corresponding milestone; if they don't correspond to
  99. any current roadmap, they should be left without milestone. As a rule of
  100. thumb, an issue corresponds to a given milestone if it concerns a feature
  101. that is new in the milestone, or a critical bug that can't be accepted in any
  102. future stable release, or anything that Juan wants to work on right now
  103. :)
  104. Contributors are free to pick issues regardless of their assigned milestone;
  105. if a fix is proposed for a bug that was not deemed urgent and thus without
  106. milestone, it would likely still be very welcome.