Skip to content

ci: fix pnpm setup failure, pin toolchain with mise - #1

Merged
karngyan merged 2 commits into
mainfrom
claude/ci-fixes-improvements-169bk6
Jun 26, 2026
Merged

ci: fix pnpm setup failure, pin toolchain with mise#1
karngyan merged 2 commits into
mainfrom
claude/ci-fixes-improvements-169bk6

Conversation

@karngyan

Copy link
Copy Markdown
Collaborator

Why

CI has been failing on every run at the Setup pnpm step:

Error: No pnpm version is specified.
Please specify it by one of the following ways:
  - in the GitHub Action config with the key "version"
  - in the package.json with the key "packageManager"

pnpm/action-setup@v4 needs the pnpm version from either its version input or a packageManager field in package.json — neither existed, so the job died before installing anything. release.yml had the identical bug.

What changed

Fix the failure + pin the toolchain

  • Add mise.toml pinning exact LTS versions — node = 24.18.0 (latest Krypton LTS) and pnpm = 10.34.4 (latest 10.x, matching lockfileVersion: 9.0). One source of truth for local dev and CI.
  • Add packageManager: "pnpm@10.34.4" and engines.node: ">=24" to package.json.
  • Drive CI tool versions from mise.toml via jdx/mise-action in both ci.yml and release.yml (replacing the unpinned pnpm/action-setup + setup-node). Release keeps npm auth via an explicit ~/.npmrc.

CI improvements (the "add anything that feels right" part)

  • Cache the pnpm store, keyed on pnpm-lock.yaml.
  • concurrency with cancel-in-progress to drop superseded runs and save minutes.
  • Prettier format:check step + new format:check script, with a .prettierignore so generated files (lockfile, dist, changelogs) are never reformatted.

Formatting normalization (separate commit)

  • Ran Prettier across the repo so the new check is green. Purely cosmetic (semi: false), no behavioral changes.

Verification

pnpm install --frozen-lockfile (lockfile unchanged), typecheck, lint, test (43 passing), build, and format:check all pass locally. The packageManager fix directly resolves the exact error from the failing CI logs.

Note: this only touches CI/tooling and formatting — no library code behavior changes, so it's safe ahead of the first public release.

🤖 Generated with Claude Code

https://claude.ai/code/session_018JWDajbftveEqqZWcrFH5n


Generated by Claude Code

claude added 2 commits June 26, 2026 16:00
CI was failing at the "Setup pnpm" step on every run:

    Error: No pnpm version is specified.

pnpm/action-setup@v4 requires the pnpm version to come from either its
`version` input or package.json's `packageManager` field, and neither was
present.

Fixes and improvements:
- Add mise.toml pinning exact LTS versions (node 24.18.0, pnpm 10.34.4)
  as the single source of truth for local dev and CI.
- Add `packageManager` and `engines.node` to package.json.
- Drive CI tool versions from mise.toml via jdx/mise-action; apply the
  same setup to the release workflow, which had the identical bug.
- Cache the pnpm store and cancel superseded runs (concurrency).
- Add a Prettier format check (`format:check` script) to CI, with a
  .prettierignore so generated files (lockfile, dist) are skipped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018JWDajbftveEqqZWcrFH5n
Apply the repo's Prettier config (semi: false) across the codebase so the
new CI format check passes. Purely cosmetic — no behavioral changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018JWDajbftveEqqZWcrFH5n
@karngyan
karngyan merged commit 79be0ed into main Jun 26, 2026
1 check 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.

2 participants