Upgrade Node.js to v24 and update dev dependencies - #310
Merged
Conversation
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
marked this pull request as ready for review
July 29, 2026 00:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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, addeddevEnginesconfiguration to support both v24 and v22Development Dependencies:
@seamapi/smithfrom ^1.0.0 to ^1.1.0avafrom ^5.0.1 to ^8.0.1c8from ^8.0.0 to ^12.0.0change-casefrom ^4.1.2 to ^5.4.4@types/nodedependency (likely now included in ava or smith)Test Configuration: Modernized
ava.config.jsto use latest AVA syntax:ignoredByWatcherwithwatchMode.ignoreChangesnodeArguments: ['--loader=tsx']with--import=tsx(Node.js native ESM loader)environmentVariablesandextensionsconfiguration (now handled by AVA defaults)GitHub Actions: Updated all action versions to latest stable releases:
actions/checkout@v3→v7actions/setup-node@v3→v7(removed cache configuration)actions/upload-artifact@v4→v7actions/download-artifact@v4→v8crazy-max/ghaction-import-gpg@v5→v7stefanzweifel/git-auto-commit-action@v4→v7cycjimmy/semantic-release-action@v4→v6JS-DevTools/npm-publish@v2→v4softprops/action-gh-release@v1→v3Development Environment: Updated default Node.js version from v18 to v24 in:
.devcontainer/Dockerfile.devcontainer/devcontainer.json.github/workflows/_build.ymldefault inputCI/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:
.gitattributesto mark generated C# code as linguist-generatedtsconfig.jsonschema URL to include.jsonextension.nvmrcfile (version now managed viaenginesanddevEngines)Notable Implementation Details
The migration to
--import=tsxinstead of--loader=tsxaligns with Node.js's native ESM loader support, providing better compatibility and performance. ThedevEnginesconfiguration 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