fix(semrel): direct sr25 binary (no npx prune), per-consumer monorepo install #36

Merged
agent-builder merged 2 commits from fix/semrel-composite-harden into main 2026-07-27 10:09:39 +00:00
Member

Hardens semantic-release toolchain resolution (erfbeeld runs 116/1069 died MODULE_NOT_FOUND). Runs the config-installed sr25 binary directly instead of npx (which prunes the --no-save config); stops preferring the sr24 prebake for shared-config consumers (version skew); adds a monorepo input that installs semantic-release-monorepo only for monorepo consumers (the config un-bundles it for security). Reaches only erfbeeld. See plan phases 1-2.

Hardens semantic-release toolchain resolution (erfbeeld runs 116/1069 died MODULE_NOT_FOUND). Runs the config-installed sr25 binary directly instead of npx (which prunes the --no-save config); stops preferring the sr24 prebake for shared-config consumers (version skew); adds a monorepo input that installs semantic-release-monorepo only for monorepo consumers (the config un-bundles it for security). Reaches only erfbeeld. See plan phases 1-2.
Hardens the release toolchain resolution (erfbeeld runs 116/1069 died
'Cannot find module @webgrip/semantic-release-config'):

- Run './node_modules/.bin/semantic-release' (the sr25 binary the shared
  config just installed) DIRECTLY instead of 'npx semantic-release' — npx
  reifies the dep-less --no-save tree and prunes the config. Also stop
  preferring SEMREL_PREBAKED for shared-config consumers: it is sr24, a
  version skew against the sr25 config. Prebake/fallback now apply ONLY
  to inline-config consumers where the config didn't install; the
  fallback list is realigned to the sr25 line.
- New 'monorepo' input: installs semantic-release-monorepo alongside the
  config (same --no-save op, so no prune) ONLY for monorepo consumers —
  the shared config deliberately un-bundles it (2026-07-26 security
  cleanup), so it must not become a config dependency reaching everyone.
  Fixes the erfbeeld chart train's require.resolve throw.
- Thread 'monorepo' + 'config-version' through the reusable; bump the npm
  cache key to the sr25 line.

Reaches only erfbeeld (sole consumer of this composite). TODO: mirror to
infrastructure/.forgejo/actions/semantic-release-monorepo or repoint it
at this shared one.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Lets a validation job run semantic-release --dry-run on feature branches
(the PR) but NOT the release branches where the real release runs, so a
config/toolchain breakage fails on the PR instead of on main.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
pull-request
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
webgrip/workflows!36
No description provided.