This repository was archived by the owner on Oct 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 236
Release process
Ben McMorran edited this page Jan 25, 2023
·
7 revisions
Production releases and release candidates are represented by tags on the main
branch. Every production release should be preceded by one or more release candidates. Because VS Code follows the Modern Lifecycle Policy, old releases of the extension do not need to be serviced, so there's no need to maintain a separate release branch. Follow these steps to create a new release candidate or production release.
- On the
main
branch, update the version inpackage.json
and add-rc
to the end. For example,"version": "0.5.0-rc"
. For better or worse, vscode-arduino is effectively following ZeroVer.- Major (first) version is always zero.
- Minor (second) version is incremented for breaking changes. We define changes as "breaking" if they prevent old files from working in the new version (usually settings) or significantly impact existing workflows. If the change only affects build artifacts, like requiring a rebuild, it is not considered breaking.
- Patch (third) version is incremented for all other non-breaking changes.
- Run
npm install
from the root of the repository. - Update
CHANGELOG.md
to describe the changes in the new release. - Commit the changes directly to
main
and push.
git add package.json package-lock.json CHANGELOG.md
git commit -m "Pre-release v0.5.0"
git push
- Tag the release candidate with a tag that matches the new version and push the tag.
git tag v0.5.0-rc
git push origin v0.5.0-rc
- Verify that an Azure DevOps CI build associated with the tag has started. If the build fails (unlikely because there are no changes aside from version number), investigate the failure and open PRs to fix any issues.
- Once the build finishes, verify that the release candidate appears on GitHub.
- Install the release candidate VSIX in VS Code and validate that all issues labeled
fixed-pending-release
have been resolved. For higher risk releases, you may also want to share the VSIX with partners for testing.
- On the
main
branch, update the version inpackage.json
to remove the-rc
suffix. For example,"version": "0.5.0"
. - Run
npm install
from the root of the repository. - If needed, update the release date in
CHANGELOG.md
. - Commit the changes directly to
main
and push.
git add package.json package-lock.json CHANGELOG.md
git commit -m "Bump to v0.5.0"
git push
- Tag the release with a tag that matches the new version and push the tag.
git tag v0.5.0
git push origin v0.5.0
- Verify that an Azure DevOps CI build associated with the tag has started.
- Once the build finishes, verify that the release appears on GitHub.
- Download the release VSIX and upload it to the VS Code Marketplace extension portal.
- Once the Marketplace finishes validation steps, verify that you can install the new version of vscode-arduino from the Marketplace within VS Code.
- Verify that all issues labeled
fixed-pending-release
are closed. There are some issues with this automation that we haven't fully flushed out yet.