We use a modified sane labelling scheme as proposed here by Dave Lunny, along with inspiration from ManageIQ.
It's broken down into four different types of labels: status labels, release labels, type labels and change labels.
SRC | NIPs have their own labelling schema which are defined [here](todo: make 'here').
These are intended to cover a broad range of states that an issue may be in during different stages of development. Only one status label will be applied to a particular issue - for instance, something can't be both 'In Progress' and 'Abandoned'.
Label | Hex Code | Description |
---|---|---|
Status: Available | Text | This issue is currently available to be worked on. |
Status: Revision | This issue has not been completed, and needs to be revised as detailed in the comments. | |
Status: In Progress | This issue is currently being worked on. | |
Status: On Hold | This issue has been put on hold for reasons detailed in the comments. | |
Status: Review Needed | This issue is waiting for a code review or design review. | |
Status: Blocked | This is currently an issue that is unable to be resolved or worked on due to a blocker. | |
Status: Completed | This issue has been completed and is awaiting scheduling for the next release candidate. | |
Status: Pending | This issue is currently pending approval for the next release candidate. | |
Status: Abandoned | This issue has been abandoned, for reasons detailed in the comments. When applied, this issue should be closed. | |
Status: Unmergeable | The pull request is unmergeable, for reasons detailed in the comments. | |
Status: Stale | This issue is old or hasn't had activity in >6 months. |
These labels track an issue as it moves into testing (and eventually deployment).
Our product release process follows the below flow.
โโโโโโโโโโโโโโ
โ โ
โ On-Hold โโโโโโโ
โ โ โ
โโโโโโโฒโโโโโโโ โ
โ โ
โ โ
โ โ
โโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโดโโโโโโโ โ
โ โ โ โ โ โ โ โ โ
โ Review โโโโโโโโโบ Testing โโโโโโโโบ Accepted โโโโโโโโโโบ Pending โโโโโโโ
โ โ โ โ โ โ โ โ
โโโโโโโฒโโโโโโ โโโโโโโฌโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโฌโโโโโโโ
โ โ โ
โ โ โ
โ โโโโโโโผโโโโโโโ โ
โ โ โ โโโโโโโผโโโโโโโ
โโโโโโโโโโโโโโโค Blocked โ โ โ
โ โ โ Live โ
โโโโโโโโโโโโโโ โ โ
โโโโโโโโโโโโโโ
Release labels track where an issue in the release candidate process. Maintainers can use this to prepare their releases for inclusion in Milestones. These labels are exclusively for issues that have been 'completed'.
Label | Hex Code | Description |
---|---|---|
Release: Review | Text | This issue has been accepted for the next release candidate. Contrast with 'Status: Complete'. |
Release: Testing | This issue is currently in testing (QA & performance) with other issues in the review pipeline. | |
Release: Blocked | This issue has failed testing or needs further development. | |
Release: Accepted | This issue has been accepted for inclusion in a release candidate. | |
Release: Pending | This issue is pending release. | |
Release: On-Hold | This issue is currently on-hold. | |
Release: Live | This issue is currently live and in production. |
Label | Hex Code | Description |
---|---|---|
Type: Bug | Not the ladybug kind, but the software gremlin kind. | |
Type: Sporadic Bug | A bug that manifests as test failures unpredictably. | |
Type: NotABug | This issue is not a bug as reported, or not reproducible. When applied, the issue should be closed. | |
Type: DevOps | This issue is related to DevOps (such as AWS, CI/CD, network monitoring, logs). | |
Type: Enhancement | An enhancement, new feature, or quality of life improvement. | |
Type: Design | Issues or changes specifically related to design (including UX/UI, look-and-feel, and general art.) | |
Type: Duplicate | This issue is a duplicate. When applied, the duplicate issue should be referenced in a comment. | |
Type: Help Wanted | An issue that can be handled by anyone, even new members of the community. | |
Type: Question | Issues that are just questions. When the question is resolved, the issue should be closed. | |
Type: Social Media | Issues specifically related to social media and external communications. | |
Type: Tools | Issues specifically related to internal tooling, such as Discord, Telegram, GitHub, CI/CD, etc. |
These are intended to clearly articulate what the following PR changes. Think of these as user-facing labels - who, or what, is this change affecting?
Label | Hex Code | Description |
---|---|---|
Change: Cleanup | Changes that only make the code cleaner and do not change how the code works, nor the outputs. | |
Change: Dependencies | Changes that affect dependencies. | |
Change: Developer | Changes that affect developers only, including non-customer-facing tools. | |
Change: Documentation | Changes to documentation only. | |
Change: Internationalization | Changes that are for internationalization only. | |
Change: Performance | Changes that are for performance improvements only. | |
Change: Refactoring | Changes in the way the code works internally without changing output. Contrast to 'Change: Cleanup'. | |
Change: Technical Debt | Changes that remove or significantly update old unused code and/or dependencies. | |
Change: Frontend | Changes to the frontend code of an application or website. | |
Change: User Experience | Changes to the user experience or user flow of an application. | |
Change: Test | Changes to test code only. | |
Change: Tools | Changes to customer-facing tools. Contrast to 'Change: Developer'. |
Questions
You might wonder why we don't have priority labels. Generally when priority labels are introduced, everything becomes a 'mission-critical-must-fix-now'. Priority labels also encourage laziness - if you own your code, you should know what is and isn't an urgent issue.
Handbook
Project Management
Organization