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
{{ message }}
Repository navigation
Commit cb4075f
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/contributing/release.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ OpenAgentPack publishes `@openagentpack/sdk`, `@openagentpack/playground`, and `
6
6
7
7
An organization owner must allow GitHub Actions to create pull requests in the organization Actions settings; then enable the matching option in **Repository Settings → Actions → General**. The Release PR workflow uses the repository `GITHUB_TOKEN`, not a personal token.
8
8
9
-
No approval Environment is required. The publish job does not reference any GitHub `environment:`, so there is no manual reviewer gate. Publishing is still protected by the Trusted Publisher settings on npmjs.com and the `NPM_RELEASE_ENABLED` kill switch.
9
+
Create or retain the GitHub Environment named `npm-release`. The publish job references it to match the npm Trusted Publisher identity. Manual approval is controlled separately by **Required reviewers** in that Environment's settings. To publish without manual approval, disable Required reviewers while retaining the workflow's `environment: npm-release` binding. Publishing is still protected by the Trusted Publisher settings on npmjs.com and the `NPM_RELEASE_ENABLED` kill switch.
10
10
11
11
On npmjs.com, open the settings for each of the three packages and configure the same Trusted Publisher:
12
12
@@ -16,8 +16,9 @@ On npmjs.com, open the settings for each of the three packages and configure the
16
16
| Organization |`modelstudioai`|
17
17
| Repository |`OpenAgentPack`|
18
18
| Workflow filename |`release.yml`|
19
+
| Environment |`npm-release`|
19
20
20
-
Leave the Environment field empty in the Trusted Publisher settings; the workflow job no longer references an environment.
21
+
The Trusted Publisher Environment must exactly match the workflow job's `environment: npm-release` binding.
21
22
22
23
The workflow uses a GitHub-hosted runner, Node.js 24, npm 12, `id-token: write`, and provenance. No `NPM_TOKEN` or `NODE_AUTH_TOKEN` is required. The packages must already exist before npm lets you add a Trusted Publisher.
23
24
@@ -37,19 +38,19 @@ Choose the SemVer impact and describe the change for the generated changelog. On
37
38
38
39
1. In GitHub, open **Actions → Publish npm → Run workflow**.
39
40
2. Select the exact branch to publish, choose `beta`, type `PUBLISH`, and run it.
40
-
3. Review the commit, generated version, and job summary on the run page.
41
+
3. Review the commit, generated version, and job summary on the run page. If Required reviewers are enabled for `npm-release`, approve the deployment before publishing can proceed.
41
42
42
43
The workflow derives an immutable version from the selected commit and full ref without changing Git history, for example `0.4.0-beta-a1b2c3d-24767cc1-20260827`, and creates the matching immutable Git tag. A beta from `main` publishes to npm's shared `beta` dist-tag. A beta from another branch publishes to a branch-scoped tag such as `beta-feat-managed-agent-api-commands-24767cc1`. The stable full-ref hash appears in both the version and branch tag, so different refs remain isolated even when they point to the same commit or normalize to the same readable slug; retrying the same ref and commit remains idempotent. The job summary prints the exact tag. It then installs that exact version from the public npm registry on Linux, Windows, and macOS under Node.js 22 and 24. The GitHub prerelease is created only after all six consumer jobs pass.
43
44
44
-
For another beta, run **Publish npm** from the updated branch. Every new commit gets a new immutable snapshot version; changesets are not consumed.
45
+
For another beta, run **Publish npm** from the updated branch. Every new commit gets a new immutable snapshot version; changesets are not consumed. If `npm-release` restricts deployment branches, allow the intended beta branch.
45
46
46
47
Install a branch beta with its printed dist-tag, for example `npm install @openagentpack/sdk@beta-feat-managed-agent-api-commands-24767cc1`. Pinning the exact generated version is the most reproducible option.
47
48
48
49
## Publish a stable release
49
50
50
51
1. Review and merge the automated `chore: release packages` PR.
51
52
2.**Publish npm** starts automatically when the release commit reaches `main`.
52
-
3. Review the exact package version in the run summary.
53
+
3. Review the exact package version in the run summary. If Required reviewers are enabled for `npm-release`, approve the deployment before publishing can proceed.
53
54
54
55
If publishing fails partway through, manually rerun it from **Actions → Publish npm → Run workflow** with branch `main`, channel `stable`, and confirmation `PUBLISH`. Exact package versions already published are skipped.
55
56
@@ -104,7 +105,7 @@ After installing the CLI, run `agents --help`. A beta user returns to stable wit
104
105
105
106
## Recovery
106
107
107
-
- If npm authentication fails, compare the Trusted Publisher repository and workflow filename character-for-character with the table above.
108
+
- If npm authentication fails, compare the Trusted Publisher repository, workflow filename, and Environment character-for-character with the table above.
108
109
- If a package published before another failed, rerun the same workflow from the same commit. Already-published exact versions are skipped.
109
110
- If all packages published but a post-release consumer job fails, keep the immutable tag, do not unpublish or move the tag, and do not create the GitHub Release. Fix the compatibility issue and publish a new patch version; npm package versions cannot be overwritten.
110
111
- Registry visibility is retried for five minutes before it is classified as a release failure. Retry the same workflow only when npm propagation, rather than package compatibility, was the cause.
0 commit comments