Skip to content

Drop Ember 4.x support, add Ember 5 and 6 support - #958

Open
uanjoze wants to merge 3 commits into
masterfrom
drop-legacy-ember-support-add-5-6
Open

Drop Ember 4.x support, add Ember 5 and 6 support#958
uanjoze wants to merge 3 commits into
masterfrom
drop-legacy-ember-support-add-5-6

Conversation

@uanjoze

@uanjoze uanjoze commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Drops Ember <5.0 support entirely (including 4.x) and narrows peerDependencies.ember-source to ^5.0.0 || ^6.0.0.
  • Adds ember-lts-5.4, ember-lts-5.8, ember-lts-5.12, ember-lts-6.4, ember-lts-6.8, ember-lts-6.12 scenarios to the ember-try matrix.
  • Upgrades the addon and test-app toolchains (ember-cli, embroider v3 line, glint, ember-qunit, ember-data, @glimmer/component 2.x, babel, eslint config, commitlint/release-it/lefthook, etc.) to versions compatible with the new Ember range.
  • Bumps the Node engine floor to >= 20 (required by Ember 6.x) and updates CI workflows accordingly.
  • Fixes several build/CI breakages surfaced by the toolchain upgrade:
    • ember-cli-typescript is required to compile the test-app's .ts test files under the classic (non-Embroider) build pipeline.
    • ember-qunit@9 no longer auto-loads test modules from start() — now requires an explicit loadTests() call from ember-qunit/test-loader.
    • A stale transitive ember-tracked-storage-polyfill dependency (via tracked-built-ins) pinned an ancient ember-cli-htmlbars@5.7.2 that crashed ember-cli 7.x's addon model.
    • @tsconfig/ember's newer es2023 target isn't supported by TypeScript before 5.5 — pinned target/lib to es2022 in both tsconfig.json files.
    • @glimmer/component@1.x isn't compatible with newer Ember builds' component-manager registration — bumped to 2.x (only possible after dropping 4.x support).
    • @ember/test-waiters (transitive via ember-data) still imported the legacy ember AMD barrel module removed in Ember 7 — bumped to 4.x.
  • Adds resolution-mode=highest to .npmrc and switches ember-try config from the deprecated usePnpm option to packageManager: 'pnpm'.

ember-release/ember-beta/ember-canary remain red: those bleeding-edge Ember builds restructured ember-source's dist/ output (dropping the flat dist/ember-template-compiler.js for a dist/dev + dist/prod split with an @ember/template-compiler package), which the current ember-cli-htmlbars/Embroider v3 toolchain can't locate. This is an Embroider v4 migration, out of scope here, and these 3 scenarios were already failing on master before this branch — left as a known-flaky early-warning signal.

Test plan

  • pnpm lint passes for both ember-amount-input and test-app
  • pnpm test:ember passes (9/9) on the default scenario (ember-source ~6.8)
  • CI green: Tests, Floating Dependencies, commitlint, all ember-lts-5.x/6.x scenarios, embroider-safe/embroider-optimized, and typescript@5.0/5.1/5.2 type-checking
  • ember-release/ember-beta/ember-canary/typescript@next confirmed pre-existing-flaky (already failing on master), not introduced by this PR

🤖 Generated with Claude Code

Juanjo Domínguez and others added 3 commits July 15, 2026 12:43
Removes the ember-lts-3.28 and ember-classic try scenarios (both
require Ember APIs removed in 4.0) and widens the peer dependency
range to ^4.0.0 || ^5.0.0 || ^6.0.0. Adds ember-lts-5.4/5.8/5.12 and
ember-lts-6.4/6.8/6.12 scenarios, upgrades the addon and test-app
toolchains (ember-cli, embroider, glint, ember-qunit, ember-data,
babel, eslint config, release tooling, etc.) to versions compatible
with the new range, and bumps the Node engine floor to >= 20 (required
by Ember 6.x).

Fixes two issues surfaced by the ember-cli 7.x/ember-qunit 9.x upgrade:
- ember-cli-typescript was needed to compile the test-app's .ts test
  files under the classic (non-Embroider) build pipeline.
- ember-qunit@9 no longer auto-loads test modules in start(); this now
  requires an explicit loadTests() call from ember-qunit/test-loader.

BREAKING CHANGE: ember-source ^3.28.0 is no longer supported. Minimum
supported Node version is now 20.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Bump tracked-built-ins to 4.x, which drops the transitive dependency
  on ember-tracked-storage-polyfill. That package pinned an ancient
  ember-cli-htmlbars@5.7.2, which crashed ember-cli 7.x's addon model
  (`Cannot read properties of undefined (reading 'templateCompiler')`)
  against the ember-source release/beta/canary channels.
- Pin target/lib to es2022 in both tsconfig.json files instead of
  inheriting @tsconfig/ember's es2023 default. TypeScript only gained
  es2023 target/lib support in 5.5; the typescript-compatibility CI
  job pins TS 5.0-5.2, which rejected the es2023 target outright and
  cascaded into unrelated-looking template/parsing errors.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Following up on the previous commit: drop the ember-lts-4.4/4.8/4.12
try scenarios and narrow peerDependencies to ^5.0.0 || ^6.0.0.

This unblocks bumping @glimmer/component to 2.x and
ember-load-initializers to 3.x, both of which require ember-source >=
5 and were previously held back to keep Ember 4.x working. The old
@glimmer/component@1.x was incompatible with newer Ember builds'
component-manager registration, which is what broke ember-release/
ember-beta against Ember 7's already-released/beta builds.

Also bumps @ember/test-waiters to 4.x (a transitive ember-data
dependency) to drop its import of the legacy `ember` AMD barrel
module, which Ember 7 removes entirely.

ember-release/ember-beta/ember-canary remain red: those bleeding-edge
Ember builds restructured ember-source's dist/ output (dropping the
flat dist/ember-template-compiler.js for a dist/dev + dist/prod split
with an @ember/template-compiler package), which the current
ember-cli-htmlbars/Embroider v3 toolchain can't locate. Fixing that is
an Embroider v4 migration, out of scope here; left as a known-flaky
early-warning signal, same as before this branch existed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@uanjoze uanjoze changed the title Drop Ember <4.0 support, add Ember 5 and 6 support Drop Ember 4.x support, add Ember 5 and 6 support Jul 15, 2026
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