Skip to content

ci(release): generalize post-release jobs to every package in the workspace - #18

Merged
Mearman merged 1 commit into
mainfrom
feat/generic-release-matrix
Sep 3, 2026
Merged

ci(release): generalize post-release jobs to every package in the workspace#18
Mearman merged 1 commit into
mainfrom
feat/generic-release-matrix

Conversation

@Mearman

@Mearman Mearman commented Sep 3, 2026

Copy link
Copy Markdown
Member

What broke

trilean-sql's first release (`#14`) confirmed a gap the release-collection step's own hardcoded design predicted it would have: it published to npm correctly (semantic-release-workspace's per-package publish never depended on this step), but its GitHub Packages mirror, both SBOM/build-provenance attestations, and the `notify-hive` dispatch to novus-power/hive all silently skipped.

Root cause, from the actual run log: `Collect what this run released` diffs tags and does `grep '^trilean@'` -- a literal, hardcoded prefix left over from when the workspace held exactly one package. A new `trilean-sql@1.0.0` tag simply doesn't match it, so the step reported `released=false`, and every downstream job (all gated on that single boolean) skipped.

The fix

`Collect what this run released` now builds a JSON array of every package this run actually released -- `[{name, version, tag}, ...]` -- from every new tag rather than one hardcoded name, following the exact pattern `documents.js` already uses for its own many packages. The four downstream jobs adapt accordingly:

  • `notify-hive` loops the array with one dispatch per released package (a single job, not a runner per leg -- it's a lightweight API call), rather than a hardcoded `package=trilean`.
  • `publish-github-packages`, `attest-npm`, and `attest-github-packages` each gain a `strategy: matrix` fanning out one leg per released package, working against `packages/${{ matrix.name }}` and `matrix.tag` instead of a single hardcoded package and tag.

Verified locally: the collection script's own logic (including the "no matching package, skip with a warning" branch for an unrelated tag) and the `notify-hive` dispatch loop (including the empty-matrix case) against simulated matrices before pushing. The next real trilean or trilean-sql release will be the actual end-to-end proof.

…jobs to every package

Collect what this run released grepped for a tag matching ^trilean@ specifically,
a leftover from when the workspace held one package. With trilean-sql added, its
own new-package release tag never matched that pattern, so notify-hive, the
GitHub Packages mirror, and both attestation jobs silently skipped for it --
confirmed directly: trilean-sql@1.0.0 published to npm correctly, since the
orchestrator's own per-package publish never depended on this step, but none of
the four downstream jobs ran.

Collect what this run released now builds a JSON array of every package this run
released, from every new tag rather than one hardcoded name, matching how
documents.js already solves the identical problem for its own many packages.
notify-hive loops the array with one dispatch per package rather than a single
hardcoded payload; the three per-package jobs (GitHub Packages mirror, and both
attestation legs) each gain a `strategy: matrix` fanning out one leg per released
package, working against packages/${{ matrix.name }} and matrix.tag instead of a
single hardcoded package and tag.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 3, 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-09-03T13:53:28.029171Z 81cfbe3 PR opened
ℹ️ 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 32fc584 into main Sep 3, 2026
13 checks passed
@Mearman
Mearman deleted the feat/generic-release-matrix branch September 3, 2026 13:47
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