Skip to content

Upgrade Node.js to v24 and update dev dependencies - #310

Merged
razor-x merged 2 commits into
mainfrom
claude/csharp-sdk-tsmodule-patterns-21wtbd
Jul 29, 2026
Merged

Upgrade Node.js to v24 and update dev dependencies#310
razor-x merged 2 commits into
mainfrom
claude/csharp-sdk-tsmodule-patterns-21wtbd

Conversation

@razor-x

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

Copy link
Copy Markdown
Member

Summary

This PR upgrades the project to support Node.js v24 as the primary development runtime while maintaining backward compatibility with v22. It also updates development dependencies and tooling configurations to their latest versions.

Key Changes

  • Node.js Version Support: Updated minimum Node.js version to v24.11.0 in engines, added devEngines configuration to support both v24 and v22

  • Development Dependencies:

    • Updated @seamapi/smith from ^1.0.0 to ^1.1.0
    • Updated ava from ^5.0.1 to ^8.0.1
    • Updated c8 from ^8.0.0 to ^12.0.0
    • Updated change-case from ^4.1.2 to ^5.4.4
    • Removed @types/node dependency (likely now included in ava or smith)
  • Test Configuration: Modernized ava.config.js to use latest AVA syntax:

    • Replaced ignoredByWatcher with watchMode.ignoreChanges
    • Replaced nodeArguments: ['--loader=tsx'] with --import=tsx (Node.js native ESM loader)
    • Removed environmentVariables and extensions configuration (now handled by AVA defaults)
  • GitHub Actions: Updated all action versions to latest stable releases:

    • actions/checkout@v3v7
    • actions/setup-node@v3v7 (removed cache configuration)
    • actions/upload-artifact@v4v7
    • actions/download-artifact@v4v8
    • crazy-max/ghaction-import-gpg@v5v7
    • stefanzweifel/git-auto-commit-action@v4v7
    • cycjimmy/semantic-release-action@v4v6
    • JS-DevTools/npm-publish@v2v4
    • softprops/action-gh-release@v1v3
  • Development Environment: Updated default Node.js version from v18 to v24 in:

    • .devcontainer/Dockerfile
    • .devcontainer/devcontainer.json
    • .github/workflows/_build.yml default input
  • CI/CD Matrix: Added Node.js v24 to test matrix in check, build, and publish workflows

  • Package Version: Bumped C# package version from 0.98.0 to 0.99.0

  • Configuration Files:

    • Added .gitattributes to mark generated C# code as linguist-generated
    • Fixed tsconfig.json schema URL to include .json extension
    • Removed .nvmrc file (version now managed via engines and devEngines)

Notable Implementation Details

The migration to --import=tsx instead of --loader=tsx aligns with Node.js's native ESM loader support, providing better compatibility and performance. The devEngines configuration allows specifying development-time version requirements separately from production constraints, enabling flexibility for developers while maintaining strict production requirements.

https://claude.ai/code/session_01NznZo8YDNXAXdtZf4E5hbN

claude and others added 2 commits July 29, 2026 00:46
Adopt the toolchain patterns from @seamapi/makenew-tsmodule v3.0.4, mirroring the
update already applied to seamapi/python.

- Add devEngines and drop .nvmrc. Node v24 is now the default in CI and the
  devcontainer, and is added to the test, lint, and typecheck matrices alongside
  the still-supported v22.
- Update the workflow action versions, drop the npm cache from setup-node, and
  bump standard-changelog to v5 for the release notes.
- Update the npm dependencies. @seamapi/smith v1.1.0 brings TypeScript v6, which
  it declares as a peer dependency along with tsx, eslint, and jiti, so none of
  them are declared here. @types/node is also dropped since smith depends on it
  directly. change-case moves to v5 and ava to v8, alongside c8 v12.
- Update ava.config.js for ava v8: watchMode.ignoreChanges replaces
  ignoredByWatcher, extensions becomes a list, and tsx loads through --import
  instead of the removed --loader flag.
- Fix the tsconfig.json schema URL.

Add .gitattributes marking the generated route classes, resource models, and
csproj as linguist-generated, with the two static Model helpers excluded. This
collapses the generated files in pull request diffs and keeps them out of the
repository language statistics.

The .NET toolchain is unchanged: the dotnet version matrix, CSharpier, and the
csproj generation are untouched. @seamapi/blueprint and @seamapi/types are also
held back, since blueprint v1.1.0 requires unmanaged endpoint responses to use
$ref and the pinned types v1.975.0 does not yet satisfy that. 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_01NznZo8YDNXAXdtZf4E5hbN
@razor-x
razor-x marked this pull request as ready for review July 29, 2026 00:56
@razor-x
razor-x merged commit 879ec5a into main Jul 29, 2026
14 checks passed
@razor-x
razor-x deleted the claude/csharp-sdk-tsmodule-patterns-21wtbd branch July 29, 2026 00: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.

3 participants