Skip to content

bump Node to 20.x and actions/* to v4#223

Merged
lukemelia merged 2 commits into
masterfrom
ci-bump-node-and-actions
Apr 19, 2026
Merged

bump Node to 20.x and actions/* to v4#223
lukemelia merged 2 commits into
masterfrom
ci-bump-node-and-actions

Conversation

@lukemelia

@lukemelia lukemelia commented Apr 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

Two related bumps to get CI green:

1. Node + actions bumps (commit 1)

Floating-dependency installs now pull transitive deps that require Node 20+ (mktemp@2.0.2, modern execa), and the 14.x / 16.x CI runners fail every job with either:

error mktemp@2.0.2: Expected version "20 || 22 || 24". Got "16.20.2"

or:

Error [ERR_REQUIRE_ESM]: require() of ES Module .../testem/.../execa/index.js

All three jobs (test, floating, try-scenarios) bumped to Node 20.x (current LTS). actions/checkout and actions/setup-node bumped from v3 to v4 (v3 has been deprecated since 2024).

2. htmlSafe import path (commit 2)

After the Node bump, the floating and older-Ember scenarios surfaced a separate failure:

Uncaught Error: htmlSafe is not implemented in the `@ember/string` package.
Please import from `@ember/template` instead.

@ember/string@4.x removed htmlSafe (it has been canonically exported from @ember/template since Ember 3.x). Single import site fixed in addon/components/tether-to-selection/component.js.

Test plan

  • All three jobs reference Node 20.x.
  • All actions/checkout and actions/setup-node references are v4.
  • No remaining htmlSafe imports from @ember/string.
  • CI green (or as green as it gets — embroider-safe has a separate preexisting 'VERSION' (imported as 'MOBILEDOC_KIT_VERSION') was not found in 'mobiledoc-kit' regression that is out of scope here).

🤖 Generated with Claude Code

Floating-dependency installs are now pulling transitive deps that require
Node 20+ (mktemp@2.0.2, modern execa). The 14.x and 16.x runners installed
the wrong CJS/ESM mix and failed every job. Bump all three jobs to Node
20.x (current LTS), and update actions/checkout and actions/setup-node
to v4 since v3 is deprecated as of 2024.
@ember/string@4.x removed htmlSafe; it has been canonically exported from
@ember/template since Ember 3.x. The old @ember/string import path now
throws "htmlSafe is not implemented in the @ember/string package. Please
import from @ember/template instead." under modern @ember/string.
@lukemelia lukemelia changed the title ci: bump Node to 20.x and actions/* to v4 bump Node to 20.x and actions/* to v4 Apr 19, 2026
@lukemelia lukemelia merged commit b945ffb into master Apr 19, 2026
7 checks passed
lukemelia added a commit that referenced this pull request Apr 19, 2026
CI was moved to Node 20.x in #223 after Node 14/16 broke on modern
transitive deps (mktemp, execa). Align the advertised engines range
and the volta-pinned dev version to match so contributors and
consumers get Node 20.x too.
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.

1 participant