Skip to content

Release 0.11.0

Checklist for a new release

  1. Review CHANGELOG.md and AUTHORS.md have been updated.

  2. Update Unreleased chapter title in CHANGELOG.md to X.Y.Z (YYYY-MM-DD). Commit it.

  3. Review @deprecated and FutureWarnings that can be cleaned up now.

  4. CI pipeline:

    • Automated pipeline passes.
    • All Test (py3.x, Windows, manual) pass (trigger manually!).
  5. Commit pip frozen requirements for future reference:

    • Go to the Test (py3.9, Linux) pipeline job and download the artifacts (right side "Job artifacts" --> "Download").

    • Unzip, get the frozen-requirements.txt.

    • Paste it in frozen_requirements directory.

    • Rename it, commit & push:

      NEW_VERSION=$(python setup.py --version)
      echo $NEW_VERSION
      
      mv frozen_requirements/frozen-requirements.txt frozen_requirements/frozen-requirements-$NEW_VERSION.txt
      
      git add frozen_requirements/frozen-requirements-$NEW_VERSION.txt
      git commit -m "Add pip frozen requirements for $NEW_VERSION"
      git push
  6. Create tag for bumped version:

    • Merge this MR into main.

    • Create and push an annotated tag vX.Y.Z pointing to the merge commit:

      echo $NEW_VERSION
      
      git tag -a "v${NEW_VERSION}"  # Note: should be vX.Y.Z, not X.Y.Z
      # You will be prompted for a tag description here. Provide a list of highlights.
      git push origin "v${NEW_VERSION}"
  7. Add Unreleased chapter back to CHANGELOG.md. Commit and push it to main directly (no need to review it). Commit message could be, for example, start development of vX.Y.(Z+1).

  8. Create and push an annotated tag vX.Y.(Z+1).dev pointing to the commit above. Commit annotation could be, for example, Start development of vX.Y.Z+1.

  9. Read-the-Docs setup:

    • Enable docs build for the new tag over here.
      • Configuration:
        • Active=True
        • Hidden=False
        • Privacy Level=Public
    • Change both the Default version and Default branch of the docs to the tag that was released over here. Hit Save!
    • Make sure the docs build and check on RTD.
      • Manually rebuild latest by hitting Build version: over here.
      • Check both the latest and the new version links on RTD work by clicking through to Changelog (hit Ctrl+F5).
  10. Create new release on GitLab.

    • Meaningful title
    • List of highlights followed by changelog.
    • Add a few images or animated GIFs showcasing the new exciting features.
  11. When Release to test.pypi.org job of the tag pipeline succeeds:

    • Install package in (test) env and validate (e.g., run a quick notebook).
      pip install quantify-scheduler==x.x.x --extra-index-url=https://test.pypi.org/simple/
      • (For creating test env)
        ENV_NAME=qtest # Adjust
        PY_VER=3.8
        DISPLAY_NAME="Python $PY_VER Quantify Test Env" && echo $DISPLAY_NAME # Adjust
        
        conda create --name $ENV_NAME python=$PY_VER
        conda activate $ENV_NAME
        conda install -c conda-forge jupyterlab
        python -m ipykernel install --user --name=$ENV_NAME --display-name="$DISPLAY_NAME"
  12. Release on PyPi by triggering manual Release to pypi.org job and wait till it succeeds.

  13. Post the new release in Slack (#software-for-users and #software-for-developers).

    • PS Rockets are a must! 🚀🚀🚀
  14. Inform the Quantify Marketing Team.

Edited by Viacheslav Ostroukh

Merge request reports

Loading