2.7 KiB
OpenProse Release Process
OpenProse uses one release train. The SKILL/plugin metadata, CLI npm package,
package lock, and tarball installer all share the same X.Y.Z version and ship
through the protected OpenProse Release GitHub Actions workflow.
Prepare
-
Choose the next SemVer version.
-
Move relevant
CHANGELOG.mdnotes into## [X.Y.Z] - YYYY-MM-DD. -
Bump every declared version surface:
./scripts/bump-version.sh X.Y.Z ./scripts/bump-version.sh --check ./scripts/sync-copy.sh --check ./scripts/release-preflight.sh --version X.Y.Z --npm-tag latest -
Open and merge a release-prep PR after CI passes.
Dry Run
Run OpenProse Release from main with:
version:X.Y.Znpm_tag:latestfor stable releases,nextfor prereleasesdry_run:true
The dry run performs the same preflight as publish, including tag, GitHub Release, and npm version uniqueness checks. It then verifies the CLI package, SKILL/plugin metadata, changelog notes, and release tarballs without publishing.
Publish
Run the same OpenProse Release workflow again with dry_run: false.
The final job uses the protected release environment. After approval, it:
- Creates a draft GitHub Release for
vX.Y.Z. - Publishes
@openprose/prose-cli@X.Y.Zto npm with provenance. - Publishes the GitHub Release with CLI tarballs, checksums, and changelog notes.
If npm publishing fails after the draft release is created, the workflow attempts to delete the draft release and tag.
Verify
After publishing:
npm view @openprose/prose-cli@latest version
gh release view vX.Y.Z --repo openprose/prose
Check both install paths in temporary directories:
tmpdir="$(mktemp -d)"
npm install --global --prefix "$tmpdir/npm-global" @openprose/prose-cli@X.Y.Z
"$tmpdir/npm-global/bin/prose" --version
tmpdir="$(mktemp -d)"
PROSE_INSTALL_DIR="$tmpdir/install" \
PROSE_BIN_DIR="$tmpdir/bin" \
sh -c "$(curl -fsSL https://raw.githubusercontent.com/openprose/prose/main/tools/cli/install.sh)"
"$tmpdir/bin/prose" --version
For broader release validation, run the maintainer playtest in tools/cli/POST_RELEASE_PLAYTEST.md.
Marketplace Submission
Marketplace publication remains manual after the GitHub Release exists.
Claude Code marketplace:
- Repo URL:
https://github.com/openprose/prose - Plugin path: leave blank;
.claude-plugin/is auto-detected - Marketplace name:
openprose - Plugin name:
open-prose - Version: the
vX.Y.Ztag SHA
Codex Plugin Directory submission is staged through .codex-plugin/,
.agents/plugins/marketplace.json, and assets/plugin/ once the public
submission flow opens.