mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 19:17:10 +00:00
docs(ci): describe how far back a milestone's notes reach
Claude-Session: https://claude.ai/code/session_01ShuAy8q8ZfPi8KHxwc8JpQ
This commit is contained in:
1 parent
83015d89f0
commit
e93e6714b8
1 file changed
+22
-13
+22
-13
@@ -264,10 +264,12 @@ head, because master can move in the hour the device legs take.
|
|||||||
|
|
||||||
**`release.yml` promotes that to a milestone.** Actions -> release -> Run
|
**`release.yml` promotes that to a milestone.** Actions -> release -> Run
|
||||||
workflow, pick `minor` or `major`, and the version you have been running as
|
workflow, pick `minor` or `major`, and the version you have been running as
|
||||||
`0.1.6` is republished as `0.2.0`. The `version` box overrides the dropdown with
|
`0.1.6` is republished as `0.2.0`.
|
||||||
a version named outright, which is how a pre-release like `1.0.0-rc1` gets cut;
|
|
||||||
a pre-release publishes under npm's `next` tag so `npm install @sanderling/spec`
|
Those two entries are the whole interface. There is no box to type a version
|
||||||
keeps resolving the latest stable.
|
into, and no `patch` entry: a manual patch would republish an identical commit
|
||||||
|
under the next patch number, and a version named by hand is the one way to get a
|
||||||
|
release that does not follow from the tag before it.
|
||||||
|
|
||||||
It runs no checks and needs none. The commit it releases is the one the last
|
It runs no checks and needs none. The commit it releases is the one the last
|
||||||
release was cut from, and that commit only carries a tag because a whole ci run
|
release was cut from, and that commit only carries a tag because a whole ci run
|
||||||
@@ -297,6 +299,22 @@ release that cannot be taken back and a tag is the half that can. Both pipelines
|
|||||||
resolve their version under one `release-tag` concurrency group, so a promotion
|
resolve their version under one `release-tag` concurrency group, so a promotion
|
||||||
and a merge can never count off the same tag at once.
|
and a merge can never count off the same tag at once.
|
||||||
|
|
||||||
|
### How far back the notes reach
|
||||||
|
|
||||||
|
GoReleaser builds its changelog from the commits between the previous tag and
|
||||||
|
this one, and works that previous tag out on its own. For a patch that is
|
||||||
|
exactly right. For a promotion it is not: `v0.2.0` lands on the commit `v0.1.6`
|
||||||
|
already tags, so GoReleaser reaches back to `v0.1.5` and the notes on a release
|
||||||
|
consolidating six patches describe one merge.
|
||||||
|
|
||||||
|
So the resolver also emits `previous_tag`, which the release passes as
|
||||||
|
`GORELEASER_PREVIOUS_TAG`: the last release at the level being cut. A minor
|
||||||
|
reaches back to the last `vX.Y.0`, counting a major as one, and a major reaches
|
||||||
|
back to the last `vX.0.0`. The first milestone of its kind has nothing at its own
|
||||||
|
level, so it reaches back to the first release there has ever been. A patch emits
|
||||||
|
nothing, and an empty value leaves GoReleaser on the default that was already
|
||||||
|
right for it.
|
||||||
|
|
||||||
### The npm credential
|
### The npm credential
|
||||||
|
|
||||||
`NPM_TOKEN` is a classic automation token. Those do not expire, which is the
|
`NPM_TOKEN` is a classic automation token. Those do not expire, which is the
|
||||||
@@ -312,12 +330,3 @@ the run, and there are two workflows here that publish. A reusable workflow does
|
|||||||
not help, because npm sees the caller's name. Collapsing the two pipelines into
|
not help, because npm sees the caller's name. Collapsing the two pipelines into
|
||||||
one is the price of OIDC, and it is not worth paying.
|
one is the price of OIDC, and it is not worth paying.
|
||||||
|
|
||||||
### A promoted release has thin release notes
|
|
||||||
|
|
||||||
GoReleaser builds its changelog from the commits between the previous tag and
|
|
||||||
this one. A promotion tags a commit that is already tagged, so `v0.2.0` and
|
|
||||||
`v0.1.6` sit on the same commit and there is nothing between them to list. The
|
|
||||||
binaries and the npm tarball are correct; only the generated notes are empty.
|
|
||||||
Setting `GORELEASER_PREVIOUS_TAG` to the previous milestone would make the notes
|
|
||||||
span the patches being consolidated, and is the obvious thing to add if those
|
|
||||||
notes start mattering.
|
|
||||||
Reference in new issue
Block a user