Skip to content

Release each package independently - #13

Merged
Mearman merged 5 commits into
mainfrom
ci/per-package-releases
Oct 10, 2026
Merged

Mearman merged 5 commits into
mainfrom
ci/per-package-releases

Conversation

@Mearman

@Mearman Mearman commented Oct 10, 2026

Copy link
Copy Markdown
Member

Replaces the whole-repo semantic-release setup with @exadev/semantic-release-workspace, so process-graph and each @exadev/process-graph-* package version, tag and publish on their own, in dependency order. This is the upgrade path CONTRIBUTING.md already named.

The release config is now release-workspace.config.ts, still driven by commit-types.ts, with a unit test tying the two together. The release job runs pnpm release with OIDC trusted publishing hygiene and keeps GITHUB_TOKEN as the push credential. npm is pinned to an exact release instead of @latest, as in the other ExaDev repos, so zizmor's ad-hoc install audit is ignored inline for that one step.

A dry run from this branch lists dag, schema, domain, projection, then process-graph, each as 1.0.0 (no earlier name@version tags exist, so every package starts at 1.0.0).

Not done here: the trusted publishers for the five package names are registered by the owner, and merging before they are makes the first CI publish fail the OIDC exchange.

The orchestrator is an ExaDev package, so it joins minimumReleaseAgeExclude alongside the other
ExaDev packages.
…rchestrator

release-workspace.config.ts replaces release.config.ts and keeps commit-types.ts as the single
source for release rules and note sections, now with a test that holds the two in agreement.
Release notes sections were previously configured under a `title` key the conventionalcommits
preset does not read; they now use `section`, and a type that releases is never hidden.

The release script runs the orchestrator, which commits every bump of a run once and pushes it
with the tags before anything publishes.
…ator

The release job runs `pnpm release`, which releases packages in dependency order with name@version
tags and rewrites sibling pins. It keeps the GITHUB_TOKEN push credential, drops the ambient
npm tokens in favour of OIDC trusted publishing, checks out main by name so pushes are not made
from a detached HEAD, and upgrades npm to a release that supports trusted publishing.
README.md and CONTRIBUTING.md replace the whole-repository release description with the
per-package model: dependency-ordered releases, name@version tags, sibling range rewrites, OIDC
publishing, the one-time npm reservation and trusted publisher registration, and what a new
package manifest needs.
The root package is private and never released, so a version in its manifest only goes stale
once releases are decided per package.
@Mearman
Mearman force-pushed the ci/per-package-releases branch from d443d21 to bfb4067 Compare October 10, 2026 10:22
@Mearman
Mearman marked this pull request as ready for review October 10, 2026 10:25
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review ✅ Completed 2026-10-10T10:32:23.894126Z bfb4067 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Mearman
Mearman merged commit face0ab into main Oct 10, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant