This document defines the release process for Nexis.
- Current line:
0.x(pre-1.0). - Use
v0.1.0for first public release. - Patch (
0.1.x): bug fixes only. - Minor (
0.x.0): may include breaking changes, must include migration notes.
- Confirm branch is up to date and clean.
- Ensure versions are aligned:
server/Cargo.tomlworkspace versionsdks/ts/package.jsondashboard/control-api/package.jsonplugins/rust/nexis_wasm_plugin/Cargo.toml
- Update
CHANGELOG.md. - Run quality gates:
cargo test --manifest-path server/Cargo.tomlbun testinsdks/tsbunx tsc -p tsconfig.json --noEmitinsdks/tsbun testindashboard/control-apibunx tsc --noEmitindashboard/control-apibun run buildindocs-sitecargo publish --dry-run --manifest-path plugins/rust/nexis_wasm_plugin/Cargo.toml
- Validate stack (locally or CI compose-smoke):
docker compose -f infra/docker-compose.yml up -d --build --waitbun infra/smoke.ts
- Commit release metadata changes.
- Tag release:
git tag v0.1.0git push origin v0.1.0
- Create GitHub release from tag with changelog highlights.
Workflow: .github/workflows/release.yml
On push to main it:
- validates server + SDK + control API tests/typechecks
- builds and pushes Docker images with:
:next:sha-<commit>
- publishes npm prerelease under
nextdist-tag:- version format:
<base>-next.<run_number>.<run_attempt>
- version format:
On tag push (v*) it:
- validates server + SDK + control API tests/typechecks
- builds and pushes Docker images to GHCR:
ghcr.io/<owner>/rust-server:<tag>ghcr.io/<owner>/control-api:<tag>ghcr.io/<owner>/dashboard-ui:<tag>ghcr.io/<owner>/web-demo:<tag>- plus
:latest
- publishes
@triformine/nexis-sdkto npm - publishes
nexis_wasm_pluginto crates.io
release.yml publishes this crate automatically on tag pushes (v*) using
crates.io trusted publishing (OIDC).
One-time setup on crates.io:
- Open crate settings for
nexis_wasm_plugin. - Add trusted publisher:
- Provider:
GitHub Actions - Organization/user:
TriForMine - Repository:
nexis - Workflow filename:
release.yml
- Provider:
- Save configuration.
Manual fallback:
- Run dry-run:
cargo publish --dry-run --manifest-path plugins/rust/nexis_wasm_plugin/Cargo.toml
- Publish:
cargo publish --manifest-path plugins/rust/nexis_wasm_plugin/Cargo.toml
- Verify:
release.yml uses npm trusted publishing (OIDC), so no NPM_TOKEN is required.
npm package trusted publisher configuration must match:
- Provider:
GitHub Actions - Organization/user:
TriForMine - Repository:
nexis - Workflow filename:
release.yml
Workflow requirements already set:
permissions.id-token: write- Node
24for npm CLI compatibility
- Branch from latest release tag.
- Apply minimal fix + tests.
- Bump patch version (
0.1.x). - Update changelog.
- Tag and release.