Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Rethink Labels. #6175

@kianenigma

Description

@kianenigma

Substrate is almost at an important release. While issue management is still something that we need to figure out improvements upon, I think better labels is a good and easy way to start this.

I brought this up a while ago internally as well, yet the conversation did not go anywhere. Here, I will try to rephrase everything given our new recent labels:

Basically, I have two main proposals:

  1. Throw away the entire M group, introduce new ones that show the denote locality.
  2. Make it clear which ones are for pull requests and which ones are for issues. Add a section about labels in our CONTRIBUTING.md and make sure it is being respected.

My current interpretation of labels:

  • A: Only for PRs, shows the progress of the PR.
  • B: Only for PRs, shows the impact zone of the PR. What does it break. Who should be informed. AFAIK we use this to generate release notes.
  • F: Only for issues, shows the broad domain of the issue.
  • P: Only for issues, shows the time-criticality of the issue.
  • Q: Only for issues, shows the difficulty.
  • Z: Only for issues, should technically be used per each closed issues, basically saying how and why it was closed.

and then we have the infamous M which I can barely make any sense thereof:

As far as I can think:

  • Some of these are too fine grained. They pertain to one scope of the project and if we are to allow this, we would have had hundreds of issue labels per crate in substrate. examples being: M6-rpcapi, M7-signer, M8-contracts,
  • Some seem totally out of scope: M8-dapp, M7-ui.
  • I think too many of them are related to CI/Maintenance: M9-deploy ,M2-installer, M2-config, M1-ci, M0-build M5-binaries,
  • M3-docs is duplicate and we have a better label in F group for docs.
  • and finally M4-Core is assigned to what seems to me a random set of non-runtime issues. The term core itself used to be folder name in substrate that no longer exists.

I think the best replacement for M is to have add a group of labels that show the locality of the issue. For example now we have a label for refactoring. But there's no way to distinguish between where this refactor might happen. Well.. except this M4-core for all the no-runtime stuff.

Perhaps we can come up with a better grouping that explains locality

  • Runtime/Frame
  • Crypto
  • Storage/State/Overlay
  • Consensus/Authoring (not to be confused with F0-Consensus)
  • Genesis/ChainSpec
  • Network
  • CLI/RunCommands
  • (and instead of all the above) CI/Maintenance
  • ...

Probably some of the team leads or elder devs who have a better big picture of the project can come up with the above list, or even argue that it is pointless and we should not have such locality labels. Heck, maybe we should reformat M to actually be fine grained stuff, and have many of them. Even so, this must be documented somewhere. For example, I would love to have an issue that groups all the issues related to weights. They are a recent effort that will probably not fit into a coarse grained grouping, yet I don't know if I can/should make one etc. One way or another though, I think the M should be cleaned. Either replaced, or it should be clarified why it is there and what is its purpose.

All in all, I know that this sounds like a pointless effort at the moment, but I think it is a right step and we need to start taking better care of our issue at some point. We currently have two issues with.. issues:

  1. There are simply too many of them for us to even keep track of.
  2. Even for those that we do keep track of (i.e. dev X starts a conversation there and ...) we don't have proper labels and they are a bit of a mess.

At least, if have proper issues, with well defined rules (probably in our CONTRIBUTING.md) of how to assign them (i.e. I think the Z is totally underrated and should be used more) we can solve at least one part of the problem.

Metadata

Metadata

Assignees

Labels

I6-documentationDocumentation needs fixing, improving or augmenting.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions