Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notes on issue organization #886

xiaq opened this issue Dec 31, 2019 · 0 comments

Notes on issue organization #886

xiaq opened this issue Dec 31, 2019 · 0 comments


Copy link

@xiaq xiaq commented Dec 31, 2019

Elvish is a pretty ambitious project. There are always a lot of things to do, which translates to a lot of issues (among other things). Without some proper organization, it is very easy to get buried in details and lose track of important problems to solve.

We use labels in a structured way to organize issues. You can browse the list of all labels; have it open alongside this document and explore it.

Category labels

The most important labels are those that categorizes issues. There are 3 sets of them:

  • A Project contains closely related - often intertwined - issues. A project needs a concrete, coherent design (and hopefully has one). A project also has a completion criteria; that is, it can be called "done" at some point in future.

    Projects are identified by labels that start with P:, and these labels all have the same color.

  • A Component also contains closely related issues; they touch the same part of the code base, and can benefit from some consistency. However, they are not related enough to form coherent projects. Some may be just small things that can be implemented individually, while some may be part of a "proto-project" that hasn't fully emerged.

    Components are identified by labels that start with C:, and these labels all have the same color.

  • An Area is like a component, just bigger; issues in the same area are related on a high level, but not as much as a component.

    Areas are identified by labels that start with A:, and these labels all have the same color.

With the exception of a few "meta" issues like this one, all issues have exactly one category label. When an issue conceptually belongs to both a Project and a Component, the Project is favored as it is more specific. Likewise, a Component takes precedence over an Area.

Issues may be recategorized over time, to represent shifts in our conception. For example, a Project may eventually emerge from a Component, and issues may move from the Component to the newly conceived Project.

Type labels

There are 4 type labels: t:bug, t:cleanup, t:note and t:question, and they all have the same color.

Feature requests do not have a specific label as they are so common.

Other labels

There is an additional label, maybe. It means that we are not yet sure whether the issue is a good idea. Eventually, either we think it is a good idea and remove the label, or we think it is a bad idea and close the issue.

@xiaq xiaq added the t:note label Dec 31, 2019
@xiaq xiaq pinned this issue Dec 31, 2019
@xiaq xiaq changed the title Issue organization Notes on issue organization Dec 31, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.