description: To facilitate the community in finding ways to contribute that match their experiences and skillsets, we have developed a comprehensive system for labelling issues and PRs. This is an introduction to this standard labelling scheme.
body:
Labels consist of three fields, viz. name, description and color. Label names
should have a consistent format to aid both filtering within the github UI as
well as scanning visually through the list. The following format is the most
suited to this task (where ⎵
denotes a single space):
<emoji>⎵<category>:⎵<name>
Even label names with more than two words in the text should be separated by a
single space ⎵
.
An issue has many different attributes:
- Priority
- Status
- Goal
- Aspect
- Skill
- Talk
- Friendliness
Priority color chart | ||||
Unfavourable | Negative | Neutral | Positive | Favourable |
#b60205 | #ff9f1c | #ffcc00 | #cfda2c | #008672 |
The priority of an issue is based on its impact, derived from a combination of urgency and importance. This determines the importance of the issue when sprint planning or deciding which issues to tackle next.
- 🟥 priority: critical - **Description:** Must be fixed ASAP
- 🟧 priority: high - **Description:** Stalls work on the project or its dependents
- 🟨 priority: medium - **Description:** Not blocking but should be fixed soon
- 🟩 priority: low - **Description:** Low priority and doesn't need to be rushed
Status color chart | ||||
Lighter | Light | Medium | Dark | Darker |
#eeeeee | #cccccc | #999999 | #666666 | #333333 |
The status of the issue determines whether it is ready for work or not. Issues may not be ready to be worked on for a number of reasons and the maintainers must keep updating the labels as the situation evolves.
An issue, at the time of closing can have either the 🏁 status: ready for dev or the ⛔️ status: discarded label based on whether it was closed with or without resolution, respectively.
- 🚦 status: awaiting triage - **Description:** Has not been triaged & therefore, not ready for work
- 🚧 status: blocked - **Description:** Blocked & therefore, not ready for work
- ⛔️ status: discarded - **Description:** Will not be worked on
- 🙅 status: discontinued - **Description:** Not suitable for work as repo is in maintenance
- 🏷 status: label work required - **Description:** Needs proper labelling before it can be worked on
- 🏁 status: ready for dev - **Description:** Ready for work
- 🧹 status: ticket work required - **Description:** Needs more details before it can be worked on
The goal of an issue is the end-result achieved when the issue is resolved. This represents the impact of the issue on the scope of the software.
- ⭐ goal: addition
- Description: Addition of new feature
- 🛠 goal: fix
- Description: Bug fix
- ✨ goal: improvement
- Description: Improvement to an existing feature
The aspect of an issue is the side of the project that the issue deals with. A single codebase can have multiple aspects to it and knowing which ones will be touched helps contributors find relevant issues.
- 💻 aspect: code
- Description: Concerns the software code in the repository
- 📖 aspect: docs
- Description: Concerns the documentation in the repository
- 🤖 aspect: dx
- Description: Concerns developers' experience with the codebase
- 🕹 aspect: interface
- Description: Concerns end-users' experience with the software
- 📄 aspect: text
- Description: Concerns the textual material in the repository
The technical skills a person is required to possess to work on the issue. Skills are a special type of label that vary by repository. Issues may not have a skill tag if no special skills are required.
- 💪 skill: <skill name>
- Description: Requires proficiency in '<skill name>'
Issues with interaction labels do not entail any work to be done on the repository. They are for Q&A, RFCs and any other form of discussions. While both of these may appear to be too similar, triage permissions are granted to collaborators who might not have the answers to questions but by labelling them as such, they might draw a faster response from an experienced contributor who does. In the future this category might be rendered redundant by GitHub Discussions and will be removed.
- 💬 talk: discussion
- Description: Open for discussions and feedback
- ❓ talk: question
- Description: Can be resolved with an answer
The level of friendliness a particular issue is the valency of the issue towards contributions from the community. Some issues provide a great introduction while others require a little more familiarity with the codebase. These issues do not have the category prefix as two of them are special labels recognized by GitHub. The special ones don't have emojis either.
- good first issue
- Description: New-contributor friendly
- help wanted
- Description: Open to participation from the community
- 🔒 staff only
- Description: Restricted to Creative Commons (CC) team members
- 🤯 ノಠ益ಠノ彡┻━┻ - **Description:** Aaargh!
- invalid - **Description:** Inappropriate or invalid (ex. Hacktoberfest spam)
In the above categories, some are marked with an *
sign. Those are mandatory
categories and every issue is required to have at least one label from those
categories.
Only issues labelled with 🚦 status: awaiting triage are allowed to not have all mandatory labels (seeing as they have not been triaged yet).
Categories not marked with an *
are optional and it is upto the discretion of
the maintainers to have apply labels from those categories to issues.