@ -181,18 +181,24 @@ GitLens version changes are bucketed into two types:
<small>Note: `major` version bumps are only considered for more special circumstances.</small>
#### Preparing
#### Preparing a Normal Release
Use the [prep-release](scripts/prep-release.js) script to prepare a new release. The script updates the [package.json](package.json) and [CHANGELOG.md](CHANGELOG.md) appropriately, commits the changes as `Bumps to v<major.minor.patch>`, and creates a `v<major.minor.patch>` tag which when pushed will trigger the CI to publish a release.
Use the [prep-release](scripts/prep-release.js) script to prepare a new release. The script updates the [package.json](package.json) and [CHANGELOG.md](CHANGELOG.md) appropriately, commits the changes as `Bumps to v{major}.{minor}.{patch}`, and creates a `v{major}.{minor}.{patch}` tag which when pushed will trigger the CI to publish a release.
1. Ensure you are on a clean working tree
2. Run `yarn run prep-release` and enter the desired version when prompted.
3. Review the `Bumps to v<major.minor.patch>` commit
1. Ensure you are on the `main` branch and have a clean working tree
2. Run `yarn run prep-release` and enter the desired `{major}.{minor}.{patch}`version when prompted
3. Review the `Bumps to v{major}.{minor}.{patch}` commit
4. Run `git push --follow-tags` to push the commit and tag
Pushing the `v<major.minor.patch>` tag will trigger the [Publish Stable workflow](.github/workflows/cd-stable.yml) to automatically package the extension, create a [GitHub release](https://github.com/gitkraken/vscode-gitlens/releases/latest), and deploy it to the [VS Marketplace](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens).
Pushing the `v{major}.{minor}.{patch}` tag will trigger the [Publish Stable workflow](.github/workflows/cd-stable.yml) to automatically package the extension, create a [GitHub release](https://github.com/gitkraken/vscode-gitlens/releases/latest), and deploy it to the [VS Marketplace](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens).
If the action fails and retries are unsuccessful, the VSIX can be built locally with `yarn package` and uploaded manually to the marketplace. A GitHub release can also be [created manually](https://github.com/gitkraken/vscode-gitlens/releases/new) using `v<major.minor.patch>` as the title and the notes from the [CHANGELOG.md](CHANGELOG.md) with the VSIX attached.
If the action fails and retries are unsuccessful, the VSIX can be built locally with `yarn package` and uploaded manually to the marketplace. A GitHub release can also be [created manually](https://github.com/gitkraken/vscode-gitlens/releases/new) using `v{major}.{minor}.{patch}` as the title and the notes from the [CHANGELOG.md](CHANGELOG.md) with the VSIX attached.
#### Preparing a Patch Release
1. Create, if needed, a `release/{major}.{minor}` branch from the latest `v{major}.{minor}.{patch}` tag
2. Cherry-pick the desired commits from `main` into the `release/{major}.{minor}` branch
3. Follow from Step 2 in [Preparing a Normal Release](#preparing-a-normal-release) above