Skip to content

Upgrade Node.js to v24 and update GitHub Actions - #536

Merged
razor-x merged 1 commit into
mainfrom
claude/ruby-sdk-tsmodule-patterns-6m70oy
Jul 29, 2026
Merged

Upgrade Node.js to v24 and update GitHub Actions#536
razor-x merged 1 commit into
mainfrom
claude/ruby-sdk-tsmodule-patterns-6m70oy

Conversation

@razor-x

@razor-x razor-x commented Jul 29, 2026

Copy link
Copy Markdown
Member

Summary

This PR upgrades the project to Node.js v24 and updates all GitHub Actions to their latest major versions, along with related configuration and dependency management improvements.

Key Changes

Node.js Version Upgrade

  • Updated default Node.js version from 20 to 24 across all configuration files
  • Updated .nvmrc to reflect Node.js 24
  • Updated .devcontainer configuration to use Node.js 24
  • Added explicit engine requirements in package.json:
    • Node.js: >=22.11.0
    • npm: >=10.9.4
  • Added devEngines metadata supporting Node.js ^24.11.0 || ^22.11.0 and npm ^11.0.0 || ^10.9.4

GitHub Actions Updates

  • Updated actions/checkout from v4 to v7
  • Updated actions/setup-node from v4 to v7
  • Updated actions/download-artifact from v4 to v8
  • Updated actions/upload-artifact from v4 to v7
  • Updated crazy-max/ghaction-import-gpg from v6 to v7
  • Updated stefanzweifel/git-auto-commit-action from v5 to v7
  • Updated softprops/action-gh-release from v2 to v3
  • Updated cycjimmy/semantic-release-action from v4 to v6
  • Updated tj-actions/glob from v21 to v22

Setup Node.js Action Improvements

  • Removed cache: npm from the first setup step (relying on explicit cache management)
  • Modified npm install to use npm ci --ignore-scripts to prevent automatic script execution
  • Added explicit steps for:
    • npm rebuild - to rebuild native modules
    • npm run postinstall --if-present - to run postinstall scripts
    • npm run prepare --if-present - to run prepare scripts

Code Quality Fixes

  • Fixed operator precedence in TypeScript by adding parentheses around ternary conditions in codegen/lib/ruby-client.ts and codegen/lib/layouts/client.ts
  • Fixed tsconfig.json schema URL to use proper .json extension

Notable Implementation Details

The npm installation workflow now has explicit control over script execution timing, allowing postinstall and prepare scripts to run after module rebuilding rather than during the initial install phase. This provides better control over the build process and can help prevent issues with native module compilation.

https://claude.ai/code/session_017zWFBopDRSbr5qbmNxnKvq

Adopt the toolchain patterns from @seamapi/makenew-tsmodule v3.0.4, mirroring
the update already applied to seamapi/python, seamapi/javascript-http, and
seamapi/docs.

- Add engines and devEngines and drop .nvmrc. Node v24 is now the default in CI
  and the devcontainer, with v22.11.0 still supported.
- Update the workflow action versions and install dependencies with
  npm ci --ignore-scripts followed by npm rebuild.
- Update the npm dependencies. Refreshing the lockfile also records the esbuild
  platform packages that npm tracks for tsx.
- Reformat two codegen files under Prettier v3.9.6, which adds clarifying
  parentheses around nullish coalescing inside a conditional. The change is
  cosmetic and leaves the generated output untouched.
- Fix the tsconfig.json schema URL.

TypeScript v6 is already in place through @seamapi/smith v1.1.0, which declares
typescript, tsx, eslint, and jiti as peer dependencies and depends on
@types/node directly, so none of them are declared here.

@seamapi/blueprint stays pinned to v1.1.0 in the lockfile. v1.2.0 cannot build a
blueprint from the pinned @seamapi/types v1.983.0, so bumping it needs a
matching types bump and belongs to the seam dependabot group, not to this
toolchain change.

The Ruby toolchain is unchanged: Bundler, Rake, standard, and the Ruby version
matrices in CI are untouched. Running the codegen produces byte for byte
identical output under the updated toolchain.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017zWFBopDRSbr5qbmNxnKvq
@razor-x
razor-x marked this pull request as ready for review July 29, 2026 00:36
@razor-x
razor-x merged commit e062505 into main Jul 29, 2026
17 checks passed
@razor-x
razor-x deleted the claude/ruby-sdk-tsmodule-patterns-6m70oy branch July 29, 2026 00:36
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