Skip to content

Latest commit

 

History

History
37 lines (29 loc) · 2.62 KB

CONTRIBUTING.md

File metadata and controls

37 lines (29 loc) · 2.62 KB

Contributing

Run the tests, type checker, package checks, and formatting hooks with tox -e 3.15,type,pkg_meta,fix before opening a pull request. The pkg_meta task checks the wheel and sdist; fix runs the configured hooks.

Release notes

Add a changelog.d/+short-name.<type>.md fragment when a pull request changes what package users can use or observe. Use one fragment per user-facing change. The release workflow links each fragment to its merged squash pull request.

Type Changelog section Use for
feature Added New capabilities and Python support additions or removals
change Changes Changed behavior that remains available
bugfix Fixed Corrected behavior
doc Documentation Documentation changes users need to know about
breaking Breaking changes Changes that require users to update code or configuration
security Security Security fixes users need to act on
performance Performance User-visible speed or resource improvements
deprecation Deprecated Supported behavior scheduled for removal
removal Removed Removed user-facing capabilities other than Python support
packaging Packaging Install, wheel, or distribution changes

Use skip news for a pull request with no user-facing change. The label can be applied after the pull request opens. A fragment still has to be valid when the label is present. Dependabot, pre-commit.ci, and repository automation receive the label when their pull request has no fragment.

Do not write credits in fragments. The release credits come from the commit authors and Co-authored-by trailers, and the prepare workflow runs release-creator contributors to add first-time contributors to the changelog.

Make a release

Run Prepare release on main. Its default auto option chooses a major version for a breaking fragment, a minor version for a feature fragment, and a patch version for other user-facing categories. The workflow formats the assembled changelog with prek, then uses the repository App to push the release commit and tag. The tag workflow publishes the checked package to PyPI through trusted publishing and creates the GitHub Release from the tagged changelog.