Skip to content

chore(deps): update dependencies and bump PR validation to Node 22 - #191

Merged
Yohan Lasorsa (sinedied) merged 2 commits into
mainfrom
chore/update-deps
Sep 2, 2026
Merged

chore(deps): update dependencies and bump PR validation to Node 22#191
Yohan Lasorsa (sinedied) merged 2 commits into
mainfrom
chore/update-deps

Conversation

@sinedied

Copy link
Copy Markdown
Collaborator

Summary

Refreshes package-lock.json within the existing semver ranges, and bumps the PR validation workflow from Node 18 to Node 22.

Note

This does not fix the failing Release CLI workflow. That failure is unrelated to dependencies — see below.

The npm update husky failure

npm update fails with:

npm error path node_modules/@rimac-technology/semantic-release-monorepo
npm error command sh -c husky
npm error sh: 1: husky: not found

This is an upstream packaging bug affecting every published version (1.1.6 → 1.2.10), not a regression from updating:

Source postinstall
Registry metadata (npm view … scripts) husky
Tarball package.json _postinstall (pinst-disabled)

The package uses pinst to strip its husky hook at pack time, but npm records packument metadata before prepack runs. So the registry advertises a postinstall hook the tarball doesn't actually contain, and husky isn't a runtime dependency of the package.

  • Fresh npm i / npm update resolve from registry metadata → run husky → fail
  • npm ci resolves from the lockfile and reads the on-disk _postinstall → no-op → CI is unaffected

Workaround used here: npm update --ignore-scripts.

Node 18 → 22 in pull-request.yml

PR validation was two LTS majors behind the other workflows (deploy.yml is on 22, release-cli.yml on 24). Since #190, the CLI depends on @github/copilot-sdk, which declares engines.node >= 20 — so PR builds were validating against an engine the dependency no longer supports. Set to 22 to match deploy.yml.

Verification

Full PR CI sequence run locally against the new lockfile on Node 22.23.2 / npm 10.9.8 (matching the updated workflow):

Step Result
npm ci exit 0
npm run create:db 88 workshops
npm run build:website OK
npm run build:cli OK
npm test --if-present --workspaces OK (2 pre-existing TODO warnings)

Also verified on Node 24 / npm 11.17, and npx semantic-release-monorepo --dry-run reaches the ENONPMTOKEN stage (expected locally — CI publishes via OIDC trusted publishing).

Separately: the Release CLI workflow

Run #23 installed 1777 packages fine and failed at the git push step:

403: The 'Microsoft Open Source' enterprise forbids access via a personal access
tokens (classic) if the token's lifetime is greater than 8 days.
→ EGITNOPERMISSION Cannot push to the Git repository.

The GH_TOKEN secret is a classic PAT expiring 2026-10-29 (~2 months), which enterprise policy rejects. Fixing it requires rotating the secret — options, best first:

  1. A GitHub App token via actions/create-github-app-token (durable, no expiry churn, can be granted branch-protection bypass)
  2. A fine-grained PAT (the 8-day rule targets classic PATs)
  3. A classic PAT with a ≤ 8 day lifetime (works, but needs constant re-issuing)

Once the token is sorted, the pending fix(cli): commit from #190 will release as 1.6.1.

Refresh package-lock.json within the existing semver ranges.

The update had to be run with --ignore-scripts to work around an
upstream packaging bug in @rimac-technology/semantic-release-monorepo
(all versions, 1.1.6 through 1.2.10): the package uses pinst to strip
its husky postinstall hook at pack time, but npm records the packument
metadata before prepack runs. The registry therefore advertises
"postinstall": "husky" while the tarball ships "_postinstall", so a
fresh install runs husky (not a dependency of the package) and fails
with ENOENT. Lockfile-based installs read the on-disk "_postinstall"
and correctly no-op, which is why npm ci is unaffected.

Also bump pull-request.yml from Node 18 to Node 22, matching deploy.yml.
PR validation was two LTS majors behind the deploy and release
workflows, and @github/copilot-sdk (a CLI dependency since #190)
declares engines.node >= 20, so PR builds were validating against an
engine the package no longer supports.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sinedied
Yohan Lasorsa (sinedied) merged commit 6982eb1 into main Sep 2, 2026
5 checks passed
@sinedied
Yohan Lasorsa (sinedied) deleted the chore/update-deps branch September 2, 2026 07:56
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.

2 participants