bug_triage_guidelines.rst 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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 three features to manage issues:
  11. - Set one or several labels from a predefined list
  12. - Set one milestone from a predefined list
  13. - Define one contributor as "assignee" among the Godot engine
  14. organization members
  15. As the Godot engine organization on GitHub currently has a restricted
  16. number of contributors and we are not sure yet to what extent we will
  17. use it or OpenProject instead, we will not use assignees extensively for
  18. the time being.
  19. Labels
  20. ~~~~~~
  21. The following labels are currently defined in the Godot repository:
  22. **Categories:**
  23. - *Archived*: either a duplicate of another issue, or invalid. Such an
  24. issue would also be closed.
  25. - *Bug*: describes something that is not working properly.
  26. - *Confirmed*: has been confirmed by at least one other contributor
  27. than the bug reporter (typically for *Bug* reports).
  28. The purpose of this label is to let developers know which issues are
  29. still reproducible when they want to select what to work on. It is
  30. therefore a good practice to add in a comment on what platform and
  31. what version or commit of Godot the issue could be reproduced; if a
  32. developer looks at the issue one year later, the *Confirmed* label
  33. may not be relevant anymore.
  34. - *Enhancement*: describes a proposed enhancement to an existing
  35. functionality.
  36. - *Feature request*: describes a wish for a new feature to be
  37. implemented.
  38. - *High priority*: the issue should be treated in priority (typically
  39. critical bugs).
  40. - *Needs discussion*: the issue is not consensual and needs further
  41. discussion to define what exactly should be done to address the
  42. topic.
  43. The categories are used for general triage of the issues. They can be
  44. combined in some way when relevant, e.g. an issue can be labelled *Bug*,
  45. *Confirmed* and *High priority* at the same time if it's a critical bug
  46. that was confirmed by several users, or *Feature request* and *Needs
  47. discussion* if it's a non-consensual feature request, or one that is not
  48. precise enough to be worked on.
  49. **Topics:**
  50. - *Buildsystem*: relates to building issues, either linked to the SCons
  51. buildsystem or to compiler peculiarities.
  52. - *Core*: anything related to the core engine. It might be further
  53. split later on as it's a pretty big topic.
  54. - *Demos*: relates to the official demos.
  55. - *GDScript*: relates to GDScript.
  56. - *Porting*: relates to some specific platforms.
  57. - *Rendering engine*: relates to the 2D and 3D rendering engines.
  58. - *User interface*: relates to the UI design.
  59. Issues would typically correspond to only one topic, though it's not
  60. unthinkable to see issues that fit two bills. The general idea is that
  61. there will be specialized contributors teams behind all topics, so they
  62. can focus on the issues labelled with their team topic.
  63. Bug reports concerning the website or the documentation should not be
  64. filed in GitHub but in the appropriate tool in OpenProject, therefore
  65. such issues should be closed and archived once they have been moved to
  66. their rightful platform.
  67. **Platforms:** *Android*, *HTML5*, *iOS*, *Linux*, *OS X*, *Windows*
  68. By default, it is assumed that a given issue applies to all platforms.
  69. If one of the platform labels is used, it is the exclusive and the
  70. previous assumption doesn't stand anymore (so if it's a bug on e.g.
  71. Android and Linux exclusively, select those two platforms).
  72. Milestones
  73. ~~~~~~~~~~
  74. Milestones correspond to planned future versions of Godot for which
  75. there is an existing roadmap. Issues that fit in the said roadmap should
  76. be filed under the corresponding milestone; if they don't correspond to
  77. any current roadmap, they should be set to *Later*. As a rule of thumb,
  78. an issue corresponds to a given milestone if it concerns a feature that
  79. is new in the milestone, or a critical bug that can't be accepted in any
  80. future stable release, or anything that Juan wants to work on right now
  81. :)