Release Process

This page is for Authlib maintainers. It describes how to publish a new version. It assumes push access to the authlib/authlib repository. To add a changelog entry to a pull request, see Contribution.

  1. Set the new version in authlib/consts.py:

    version = "1.9.1"
    
  2. Collect the changelog fragments:

    uv run scriv collect
    

    scriv reads the version from authlib/consts.py. It adds a Version 1.9.1 — <date> entry to Changelog and deletes the fragments in changelog.d. It stops with an error when the changelog already has an entry for this version.

  3. Review the new entry in docs/upgrades/changelog.rst, and edit it if needed.

  4. Commit the version, the changelog and the deleted fragments:

    git add authlib/consts.py docs/upgrades/changelog.rst changelog.d
    git commit -m "chore: release 1.9.1"
    
  5. Tag the commit and push both to authlib/authlib:

    git tag v1.9.1
    git push <remote> main v1.9.1
    

The v1.* tag starts the “Release to PyPI” workflow. It builds the distribution files, publishes them to PyPI through the pypi-release environment, and creates the GitHub release. The release notes start with a link to the changelog entry, followed by the notes generated by GitHub.