[pull] main from tinacms:main#221
Merged
Merged
Conversation
## Context Node 20 reached its official end-of-life on **2026-04-30** ([Node.js release schedule](https://endoflife.date/nodejs)). The contributor and CI default in this repo (\`.nvmrc\`) still points to Node 20, 18 days after EOL. ## What Single one-line change: \`.nvmrc\` from \`v20\` to \`v22\`. ## Why now Two reasons compounding: 1. **Node 20 is no longer receiving security patches.** Anyone running \`nvm use\` / \`fnm use\` in this repo today gets an EOL Node version. The repo's own end-user verification CI ([\`build-starter-templates.yml\`](.github/workflows/build-starter-templates.yml)) already runs against Node 22 / 24 / 25 — Node 20 is excluded from the user-facing matrix. The \`.nvmrc\` was just lagging. 2. **Coordinated with [tinacms/sqlite-level#34](tinacms/sqlite-level#34 That PR bumps \`better-sqlite3\` from \`^11.8.1\` to \`^12.9.0\` (resolves to 12.10.0) to fix [#6686](#6686) on Node 24. \`better-sqlite3@12.10.0\` [explicitly dropped Node 20 prebuilds](https://github.com/WiseLibs/better-sqlite3/releases/tag/v12.10.0): *"Add support for Node.js v26 prebuilds and remove EOL builds (Node.js v20, v23)"*. Once sqlite-level publishes from #34 and \`@tinacms/search\` consumes it via [#6848](#6848), the [\`publish.yml\`](.github/workflows/publish.yml) workflow — which uses \`node-version-file: .nvmrc\` — would hit a \`node-gyp rebuild\` attempt and fail without a local Python + C++ toolchain in the runner image. This bump prevents that. ## Workflows affected Workflows that use \`node-version-file: '.nvmrc'\` (and will now run on Node 22): - \`.github/workflows/publish.yml\` - \`.github/workflows/main.yml\` - \`.github/workflows/e2e.yml\` - \`.github/workflows/playwright-next-kitchen-sink.yml\` - \`.github/workflows/playwright-react-kitchen-sink.yml\` - \`.github/workflows/playwright-astro-kitchen-sink.yml\` - \`.github/workflows/playwright-hugo-kitchen-sink.yml\` Workflows with their own explicit \`node-version\` matrices are unaffected (\`build-starter-templates.yml\` already runs 22 / 24 / 25). ## Out of scope - \`packages/create-tina-app/package.json\` declares \`engines.node: ">=18.18.0"\`. That's the *user-facing* floor for scaffolding new projects and is a separate decision — not changed here. Worth revisiting in a future PR. - This does **not** change any production runtime targets. Tina packages themselves don't declare \`engines\` and are Node-version-agnostic at runtime. ## Test plan - [ ] CI workflows pass on Node 22 (will run automatically when PR opens) - [ ] No lockfile or package.json changes needed — this is purely the \`.nvmrc\` hint file 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…#6908) ## What Pin `.nvmrc` to `v22.20.0` (was `v22` after #6905). ## Why [Publish workflow on main failed](https://github.com/tinacms/tinacms/actions/runs/26077016715) immediately after [#6905](#6905) merged. The failure is in the *"Upgrade npm for OIDC support"* step running `npm install -g npm@latest`: ``` npm error code MODULE_NOT_FOUND npm error Cannot find module 'promise-retry' npm error - /opt/hostedtoolcache/node/22.22.2/x64/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js ``` ### Root cause: Node 22.22.2's bundled npm is broken actions/setup-node resolves the unpinned `v22` to the latest 22.x release. Today that's **Node 22.22.2** (released 2026-03-24), which ships **npm 10.9.7** — and that bundled npm is missing transitive deps (`promise-retry` via `@npmcli/arborist`) needed to install another npm globally. | Version | Released | Bundled npm | Status | |---|---|---|---| | **v22.20.0** | 2025-09-24 | 10.9.3 | ✅ known-good (this PR) | | v22.21.1 | 2025-10-28 | 10.9.4 | ✅ likely fine | | v22.22.0 / .1 | 2026-01 / .03 | 10.9.4 | ✅ likely fine | | **v22.22.2** | 2026-03-24 | 10.9.7 | ❌ broken bundle (this is what fired) | | v22.22.3 | 2026-05-13 | 10.9.8 | unverified, just released | ### Why pin to v22.20.0 specifically It's what tinacloud's `.nvmrc` already uses: ``` $ cat ~/projects/tinacloud/.nvmrc v22.20.0 ``` Aligning the two repos on a known-stable Node 22 release avoids the next floating-tag surprise and keeps contributor experience consistent across Tina-owned repos. ## Impact Affects every workflow using `node-version-file: '.nvmrc'`: - `publish.yml` (the failing one) - `main.yml` - `e2e.yml` - `playwright-next-kitchen-sink.yml` - `playwright-react-kitchen-sink.yml` - `playwright-astro-kitchen-sink.yml` - `playwright-hugo-kitchen-sink.yml` All will switch from Node 22.22.2 → 22.20.0. OIDC support is preserved (`npm 10.9.3` supports it; the upgrade-to-latest step will continue to run, just on a working bundled npm). ## Refs - Failed publish run: https://github.com/tinacms/tinacms/actions/runs/26077016715 - Originating PR: #6905 - TinaCloud's `.nvmrc` for alignment: https://github.com/tinacms/tinacloud/blob/main/.nvmrc 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )