Skip to content

chore: add devEngines.runtime#11553

Merged
zkochan merged 8 commits into
mainfrom
dev-engines-node
May 12, 2026
Merged

chore: add devEngines.runtime#11553
zkochan merged 8 commits into
mainfrom
dev-engines-node

Conversation

@zkochan

@zkochan zkochan commented May 8, 2026

Copy link
Copy Markdown
Member

Adds devEngines.runtime to pin the Node.js version (24.6.0, onFail: download) the project uses for development, so contributors don't have to manage Node versions manually.

CI changes that come with it:

  • Bumps pnpm to 11.1.1 and pnpm/action-setup to a bootstrap that ships @zkochan/cmd-shim 9.0.3. The cmd-shim update is required because the previous shim's exec cmd /C got mangled by Git Bash's MSYS path conversion (/C → Windows path), which broke any pn … invocation from shell: bash on Windows.
  • Switches the install step to pn install --no-runtime so the per-test-matrix Node version chosen by pn runtime -g set node … isn't overridden by the project-pinned 24.6.0.
  • Adds a Verify Node version step that asserts pn node -v matches the matrix's Node.

Written by an agent (Claude Code, claude-opus-4-7).

Copilot AI review requested due to automatic review settings May 8, 2026 20:10
@coderabbitai

coderabbitai Bot commented May 8, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds Node runtime declaration and bumps pnpm in package.json; compile-and-lint switches to pnpm/action-setup (removes explicit Node setup); test workflow uses pn install --no-runtime, adds Windows diagnostics and verifies pn node version; other workflows update pnpm/action-setup pins.

Changes

pnpm runtime & CI setup updates

Layer / File(s) Summary
Dev Runtime Declaration
package.json
Bumps packageManager to pnpm@11.1.0 and adds devEngines.runtime requiring Node 24.6.0 with onFail: "download".
CI compile-and-lint
.github/workflows/ci.yml
Replaces explicit pn runtime -g set node 24.6.0 with pnpm/action-setup (pinned) using standalone: true.
Test workflow
.github/workflows/test.yml
Updates pnpm/action-setup pin, changes pn install to pn install --no-runtime, adds a Windows-only diagnostic step, and adds a Verify Node version step checking pn node -v.
Other workflow pins
.github/workflows/audit.yml, .github/workflows/benchmark.yml, .github/workflows/release.yml, .github/workflows/update-lockfile.yml
Each workflow updates the pnpm/action-setup pinned uses: commit SHA without changing other logic.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • pnpm/pnpm#11472: Also modifies CI/workflow Node runtime configuration and pnpm runtime setup.

Poem

🐰 I nibbled code beneath the moon,

pnpm bumped, the pins in tune.
Workflows hop, runtime declared,
Diagnostics peek, versions paired.
🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: add devEngines.runtime' directly describes the main change: adding a devEngines.runtime entry to package.json with Node.js version 24.6.0, which is the primary purpose of this PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev-engines-node

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a pinned Node.js runtime to the repo via devEngines.runtime, and updates CI workflows/lockfile to reflect the new runtime-management approach.

Changes:

  • Add devEngines.runtime (Node 22.13.0) to the root package.json.
  • Update pnpm-lock.yaml to include node@runtime:22.13.0 as a locked runtime dependency with platform variants.
  • Adjust GitHub Actions workflows: remove explicit Node runtime setup in ci.yml, and attempt to override runtime behavior during installs in test.yml.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.

File Description
pnpm-lock.yaml Adds locked node@runtime:22.13.0 resolution (variations/variants) and importer devDependency entry.
package.json Introduces devEngines.runtime pin for Node.js runtime management.
.github/workflows/test.yml Changes install invocation to pass a runtime-on-fail override during CI tests.
.github/workflows/ci.yml Removes the explicit “Setup Node” runtime step, relying on the new runtime pin instead.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/test.yml Outdated
Comment thread package.json Outdated
@zkochan

zkochan commented May 8, 2026

Copy link
Copy Markdown
Member Author

This will be possible to finish when #11557 will be released

