Skip to content

Commit a4e9d47

Browse files
committed
Modernize development tooling and mark generated code
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
1 parent e051e7d commit a4e9d47

17 files changed

Lines changed: 877 additions & 1823 deletions

.devcontainer/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ARG VARIANT="18"
1+
ARG VARIANT="24"
22

33
FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:${VARIANT}
44

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"build": {
44
"dockerfile": "Dockerfile",
55
"args": {
6-
"VARIANT": "18"
6+
"VARIANT": "24"
77
}
88
},
99
"extensions": [

.gitattributes

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Code generated from the blueprint by the codegen.
2+
3+
output/csharp/src/Seam/Api/** linguist-generated
4+
output/csharp/src/Seam/Model/** linguist-generated
5+
output/csharp/src/Seam/Seam.csproj linguist-generated
6+
7+
# Static, schema-independent sources kept alongside the generated code.
8+
9+
output/csharp/src/Seam/Model/AsbtractModelSchema.cs -linguist-generated
10+
output/csharp/src/Seam/Model/SafeStringEnumConverter.cs -linguist-generated

.github/actions/setup/action.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@ runs:
2323
using: composite
2424
steps:
2525
- name: Setup Node.js
26-
uses: actions/setup-node@v3
26+
uses: actions/setup-node@v7
2727
if: inputs.install_dependencies == 'true'
2828
with:
29-
cache: npm
3029
node-version: ${{ inputs.node_version }}
3130
registry-url: ${{ inputs.registry_url }}
3231
- name: Setup Node.js without cache
33-
uses: actions/setup-node@v3
32+
uses: actions/setup-node@v7
3433
if: inputs.install_dependencies == 'false'
3534
with:
3635
node-version: ${{ inputs.node_version }}

.github/workflows/_build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
description: The Node.js version.
99
type: string
1010
required: false
11-
default: '18'
11+
default: '24'
1212
secrets:
1313
node_auth_token:
1414
description: The Node.js auth token.
@@ -25,7 +25,7 @@ jobs:
2525
timeout-minutes: 30
2626
steps:
2727
- name: Checkout
28-
uses: actions/checkout@v3
28+
uses: actions/checkout@v7
2929
- name: Setup
3030
uses: ./.github/actions/setup
3131
with:
@@ -36,7 +36,7 @@ jobs:
3636
- name: Package
3737
run: npm pack
3838
- name: Upload artifact
39-
uses: actions/upload-artifact@v4
39+
uses: actions/upload-artifact@v7
4040
with:
4141
name: build-${{ github.sha }}
4242
if-no-files-found: error

.github/workflows/_publish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,22 @@ jobs:
2727
timeout-minutes: 30
2828
steps:
2929
- name: Checkout
30-
uses: actions/checkout@v3
30+
uses: actions/checkout@v7
3131
- name: Setup
3232
uses: ./.github/actions/setup
3333
with:
3434
install_dependencies: 'false'
3535
node_auth_token: ${{ secrets.node_auth_token }}
3636
- name: Download artifact
37-
uses: actions/download-artifact@v4
37+
uses: actions/download-artifact@v8
3838
with:
3939
name: ${{ inputs.artifact_name }}
4040
path: .
4141
- name: Get meta
4242
id: meta
4343
run: echo "tgz=$(ls *.tgz | head -n1)" >> $GITHUB_OUTPUT
4444
- name: Publish
45-
uses: JS-DevTools/npm-publish@v2
45+
uses: JS-DevTools/npm-publish@v4
4646
with:
4747
access: restricted
4848
token: ${{ secrets.registry_token }}

.github/workflows/check.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ jobs:
1818
- ubuntu-latest
1919
node:
2020
- '22'
21+
- '24'
2122
include:
2223
- os: ubuntu-latest
2324
os_name: Linux
2425
steps:
2526
- name: Checkout
26-
uses: actions/checkout@v3
27+
uses: actions/checkout@v7
2728
- name: Setup
2829
uses: ./.github/actions/setup
2930
with:
@@ -40,9 +41,10 @@ jobs:
4041
matrix:
4142
node:
4243
- '22'
44+
- '24'
4345
steps:
4446
- name: Checkout
45-
uses: actions/checkout@v3
47+
uses: actions/checkout@v7
4648
- name: Setup
4749
uses: ./.github/actions/setup
4850
with:
@@ -64,9 +66,10 @@ jobs:
6466
matrix:
6567
node:
6668
- '22'
69+
- '24'
6770
steps:
6871
- name: Checkout
69-
uses: actions/checkout@v3
72+
uses: actions/checkout@v7
7073
- name: Setup
7174
uses: ./.github/actions/setup
7275
with:

.github/workflows/format.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ jobs:
1414
timeout-minutes: 30
1515
steps:
1616
- name: Checkout
17-
uses: actions/checkout@v3
17+
uses: actions/checkout@v7
1818
with:
1919
ref: ${{ github.head_ref }}
2020
token: ${{ secrets.GH_TOKEN }}
2121
- name: Import GPG key
22-
uses: crazy-max/ghaction-import-gpg@v5
22+
uses: crazy-max/ghaction-import-gpg@v7
2323
with:
2424
git_user_signingkey: true
2525
git_commit_gpgsign: true
@@ -34,7 +34,7 @@ jobs:
3434
- name: Format
3535
run: npm run format
3636
- name: Commit
37-
uses: stefanzweifel/git-auto-commit-action@v4
37+
uses: stefanzweifel/git-auto-commit-action@v7
3838
if: always()
3939
with:
4040
commit_message: 'ci: Format code'

.github/workflows/generate.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ jobs:
1414
timeout-minutes: 30
1515
steps:
1616
- name: Checkout
17-
uses: actions/checkout@v4
17+
uses: actions/checkout@v7
1818
with:
1919
ref: ${{ github.head_ref }}
2020
token: ${{ secrets.GH_TOKEN }}
2121
- name: Import GPG key
22-
uses: crazy-max/ghaction-import-gpg@v6
22+
uses: crazy-max/ghaction-import-gpg@v7
2323
with:
2424
git_user_signingkey: true
2525
git_commit_gpgsign: true
@@ -36,7 +36,7 @@ jobs:
3636
- name: Generate code
3737
run: npm run generate
3838
- name: Commit
39-
uses: stefanzweifel/git-auto-commit-action@v5
39+
uses: stefanzweifel/git-auto-commit-action@v7
4040
with:
4141
commit_message: 'ci: Generate code'
4242
commit_user_name: ${{ secrets.GIT_USER_NAME }}

.github/workflows/publish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
needs: build
2222
steps:
2323
- name: Checkout
24-
uses: actions/checkout@v3
24+
uses: actions/checkout@v7
2525
with:
2626
fetch-depth: 0
2727
- name: Install Dependencies
@@ -36,10 +36,10 @@ jobs:
3636
mkdir tmp
3737
outfile=tmp/changelog.txt
3838
echo "outfile=${outfile}" >> $GITHUB_OUTPUT
39-
npx standard-changelog@^2.0.0 --release-count 2 --infile $outfile.tmp --outfile $outfile.tmp
39+
npx standard-changelog@^5.0.0 --release-count 2 --infile $outfile.tmp --outfile $outfile.tmp
4040
sed '1,3d' $outfile.tmp > $outfile
4141
- name: Create GitHub release
42-
uses: softprops/action-gh-release@v1
42+
uses: softprops/action-gh-release@v3
4343
with:
4444
token: ${{ secrets.GH_TOKEN }}
4545
fail_on_unmatched_files: true

0 commit comments

Comments
 (0)