Drop Ember 4.x support, add Ember 5 and 6 support - #958
Open
uanjoze wants to merge 3 commits into
Open
Conversation
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>
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
<5.0support entirely (including 4.x) and narrowspeerDependencies.ember-sourceto^5.0.0 || ^6.0.0.ember-lts-5.4,ember-lts-5.8,ember-lts-5.12,ember-lts-6.4,ember-lts-6.8,ember-lts-6.12scenarios to the ember-try matrix.@glimmer/component2.x, babel, eslint config, commitlint/release-it/lefthook, etc.) to versions compatible with the new Ember range.>= 20(required by Ember 6.x) and updates CI workflows accordingly.ember-cli-typescriptis required to compile the test-app's.tstest files under the classic (non-Embroider) build pipeline.ember-qunit@9no longer auto-loads test modules fromstart()— now requires an explicitloadTests()call fromember-qunit/test-loader.ember-tracked-storage-polyfilldependency (viatracked-built-ins) pinned an ancientember-cli-htmlbars@5.7.2that crashed ember-cli 7.x's addon model.@tsconfig/ember's neweres2023target isn't supported by TypeScript before 5.5 — pinnedtarget/libtoes2022in both tsconfig.json files.@glimmer/component@1.xisn'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 legacyemberAMD barrel module removed in Ember 7 — bumped to 4.x.resolution-mode=highestto.npmrcand switchesember-tryconfig from the deprecatedusePnpmoption topackageManager: 'pnpm'.ember-release/ember-beta/ember-canaryremain red: those bleeding-edge Ember builds restructuredember-source'sdist/output (dropping the flatdist/ember-template-compiler.jsfor adist/dev+dist/prodsplit with an@ember/template-compilerpackage), which the currentember-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 onmasterbefore this branch — left as a known-flaky early-warning signal.Test plan
pnpm lintpasses for bothember-amount-inputandtest-apppnpm test:emberpasses (9/9) on the default scenario (ember-source ~6.8)ember-lts-5.x/6.xscenarios,embroider-safe/embroider-optimized, andtypescript@5.0/5.1/5.2type-checkingember-release/ember-beta/ember-canary/typescript@nextconfirmed pre-existing-flaky (already failing onmaster), not introduced by this PR🤖 Generated with Claude Code