Skip to content

Commit ca30015

Browse files
committed
docs: document tag-driven release + gated publish governance
1 parent c12201f commit ca30015

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,24 @@ configuration needed.
6161
Install **LaTeX Workshop** and **expl3 Syntax Highlighting** from the Extensions view
6262
(<kbd>Ctrl/Cmd</kbd>+<kbd>Shift</kbd>+<kbd>X</kbd>), then reload the window.
6363

64+
## Releasing (maintainers)
65+
66+
Releases are tag-driven (`.github/workflows/release.yml`):
67+
68+
- `vX.Y.Z-rcM` → build + **GitHub prerelease** (public beta). No marketplace.
69+
- `vX.Y.Z` → build + **GitHub release**, then a **gated** publish to the
70+
VS Code Marketplace and Open VSX.
71+
72+
The publish step runs under the `release` GitHub Environment, which has a
73+
**Required reviewer**: the publish job pauses until that reviewer approves, so
74+
even though anyone in the org can push a tag, only the reviewer can push a
75+
release to the marketplaces. Credentials (`VSCE_PAT`, `OVSX_PAT`) are stored as
76+
**environment secrets** on `release`, readable only by the approved publish job.
77+
78+
To cut a release: bump `version` in `package.json`, commit, then
79+
`git tag vX.Y.Z && git push origin vX.Y.Z`. The workflow's version gate refuses
80+
to run if the tag's base version does not match `package.json`.
81+
6482
## Contributing
6583

6684
Grammar lives in [`syntaxes/expl3.tmLanguage.json`](syntaxes/expl3.tmLanguage.json);

0 commit comments

Comments
 (0)