-
Notifications
You must be signed in to change notification settings - Fork 97
Release process
Stefan J. Wernli edited this page Dec 5, 2024
·
2 revisions
Some high-level notes for the team when doing a release.
- Ensure all issues and PRs targeting the release are checked in.
- Figure out the build number for the next release.
- For the first of a new major or minor release, update
major_minor
in./version.py
and start patch version from0
again. - For a patch release, choose the next sequential patch number for the
<major>.<minor>
in use. - 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.
- For the first of a new major or minor release, update
- Determine if this will be a
dev
,rc
, orstable
release. - Navigate internally to the "microsoft.qsharp-lang.release" pipeline in ADO and click "Run pipeline"
- Ensure the "branch/tag" is set as appropriate (usually
main
). - Click on the "Variables" field and ensure
BUILD_NUMBER
is the patch version chosen above, andBUILD_TYPE
isdev
,rc
, orstable
- Click "Run" to start the pipeline. It usually takes about 12 - 15 mins to build all artifacts for all platforms.
- After building the artifacts, it will pause for approval. Under a heading titled "Related" you should see something like "8 published" as shown below
- Click on this and ensure the artifacts look right (versions, pre-release tags, file sizes, etc.) as a final check.
- If so, click on "Review" and approve proceeding to the publish stage.
- 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".
- Validate that versions are showing up as expected on PyPI, npm, and VS Code marketplace.
- 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.