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
fix(ci): remove @semantic-release/git to avoid branch protection push (#1141)
Remove the @semantic-release/git plugin which pushes version bump
commits and CHANGELOG.md back to the branch. The default github.token
cannot push to protected branches, and this avoids the need for a PAT.
Version source of truth is git tags + npm registry. Add a
sync-versions devbox command to pull latest npm versions into
package.json on demand. Update release docs accordingly.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: wiki/release.md
+9-6Lines changed: 9 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,30 +4,33 @@ This repo uses semantic-release with multi-semantic-release to version and publi
4
4
5
5
### Prerequisites
6
6
7
-
- Secrets: `GH_TOKEN` (repo `contents` write) and `NPM_TOKEN` (publish). CI also passes `YARN_NPM_AUTH_TOKEN` (same as `NPM_TOKEN`).
7
+
- Secrets: npm trusted publishing (OIDC) is configured per-package on npmjs.com. The workflow uses `github.token` for GitHub operations.
8
8
- Git history: full clone (`fetch-depth: 0`) so semantic-release can find prior tags.
9
9
- Commit format: conventional commits; commitlint is already configured.
10
10
11
11
### What runs
12
12
13
13
- Config files: `release.config.js` (single-package defaults) and `multi-release.config.js` (multi-package orchestration, sequential init/prepare, ignore private packages, tag format/branches).
14
-
- Plugins: commit analyzer + release notes, changelog (`CHANGELOG.md`), npm publish, GitHub release (no success comment), and git commit of changelog + package.json.
14
+
- Plugins: commit analyzer + release notes, npm publish (with provenance), and GitHub release (no success comment).
15
15
- Script: root `yarn release` runs `multi-semantic-release` with the above config per public package.
16
16
17
17
### CI/CD path (recommended)
18
18
19
19
1. Ensure `master`/`beta` are green. Merges must use conventional commits.
20
-
2. Trigger `Publish` workflow in Actions. Inputs are tokens only; workflow fetches full history, installs Devbox, then runs `devbox run release`.
21
-
3. Outputs: package tags (`${name}-vX.Y.Z`), npm publishes, GitHub releases, and updated changelog commits pushed back via the workflow token.
20
+
2. Trigger `Release` workflow in Actions. Choose type: `dry-run`, `beta`, or `production`.
21
+
3. Outputs: package tags (`${name}-vX.Y.Z`), npm publishes, and GitHub releases.
22
+
23
+
Note: version bumps and changelogs are **not** committed back to the repo. The source of truth for versions is the git tags and npm registry. To sync the repo's `package.json` versions with npm, run `devbox run --config=shells/devbox-fast.json sync-versions` and include the changes in a PR.
22
24
23
25
### Local dry run
24
26
25
-
1.`GH_TOKEN=<token> NPM_TOKEN=<token> YARN_NPM_AUTH_TOKEN=<token>` (GH token needs `contents`write; npm token can be automation/classic publish).
26
-
2.`devbox run release -- --dry-run` to see what would publish. Omit `--dry-run` to actually publish (only do this if you intend to release from your machine).
27
+
1.`GH_TOKEN=<token> devbox run --config=shells/devbox-fast.json release-dry-run` (GH token needs `contents`read).
28
+
2. Omit `--dry-run` to actually publish (only do this if you intend to release from your machine; npm auth is handled via OIDC in CI).
27
29
28
30
### Tips and gotchas
29
31
30
32
- Only public packages release; private workspaces (e.g., `packages/shared`) are ignored.
31
33
- Tag pattern is important: keep `${name}-v${version}` if you create manual tags for debugging.
32
34
- If adding a new branch for releases, update both `release.config.js` and `multi-release.config.js`.
33
35
- Keep yarn.lock in sync before releasing to avoid install differences between CI and local.
36
+
-`.npmrc` contains `workspaces-update=false` to prevent `npm version` from failing on Yarn's `workspace:` protocol.
0 commit comments