@ -170,7 +170,9 @@ If this is your first contribution to GitLens, please give yourself credit by ad
## Publishing
### Versioning
### Stable Releases
#### Versioning
GitLens version changes are bucketed into two types:
@ -179,40 +181,23 @@ GitLens version changes are bucketed into two types:
<small>Note: `major` version bumps are only considered for more special circumstances.</small>
#### Updating the CHANGELOG
All recent changes are listed under `## [Unreleased]`. This title and corresponding link at the bottom of the page will need to be updated.
The title should be updated to the upcoming version and the release date (YYYY-MM-DD):
```markdown
<!-- from: -->
## [Unreleased]
<!-- to: -->
## [12.1.0] - 2022-06-14
```
Stage this file so it will be included with the version commit.
#### Version Commit
Run `yarn version` and enter the upcoming version when prompted.
#### Preparing
Once the commit is completed, run `git push --follow-tags` to push the version commit and the newly generated tags.
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.
### GitHub Actions and Deployment
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
4. Run `git push --follow-tags` to push the commit and tag
After the version commit and new tags are pushed to GitHub, the [Publish Stable workflow](.github/workflows/cd-stable.yml) will be triggered, which will automatically package the extension and deploy it to the [VS Marketplace](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens). The [release notes](https://github.com/gitkraken/vscode-gitlens/releases/latest) _should_ be generated during the action, but if not, this can be done manually using the notes from the [Change Log](CHANGELOG.md).
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, the VSIX will need to be built locally with `yarn package` and uploaded manually in the marketplace.
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.
### Pre-release edition
### Pre-releases
The [Publish Pre-release workflow](.github/workflows/cd-pre.yml) is automatically run every AM unless no new changes have been committed to `main`.
### Insiders edition (deprecated use pre-release instead)
### Insiders (deprecated use pre-release instead)
The Publish Insiders workflow is no longer available and was replaced with the pre-release edition.