Skip to content

Commit f1dd0c4

Browse files
authored
Automate Release Process (#45)
* update CI process * fix reading version * Add release job (unfinished) * remove bom from vstemplate * update vstemplates during version bump * remove release step conditions for test * change job to use windows * Revert "change job to use windows" This reverts commit a2522a3. * add "tfx extension publish --help" * comment out tests for faster debug * npm install -g tfx-cli * Revert "npm install -g tfx-cli" This reverts commit 6b27bce. * Revert "add "tfx extension publish --help"" This reverts commit 28e6f64. * Reapply "change job to use windows" This reverts commit bc740c6. * use GHA-VSMarketplacePublisher to publish * cleanup Deploy VSIX packages * disable Deploy VSIX packages * remove unneeded target to set the version in vstemplate * Add Review modified files * Add Verify VSIX Deploy settings * updated CHANGELOG * undo temp changes * add RELEASING.md
1 parent 1988338 commit f1dd0c4

File tree

16 files changed

+297
-83
lines changed

16 files changed

+297
-83
lines changed

.github/workflows/ci.yml

Lines changed: 233 additions & 58 deletions
Large diffs are not rendered by default.

.marketplace/publishManifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
},
77
"overview": "overview.md",
88
"priceCategory": "free",
9-
"publisher": "reqnroll",
9+
"publisher": "Reqnroll",
1010
"private": false,
1111
"qna": true,
1212
"repo": "https://github.com/reqnroll/Reqnroll.VisualStudio"

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"cSpell.words": [
33
"Reqnroll"
4-
]
4+
],
5+
"markdown.extension.toc.updateOnSave": false
56
}

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
*Added support for .NET 9 through the Visual Studio extension.
66

7-
*Contributors of this release (in alphabetical order):* @UL-ChrisGlew
7+
*Contributors of this release (in alphabetical order):* @gasparnagy, @UL-ChrisGlew
88

99
# v2024.6.176 - 2024-11-08
1010

RELEASING.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Releasing
2+
3+
This document describes how to make a release using GitHub Actions.
4+
5+
There are two parts to making a release:
6+
7+
* [Prepare the release](#prepare-the-release)
8+
* [Make the release](#make-the-release)
9+
10+
If you're making a major or minor release it is recommended to discuss it with the other contributors upfront (e.g. on Discord).
11+
12+
## Prepare the release
13+
14+
Anyone with permission to push to the `main` branch can prepare a release.
15+
16+
1. Add new information to `CHANGELOG.md`. Ideally the `CHANGELOG.md` should be up-to-date, but sometimes there will be accidental omissions when merging PRs.
17+
* Use `git log --format=format:"* %s (%an)" --reverse <last-version-tag>..HEAD` to list all commits since the last release.
18+
* Add changelog details under the `# [vNext]` heading; the release process will update this heading when it makes the release
19+
1. Check & update contributors list (if applicable)
20+
* List recent contributors:
21+
```
22+
git log --format=format:"%an <%ae>" --reverse <last-version-tag>..HEAD | grep -vEi "(renovate|dependabot|Snyk)" | sort| uniq -i
23+
```
24+
* Update contributors if necessary at the `Contributors of this release` part of the `# [vNext]` heading
25+
1. The Visual Studio extension releases are versioned sequentially within a year, with the format `YYYY.SEQ.BUILD` (e.g. `2024.5.182`). In the beginning of the year, the year number must be updated and the sequence number has to be reset to `1`. When preparing the release you just need to double-check if the version is correct. You can find the current version number in the `Directory.Build.props` file.
26+
27+
## Make the release
28+
29+
Only people in group [release-managers](https://github.com/orgs/reqnroll/teams/release-managers) can make releases and only from the `main` branch.
30+
31+
### Making a preview release
32+
33+
Making preview releases are currently not supported, but each build contains a deploy target with the `vsix` installation file included. Installing those could be used to test preview versions.
34+
35+
### Making a production release
36+
37+
Production releases (or just releases) are intended to use for any users. Their version number does not contain a version suffix.
38+
39+
To release such a preview release, the following steps has to be done:
40+
41+
1. Open the CI workflow at GitHub: https://github.com/reqnroll/Reqnroll.VisualStudio/actions/workflows/ci.yml
42+
1. Choose the "Run workflow" button to trigger the release with the following settings:
43+
* `deploy_packages`: checked
44+
* `is_production_release`: checked
45+
* `custom_version_suffix`: leave it empty
46+
* `custom_configuration`: leave it on default
47+
1. The CI workflow runs and ideally passes all core and testing jobs, but will stop for approval before running the `release` job.
48+
1. Make sure everything is OK. You can even download the packages to be published for a smoke test if necessary.
49+
1. If everything is fine, approve the deployment job.
50+
1. The job will publish the packages, tag the current commit and create a new commit with the updated version number and changelog header.

Reqnroll.VisualStudio.ItemTemplates/FeatureFile/FeatureFile_CSharp.vstemplate

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
1+
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
22
<TemplateData>
33
<DefaultName>Feature.feature</DefaultName>
44
<Name>Feature File for Reqnroll</Name>

Reqnroll.VisualStudio.ItemTemplates/FeatureFile/FeatureFile_VB.vstemplate

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
1+
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
22
<TemplateData>
33
<DefaultName>Feature.feature</DefaultName>
44
<Name>Feature File for Reqnroll</Name>

Reqnroll.VisualStudio.ItemTemplates/Hooks/Hooks_CSharp.vstemplate

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
1+
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
22
<TemplateData>
33
<DefaultName>Hooks.cs</DefaultName>
44
<Name>Reqnroll Hooks (event bindings)</Name>

Reqnroll.VisualStudio.ItemTemplates/Hooks/Hooks_VB.vstemplate

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
1+
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
22
<TemplateData>
33
<DefaultName>Hooks.cs</DefaultName>
44
<Name>Reqnroll Hooks (event bindings)</Name>

Reqnroll.VisualStudio.ItemTemplates/ReqnrollConfig/ReqnrollConfig_CSharp.vstemplate

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
33
<TemplateData>
44
<DefaultName>reqnroll.json</DefaultName>

0 commit comments

Comments
 (0)