Skip to content

Release 0.9.0 (QAE-470)

Checklist for a new release

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

  2. Review @deprecated and DeprecationWarnings that can be cleaned up now.

  3. CI pipeline:

    • Automated pipeline passes.
    • All Test (py3.x, Windows, manual) pass (trigger manually!).
  4. Bump version and commit & push:

    VERSION_PART=patch # or minor, or major
    bump2version $VERSION_PART --config-file setup.cfg
    
    NEW_VERSION=$(python setup.py --version)
    echo $NEW_VERSION
    
    git add setup.py setup.cfg quantify_scheduler/__init__.py
    git commit -m "Bump to version $NEW_VERSION"
    git push
  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:

  7. 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).
  8. 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.
  9. Do TestPyPi release (also see https://adriaanrol.com/posts/pypi/):

    • Checkout the tag you just created:
      git fetch && git checkout $NEW_VERSION
    • Build package and upload to TestPyPi:
      # Always update first
      pip install --user --upgrade setuptools wheel
      
      # Clear dist/ directory
      rm dist/*
      
      # This creates several files in the dist/ directory
      python setup.py sdist bdist_wheel
      
      # If ^ runs without warnings you can upload to test.pypi.org
      python -m twine upload --repository testpypi dist/*
    • 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"
  10. Release on PyPi and wait for it to become available (also see https://adriaanrol.com/posts/pypi/).

    twine upload dist/* 
  11. Post the new release in Slack (#software-for-users and #software-for-developers).

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

Edited by Edgar Reehuis

Merge request reports

Loading