Skip to content

Release 0.16.0

Checklist for a new release

  1. Review that AUTHORS.md has been updated.

  2. Update CHANGELOG.md, docs/tutorials/qblox/recent.md and README.md:

    • Update Unreleased chapter title in CHANGELOG.md to X.Y.Z (YYYY-MM-DD).
      • Also update Unreleased title in docs/tutorials/qblox/recent.md (if present).
    • Order changelog alphabetically based on the key (secondary order of entries with same key can be kept as is): Key - Description
    • Add compatibility info, extract the versions from pyproject.toml and https://pypi.org/project/qblox-instruments/ (Qblox Cluster firmware):
      ### Compatibility info
      
      - Qblox: `qblox-instruments==x.x.x` (Cluster firmware vx.x.x)
      - ZI:    `zhinst==x.x.x` `zhinst-qcodes==x.x.x` `zhinst-toolkit==x.x.x`
    • Update ## Hardware/driver compatibility in README.md.
  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=X.Y.Z
      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 summary of the release.
      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
    • Make sure the docs build and check on RTD.
      • Check the new version on RTD via the Changelog.
  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 Edgar Reehuis

Merge request reports

Loading