This page is to explain the conventions over OpenEthereum’s labeling system.
Labels are split into several groups.
- ‘A’ group is used for code-review status and are applicable only to Pull Requests.
- ‘B’ group is used for pull requests for upcoming beta releases.
- ‘F’ group is used to encode the type (and accordingly the severity) of issues; they are applicable only within the Issue Tracker.
- ‘M’ group is to encode the affected component or sub-project.
- ‘P’ group is to denote priority. They are generally relevant only to issues, though may in principle be used on pull-requests.
- ‘Q’ group is to denote difficulty.
- ‘Z’ group are reasons for why something is a non-issue. They are applicable only within the Issue Tracker.
As such, a pull request must have a single label from the ‘A’ group and may additionally have a single label from the ‘P’ group (though typically will not).
An valid issue must have a single label from the ‘F’ group and may additionally have a single label from the ‘P’ group. An invalid issue should be closed with a single label from the ‘Z’ group.
‘A’ group
All pull requests should start labeled with either ‘A0-pleasereview’, ‘A3-inprogress’, ‘A8-backport’ (in the base of an already-reviewed back-port), or ‘A2-insubstantial’ (should it be an alteration which requires no code review). After review it should be relabeled with another ‘A’ group label.
Pull request needs code review.
Pull request is reviewed well, but should not yet be merged.
Pull request requires no code review (e.g. a sub-repository hash update).
Pull request is in progress. No review needed at this stage.
A3-stale
Pull request did not receive any updates in a long time. No review needed at this stage and should be closed if author does not indicate any further work is done.
A4-awaitingci
Pull request is waiting for changes on the CI to complete tests before review/merge can begin.
Pull request requires author to sign off on CLA before review/merge can begin.
Pull request is reviewed and has significant issues which must be addressed. Once addressed, author should relabel as A0-pleasereview
.
Pull request has minor issues that must be addressed before merging. This may require only replying to comments. Pull request should be relabeled as A0-pleasereview
to get a final sign-off from a reviewer.
Pull request has areas for improvement. The author need not address them before merging.
Pull request that reverts recent changes.
Pull request is reviewed well, but cannot be merged due to conflicts.
Pull request is reviewed well, but cannot be merged due to tests failing.
Pull request is already reviewed well in another branch.
Pull request is reviewed well.
Pull request is reviewed well and worth buying the author a beer.
Pull request is reviewed well and can not be compensated with any amount of beer in the galaxy ;)
‘B’ group
Used on pull requests only. Denotes tasks for the next beta release.
Pull request should also be back-ported to the beta branch.
Changes should be mentioned in the release notes of the next major version.
‘F’ group
Issues should have only one of these. Do not combine; if multiple labels are equally applicable to an issue, use the one with the lowest number.
Issue can lead to a consensus failure.
The client panics and exits without proper error handling.
The client fails to follow expected, security-sensitive, behaviour.
The client fails to follow expected behavior.
The client behaves within expectations, however this “expected behaviour” itself is at issue. Annoyances are small enhancements which dramatically improve the usability of the client.
Tests need fixing, improving or augmenting.
Documentation needs fixing, improving or augmenting.
Code needs refactoring.
An enhancement to provide a smaller (system load, memory, network or disk) footprint.
An enhancement to provide better overall performance in terms of time-to-completion for a task.
An additional feature.
F9-meta
A specific issue for grouping tasks or bugs of a specific category.
A specific release. All such issues should be templated on 1387.
‘M’ group
Used to denote the affected component or sub-project. Each issue and pull request should have (at least) one.
Building and build system
Continuous integration
M2-config
Chain specifications and node configurations
Installers for macOS and Windows
Core client
External binaries (ethkey, ethstore, ethvm, etc.)
RPC API
Trusted signer
User Interface and wallet
M8-contracts
Solidity smart contracts
Decentralized applications
Deployment and registration
‘P’ group
Typically used only to annotate issues, however P0 and P2 may reasonably be used on PRs in exceptional circumstances.
Everyone should address the issue/PR now.
No need to stop dead in your tracks, however issue/PR should be addressed as soon as possible.
Issue is worth doing soon.
Issue is worth doing eventually.
Issue might be worth doing eventually.
‘Q’ group
Is used to annotate difficulty of issues.
Can be fixed by anyone with access to a computer.
Q1-mentor
An easy task were a mentor is available. Please indicate in the issue who the mentor could be.
Can be fixed by copy and pasting from StackOverflow.
Can be fixed by a developer with decent experience.
Can be fixed by a team of developers and probably takes some time.
Can only be fixed by John Skeet.
‘Z’ group
Used only on issues which will (or may, in the case of Z5) be closed immediately.
Issue is a duplicate. Closer should comment with a link to the duplicate.
Issue describes a behavior which turns out to work as intended. Closer should explain why.
Issue is invalid. Closer should comment why.
Issue is a question. Closer should answer.
Issue is in principle valid, but it is not relevant anymore or can not reproduced.
Issue is in principle valid, but this project will not address it. Closer should explain why.
Issue might be valid, but it’s not yet known.
Issue-Checklist
- Have you tried turning it off and on again?
- Are you fully synchronized?
- Which version of OpenEthereum are you running? (“master” or “git” is not a version)
- Which operating system are you running?
- How did you install OpenEthereum? (binary, installer, from source, which branch?)
- What flags are you running OpenEthereum with?
- Do you use any config file?
- Please, share the exact error message!
- Is there anything in the logs?
- Are you connected to any peers?
- What’s your time? Is it synchronized? time.is
- Did you answer all my questions yet?