Skip to content

Release process

Stefan J. Wernli edited this page Dec 5, 2024 · 2 revisions

Some high-level notes for the team when doing a release.

  1. Ensure all issues and PRs targeting the release are checked in.
  2. Figure out the build number for the next release.
    1. For the first of a new major or minor release, update major_minor in ./version.py and start patch version from 0 again.
    2. For a patch release, choose the next sequential patch number for the <major>.<minor> in use.
    3. If unsure, check https://pypi.org/project/qsharp/#history or https://www.npmjs.com/package/qsharp-lang?activeTab=versions to see what the prior version was.
  3. Determine if this will be a dev, rc, or stable release.
  4. Navigate internally to the "microsoft.qsharp-lang.release" pipeline in ADO and click "Run pipeline"
  5. Ensure the "branch/tag" is set as appropriate (usually main).
  6. Click on the "Variables" field and ensure BUILD_NUMBER is the patch version chosen above, and BUILD_TYPE is dev, rc, or stable
  7. Click "Run" to start the pipeline. It usually takes about 12 - 15 mins to build all artifacts for all platforms.
  8. After building the artifacts, it will pause for approval. Under a heading titled "Related" you should see something like "8 published" as shown below

image

  1. Click on this and ensure the artifacts look right (versions, pre-release tags, file sizes, etc.) as a final check.
  2. If so, click on "Review" and approve proceeding to the publish stage.
  3. The 3 "publish" jobs may take up to 5 mins, and the VS Code Marketplace validation may take another few mins before the new version is "live".
  4. Validate that versions are showing up as expected on PyPI, npm, and VS Code marketplace.
  5. If this was a stable release, then create a new release with the appropriate tag at https://github.com/microsoft/qsharp/releases/new following the format of prior releases. Note that the tag will be created when the release is published if it was not created ahead of time.