Contribution Guide#

How to Release a New Version#

  • From the main branch, create a release branch releases/<version> (for example releases/1.2.1). Do not push the release branch yet.

  • On the local release branch:

    • Update CHANGELOG

    • Update version number in version.py

    • Add new version into docs/source/versions.md

  • Push the release branch to Azure DevOps. The release pipeline will automatically trigger and perform the release steps.

Update Documentation without Triggering Release#

  • Disable the release pipeline:

    • Under Pipeline Settings, set “Processing of new run requests” to “Disabled”.

  • Push the documentation updates.

  • Trigger the documentation pipeline manually.

  • Re-enable the release pipeline.

    • Under Pipeline Settings, set “Processing of new run requests” to “Enabled”.

Continuous Deployment#

For automated deployment to PyPI, a service connection to PyPI must be created in DevOps.

The setting can be found under Project settings > Pipelines > Service connections

For PyPI:

  • URL is https://upload.pypi.org/legacy/

  • The URL must end with a trailing slash character

  • Both EndpointName and Service connection name can be set to PyPI

  • Username should be __token__

  • Password should be the API token string

For TestPyPI:

  • URL is https://test.pypi.org/legacy/

  • The URL must end with a trailing slash character

  • Both EndpointName and Service connection name can be set to TestPyPI

  • Username should be __token__

  • Password should be the API token string