-
Notifications
You must be signed in to change notification settings - Fork 50
Publishing a Release
Here's how we publish a new release of the extension to Marketplace.
-
Decide on the version number
X.Y.Z
that you are going to release. This must be higher that the current published version.For a maintenance release (i.e. only
Z
increases, and usually by 1) theX.Y.Z
to use will already be part of theversion
property inpackage.json
, for example:"version": "2.12.8-SNAPSHOT",
In the above example the current Marketplace version is
2.12.7
and we are preparing to publish2.12.8
. The new branch would be namedprepare-2.12.8
For a minor release,
Z
will be reset to0
andY
will be increased by two. We only use even numbers forY
, reserving the odd numbers for Pre-Release versions that we sometimes publish. For the above example, the new minor release would be version2.14.0
For a major release,
Y
andZ
will be reset to0
andX
will be incremented. For the above example the new major release would be version3.0.0
-
Make sure your local copy of the master branch is up-to-date.
-
Create a new branch called
prepare-X.Y.Z
-
Edit
CHANGELOG.md
andREADME.md
on this branch. For an example of typical changes, see PR #1421, titled 'Prepare 2.12.7 release'. -
Stage the changes, commit them with the message 'Prepare
X
.Y
.Z
release', and push the new branch. -
Here on GitHub, create a PR that will merge the branch into master.
-
When the PR has been approved, merge it. You can now delete the branch.
It is important that no other PRs get merged into master between now and the time the new release has been published (see next section).
IF the release being prepared is a major or a minor one AND it is not intended to supersede the current pre-release (if there is one), THEN you MUST publish a new pre-release version to Marketplace BEFORE continuing beyond here. The (odd) minor number of the pre-release's version string must be one greater that the (even) minor number of the regular release you are preparing here. For example when preparing to release
1.6.0
on 6th April 2022 publish the pre-release1.7.2022040601
first.Failure to do this will mean that users who previously opted to install a pre-release from Marketplace may get automatically switched to the new regular (non-pre-release) version. To resume using pre-release features they will then have to switch back to the pre-release again and disable automatic updating until a new (higher-numbered) pre-release is on Marketplace.
-
Draft a new release.
- Use
master
as the target branch (this is the default). - In the "Choose a tag" field, type a new tag. You must use the version string prefixed with
v
, e.g.v2.12.8
- Use the same string for the release title as you used for the new tag, e.g.
v2.12.8
- For the release description the phrase "See CHANGELOG for details" is adequate.
- Use
- Click "Publish release".
Our CI workflow (GitHub Actions) will build a regular (non-pre-release)VSIX and publish it on Marketplace.