Skip to content

Publishing a Release

John Murray edited this page Sep 23, 2024 · 5 revisions

Publishing a Release

Here's how we publish a new release of the extension to Marketplace.

Prepare release

  1. 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) the X.Y.Z to use will already be part of the version property in package.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 publish 2.12.8. The new branch would be named prepare-2.12.8

    For a minor release, Z will be reset to 0 and Y will be increased by two. We only use even numbers for Y, reserving the odd numbers for Pre-Release versions that we sometimes publish. For the above example, the new minor release would be version 2.14.0

    For a major release, Y and Z will be reset to 0 and X will be incremented. For the above example the new major release would be version 3.0.0

  2. Make sure your local copy of the master branch is up-to-date.

  3. Create a new branch called prepare-X.Y.Z

  4. Edit CHANGELOG.md and README.md on this branch. For an example of typical changes, see PR #1421, titled 'Prepare 2.12.7 release'.

  5. Stage the changes, commit them with the message 'Prepare X.Y.Z release', and push the new branch.

  6. Here on GitHub, create a PR that will merge the branch into master.

  7. 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-release 1.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.

Publish release

  1. 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.
  2. Click "Publish release".

Our CI workflow (GitHub Actions) will build a regular (non-pre-release)VSIX and publish it on Marketplace.

Clone this wiki locally