Release Process#
This page outlines the process for creating a new Fairlearn release.
The following steps assume git remote’s origin
points to
fairlearn/fairlearn
.
Ensure the maintainers listed in
scripts/generate_maintainers_table.py
are up to date. Run the command below from the repository root directory:$ python scripts/generate_maintainers_table.py
If the generated file
docs/about/maintainers.rst
does not change you can proceed with the next step. Otherwise, create a PR to update the generated maintainers file on themain
branch. Proceed only when the PR is merged.Check the
docs/user_guide/installation_and_version_guide
for a file related to the release. Make sure formatting and contents are correct and create a summary of the highlights at the top of the file. Create a PR for this and merge it before proceeding.If this is a non-patch release:
Create a new branch:
$ git checkout -b release/v<x.y>.X
Push the branch to GitHub:
$ git push -u origin release/v<x.y>.X
You may need to temporarily add an exception to the branch protection rules by adding a new branch protection rule for
release/v<x.y>.X
.
On the release branch, create a PR to update the version in
__init__.py
tox.y.z
(wherez=0
for the first release from a branch)Merge that PR.
Run the Release Wheel workflow on GitHub
Note
Ensure that you have selected the correct release branch
On the release branch, place an annotated tag:
$ git tag -a v<x.y.z> -m "v<x.y.z> release"
Push the tag to GitHub:
$ git push origin v<x.y.z>
On GitHub’s release page, draft a new release. Choose the new tag, title the release v<x.y.z>, and post the changes from the release file within
docs/user_guide/installation_and_version_guide
into the description, then hit “publish”.On the
main
branch, create a PR to:Update the version in
__init__.py
tox.y+1.z.dev0
Update the version in
docs/static_landing_page/js/landing_page.js
so that all the links point to the new releaseUpdate the
docs/_static/versions.json
fileCreate a new file
vx.y+1.z.rst
indocs/user_guide/installation_and_version_guide
Note
Make sure to add a note to the PR: “Do not merge until the release is completed. Otherwise a new website will be published that points to the new version which doesn’t exist yet.”
Merge the PR.