Skip to content

Issue labeling guidelines

Roland Bracewell Shoemaker edited this page Aug 16, 2016 · 10 revisions

A issue should have at least one of the following types of label and should try to use the minimal set that best describes the issue. In most cases an issue will need to have a area/*, layer/*, and kind/* label although a subset of these may best describe the issue.

area/* labels should be used to indicate what sections of the boulder system are affected by a issue. (color: #4B7C8C)

area/wfe         # affects boulder-wfe
area/ra          # affects boulder-ra
area/sa          # affects boulder-sa
area/va          # affects boulder-va
area/ca          # affects boulder-ca
area/tools       # affects various external or cmd/* tools
area/libraries   # affects various local libraries
area/integration # affects integration testing

layer/* labels should be used for issues which are about a specific internal boulder layer. (color: #A4CD6B)

layer/api     # affects the external HTTP API layer
layer/rpc     # affects the internal RPC layer
layer/storage # affects the storage layer
layer/config  # affects the configuration layer

kind/* labels should be used to indicate the type of a issue. different types are not mutually exclusive but a minimal set should be used (i.e. if multiple types are needed the issue can probably be split into multiple distinct issues). (color: #7F5195)

kind/feature         # adds a completely new feature
kind/enhancement     # enhances a already existing working feature
kind/cleanup         # simplifies a overly complex implementation
kind/performance     # affects the performance of a component
kind/metrics         # affects the metrics of a component
kind/migration       # requires a SQL migration
kind/bug             # identifies an issue in existing code
kind/security        # identifies an security issue/vulnerability in 
                     # existing code
kind/tests           # identifies missing or flaky tests
kind/docs            # identifies missing or incorrect documentation
kind/question        # identifies design questions
kind/update          # identifies/requires a dependency update
kind/breaking-change # identifies an issue that causes a breaking change to the external API
kind/client          # identifies an issue with a ACME client, not with Boulder itself

status/* labels should be used to indicate the current status of a issue. (color: #E0B574)

status/blocked/go   # blocked by a change in supported golang version
status/blocked/dep  # blocked by a change to a upstream dependency
status/blocked/spec # blocked by a change to the ACME specification
status/help-wanted  # issue which may be a good starting point for a 
                    # new contributor