Skip to content

Latest commit

 

History

History
200 lines (154 loc) · 7.67 KB

File metadata and controls

200 lines (154 loc) · 7.67 KB

GitHub labels

Triagers, core developers and bots can add labels on GitHub to categorize issues and pull requests. Many labels are shared for both use cases, while some are dedicated only to one. Below is a possibly inexhaustive list, but it should get you going. For a full list, see here.

Type labels

These labels are used to specify the type of issue:

Component labels

These labels are mostly used to specify which :ref:`part of the codebase <build-directory-structure>` is affected by the issue/PR:

OS labels

These labels are used to specify which operating systems are affected. Since most issues either affect all systems or are specific to Unix, we don't have a dedicated Unix label. Use :gh-label:`OS-windows`, :gh-label:`OS-mac`, and :gh-label:`OS-freebsd`.

Use the :gh-label:`OS-unsupported` label for issues on platforms outside the support tiers defined in PEP 11. Applying this label adds the issue to a GitHub project where it can be categorized further. See also the :ref:`Platform experts list <platform-experts>`.

Topic labels

These labels are used to denote the specific topic area, if any, of the issue/PR. This includes both specific modules/packages and generic interest areas.

Adding these labels is also a way to notify the relevant experts, since they are encouraged to subscribe to them. Depending on the label, this might also automatically add the issue to a GitHub project.

You can see the full list of topic labels on GitHub.

Version labels

These labels are used to indicate which versions of Python are affected. The available version labels (with the form :samp:`3.{N}`) are updated whenever new feature releases are created or retired.

Recommendations

  • For security issues, add the :gh-label:`type-security` label and the affected version labels. This makes the issue stand out.
  • For non-security issues affecting all bugfix branches, only add the :gh-label:`type-bug` label as knowing which versions are affected does not give more information.
  • Labels for end-of-life versions should be removed when possible but there is no need to explicitly go through old issues to remove such labels.
  • Otherwise, add the corresponding version labels and remember to update them when the latest major version is updated.

See also :ref:`the branch status page <branchstatus>` for a list of active branches.

Exceptional version labels for features

While features should not have a version label, there are a few exceptional cases subject to the release manager approval:

  • If we are currently in the beta period of :samp:`3.{N}.0` and if a feature was implemented in its alpha period but requires a non-trivial extension (hence a new feature issue), this new feature issue is given the :samp:`3.{N}` label as the latest version under development would now be :samp:`3.{N+1}.0a1`.

    To indicate that the labelling is correct and the extension is approved, the :gh-label:`triaged` label can also be applied.

Other labels

Labels specific to PRs

The following labels only apply to :ref:`Pull Requests <pullrequest>`. They are either set automatically by bots, or added by humans to trigger specific bot behaviors.