Repository navigation
[SCF-2416] [Part 4] Require Node 20 and switch @embroider/util to a fork - #19
Open
Gaurav0 wants to merge 3 commits into
Conversation
0.8.7 is a v2 addon that no longer depends on @embroider/util. The element helper's API is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The SeeClickFix @embroider/util fork requires Node >= 20, and its dependency tree doesn't install on Node 18 with yarn v1: pkg-entry-points 1.1.2 needs Node >= 20.19.5, and every mktemp 2.x needs Node 20. engines.node and the README move to Node 20, and CI runs on Node 20. The pkg-entry-points 1.1.1 resolution only existed to keep installs working on Node 16/18, so it's dropped and the lockfile moves to 1.1.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@embroider/util 1.13.1-1.13.5 depend on ember-cli-babel 7, which pulls tmp 0.0.x and @babel/runtime 7.12 into every consumer install. 1.13.0 used ember-cli-babel 8, but 1.13.1 reverted that only to keep Node 12 working, and util won't be released again upstream. @embroider/util now comes from Gaurav0/embroider-util#v1.13.5-scf.1, a fork of 1.13.5 whose only changes are in package.json: ember-cli-babel ^8.3.2, @embroider/macros >=1.19.7 <1.21.0 and Node >= 20. Its runtime files are byte-identical to 1.13.0-1.13.5, and it keeps the @embroider/util name, so the ensure-safe-component helper that Embroider trusts by name is unchanged and no templates change. The fork moves to SeeClickFix/embroider-util before 5.0.0 is tagged. Unwrapping ensure-safe-component instead isn't an option for a v1 addon: Embroider's compat resolver only accepts (component (X ...)) when X is component or ensure-safe-component, so the 25 currying sites would fail with "Unsafe dynamic component". @embroider/macros moves from ^1.8.3 to >=1.19.7 <1.21.0 and stays in dependencies, since ember-cli only finds child addons there. - 1.18.1 fixed lazy importSync, which util relies on. - 1.19.7 is the first release that allows ember-cli-babel 8. - 1.21.0 turned macros into a v2 addon, which we're not taking yet. A ~1.20.7 resolution keeps dev dependencies from pulling a second 1.21.x copy, so the dummy app runs the macros version consumers get. New BsModal tests pass a curried (component "...") and a component class as @headerComponent (a currying site, onClose still reaches the custom header) and @bodyComponent (a plain site). Release notes: apps need @embroider/macros >= 1.18.1. Apps whose lockfile is older should run `yarn upgrade @embroider/macros`. ember-bootstrap now has a git dependency, so installs fetch the fork from GitHub. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 5, 2026
[SCF-2416] [Part 2] Upgrade test and lint tooling (ESLint 8, Prettier 3, ember-try 3, stylelint)
#17
Open
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
Removes the last ember-cli-babel 7 path through
@embroider/util. Upstream won't release util again.@embroider/util. Same API.pkg-entry-points1.1.2,mktemp2.x).engines.node, the README and CI move to Node 20, and thepkg-entry-points1.1.1 resolution is dropped.@embroider/utilcomes fromGaurav0/embroider-util#v1.13.5-scf.1. It's a fork of 1.13.5 whose only changes are inpackage.json: ember-cli-babel ^8.3.2,@embroider/macros >=1.19.7 <1.21.0, and Node >= 20.@embroider/utilname. Embroider trustsensure-safe-componentby that name, so no templates change.ensure-safe-componentisn't an option for a v1 addon: Embroider would reject the 25 currying sites with "Unsafe dynamic component".@embroider/macrosmoves to>=1.19.7 <1.21.0.importSyncthat util relies on.~1.20.7resolution keeps the dummy app on the same macros version consumers get.(component "...")and a component class as@headerComponentand@bodyComponent.+76/−11 lines, not counting
yarn.lock.Breaking changes (5.0.0 release notes)
SeeClickFix/embroider-utilbefore 5.0.0 is tagged.@embroider/macros >= 1.18.1. Apps whose lockfile is older should runyarn upgrade @embroider/macros.Stack
Part of the SCF-2416 work (ember-bootstrap 5.0.0), split from
scf-2416-reworkfor easier review. This is part 4 of 9. Stacked on Part 3: its base isgaurav/chore/SCF-2416-part-3-build-deps, so the diff only shows this part. Merge in order.Review notes
The fork is the main decision to review. The fork commit's message explains why it's needed and what was ruled out.
Testing
Run on this branch with Node 20.19.6:
yarn install --frozen-lockfilepasses,yarn lintreports 0 errors (the same 150 warnings asscf_master), andember test(Ember 4.8, the default) has 538 passed, 9 skipped and 0 failed. +4 BsModal tests. CI covers the ember-try matrix.🤖 Generated with Claude Code