You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+8-5Lines changed: 8 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -97,16 +97,19 @@ git tag -l 'v*' --sort=-v:refname | head -1
97
97
98
98
### Cutting a release
99
99
100
+
Releases are automated. Pushing a `v`-prefixed tag fires `.github/workflows/release.yml`, which builds, packs, publishes to NuGet.org, and creates a matching GitHub Release with notes extracted from `CHANGELOG.md`.
101
+
100
102
```bash
101
-
# 1. Merge the release PR (which updates CHANGELOG.md)
102
-
# 2. Tag the merge commit on main
103
+
# 1. Move the CHANGELOG [Unreleased] block to [X.Y.Z] (with today's date if you
104
+
# want one — the workflow does not require a date), commit, and merge to main.
105
+
# 2. Tag the merge commit and push the tag.
103
106
git tag -a v1.2.0 -m "Release 1.2.0"
104
107
git push origin v1.2.0
105
-
106
-
# 3. Trigger the Release workflow via GitHub Actions UI (workflow_dispatch)
107
108
```
108
109
109
-
The `Release` workflow (`.github/workflows/release.yml`) builds, packs, and publishes to NuGet.org.
110
+
The workflow extracts the `## [X.Y.Z]` section of `CHANGELOG.md` and uses it as the GitHub Release body. If no matching section exists for the tag's version, the workflow fails loudly — the fix is to update `CHANGELOG.md` and re-tag.
111
+
112
+
`workflow_dispatch` is still wired up as a manual fallback for ad-hoc re-publishes (e.g. if a NuGet push fails partway through), but the normal flow is tag-push.
0 commit comments