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 (in practical terms, that the work is being done on a clone of fairlearn/fairlearn and not on a fork).

  1. Create the branch for the release:

    git checkout -b release/v<x.y.z>

  2. Push the branch to GitHub:

    git push -u origin release/v<x.y.z>

  3. On the release branch, create a PR to:

    1. Update the version in __init__.py to x.y.z

    2. Update the version in the ReadMe

  4. Merge that PR.

  5. Run the release pipeline

    1. Ensure that you have selected the correct release branch

    2. Run first on ‘Test’ which will upload to <https://test.pypi.org>

    3. Finally, run the release pipeline set to ‘Production’ which will upload to <https://pypi.org/>

  6. On the release branch, place an annotated tag:

    git tag -a v<x.y.z> -m "v<x.y.z> release"

  7. Push the tag to GitHub:

    git push origin v<x.y.z>

  8. On GitHub’s release page there should be a new release named v<x.y.z>. Open it and post the changes from CHANGES.md into the description, then hit “publish”.

  9. On the main branch, create a PR to:

    1. Update the version in __init__.py to x.y.z+1.dev0

    2. Update the ‘current stable release’ sentence in the ReadMe to link to v<x.y.z>

    3. Ensure that smv_tag_whitelist in docs/conf.py will pick up the new release

    4. Update docs/static_landing_page/ so that all the links point to the new release

Note

Make sure to add a note to this second 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.”

  1. Merge that PR.