@zkochan zkochan force-pushed the dev-engines-node branch from 3882ec8 to 0f3f399 Compare May 11, 2026 19:23
Copilot AI review requested due to automatic review settings May 11, 2026 19:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread .github/workflows/test.yml

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/test.yml:
- Around line 44-45: Replace the unsafe verification command `pn node -v` with a
reliable runtime check by using `pn exec node -v` or plain `node -v` wherever
the workflow uses `pn node -v` (notably the verification step around the `pn
install --no-runtime`/diagnostic block and the section at lines ~82–90); update
the step that runs the version check to call `pn exec node -v` (or `node -v`) so
the runner's PATH is used and the failing-call diagnostic is avoided.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: c3473c76-4e7d-4d68-a11a-967debd50787

📥 Commits

Reviewing files that changed from the base of the PR and between 11df003 and 01078bb.

📒 Files selected for processing (1)
  • .github/workflows/test.yml
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Analyze (javascript)
  • GitHub Check: Compile & Lint
🔇 Additional comments (1)
.github/workflows/test.yml (1)

46-81: Useful Windows-only diagnostics.

Keeping this step Windows-only and continue-on-error preserves the existing failure signal while still capturing the extra path-resolution data.

Comment thread .github/workflows/test.yml
Copilot AI review requested due to automatic review settings May 11, 2026 22:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 8 changed files in this pull request and generated no new comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Copilot AI review requested due to automatic review settings May 11, 2026 22:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread .github/workflows/test.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
@zkochan zkochan force-pushed the dev-engines-node branch from 2ef744e to 0d8468d Compare May 12, 2026 11:09
Bumps pnpm/action-setup to a bootstrap that ships cmd-shim 9.0.3, so
the `pn` shim on Windows no longer breaks under Git Bash MSYS path
conversion of `cmd /C`. Also swaps the smoke job to windows-latest /
Node.js 22.13.0 so Windows runs ahead of the Ubuntu matrix on branches.
Copilot AI review requested due to automatic review settings May 12, 2026 12:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 8 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread .github/workflows/test.yml
Comment on lines +46 to +53
- name: Verify Node version
shell: bash
run: |
actual=$(pn node -v)
expected="v${{ inputs.node }}"
if [ "$actual" != "$expected" ]; then
echo "Expected Node version $expected but got $actual"
exit 1
Comment thread package.json
Comment on lines +60 to +66
"packageManager": "pnpm@11.1.1",
"devEngines": {
"packageManager": {
"name": "pnpm",
"version": "11.0.7",
"version": "11.1.1",
"onFail": "download"
},
Reverts the Windows smoke swap now that the action-setup bump fixes the
`pn` shim on Windows; ubuntu-latest / Node.js 24 is the smoke job again.
Copilot AI review requested due to automatic review settings May 12, 2026 12:41
@zkochan zkochan merged commit 7e3145f into main May 12, 2026
10 checks passed
@zkochan zkochan deleted the dev-engines-node branch May 12, 2026 12:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (2)

.github/workflows/release.yml:30

  • This workflow sets Node to 26.0.0 via pn runtime -g set node 26.0.0, but with devEngines.runtime now set to download Node 24.6.0, pn install will install a project-local node binary (from the node@runtime:* dependency) that typically takes precedence when running scripts/binaries. That can cause the rest of the release steps to run under 24.6.0 instead of the intended 26.0.0. Consider disabling runtime dependency installation for this job (e.g. using the same mechanism as the test workflow) or otherwise ensuring the job actually runs with the intended Node version.
        uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093
        with:
          standalone: true
      - name: Setup Node
        run: pn runtime -g set node 26.0.0

.github/workflows/benchmark.yml:56

  • This workflow sets Node to 26.0.0, but devEngines.runtime now pins Node 24.6.0 and will cause pnpm install to bring in a project-local node binary via the node@runtime:* dependency. That can make subsequent steps (compile/bench scripts) run under 24.6.0 instead of 26.0.0. If the intent is to benchmark under the matrix-selected Node, disable runtime dependency installation for this job (same approach as in the reusable test workflow) or otherwise ensure the selected Node stays the one used for scripts.
    - name: Install pnpm
      uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093
      with:
        standalone: true

    - name: Setup Node
      run: pnpm runtime -g set node 26.0.0
      timeout-minutes: 2

Comment thread .github/workflows/ci.yml
Comment on lines 21 to 27
- name: Install pnpm
uses: pnpm/action-setup@e578e19d19d31b011b841ba2aca34731a5f706a5
uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093
with:
standalone: true
- name: Setup Node
run: pn runtime -g set node 24.6.0
timeout-minutes: 2
- name: pnpm install
run: pn install
timeout-minutes: 3
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