Skip to content

[Breaking] Upgrade support for Ember 6 - #298

Open
phndiaye wants to merge 19 commits into
masterfrom
feature/ember-upgrade-4-to-7
Open

phndiaye wants to merge 19 commits into
masterfrom
feature/ember-upgrade-4-to-7

Conversation

@phndiaye

@phndiaye phndiaye commented Nov 5, 2026

Copy link
Copy Markdown
Member

What does this PR do?

Umbrella PR for the Ember upgrade campaign (4.12 → 6.12), made of the following merged PRs:

  • Bump to Ember 6.12.1 and ember-cli 6.12
  • Use native array access for the profile query result
  • Ember 5.12, no ember-ajax, Ember Data 5.9.1 with native types
  • Ember 4.12: history location and factory-guy 5.2

What are the observable changes?

No functional change expected; CI needs to be green before this can be reviewed.

Good PR checklist

  • Title makes sense
  • Is against the correct branch
  • Added/updated tests

@phndiaye phndiaye self-assigned this Nov 5, 2026
@phndiaye
phndiaye requested a review from a team as a code owner November 5, 2026 10:28
@phndiaye
phndiaye requested review from OwenCoogan, nathalieArnoux and olxmpe and removed request for a team November 5, 2026 10:28
phndiaye and others added 18 commits November 5, 2026 14:19
Bump the ember-source devDependency from ~3.28.8 to ~4.12.4 so the
default test run matches the 4.12 runtime used across the campaign
(the ember-4.12 try scenario already covered it). The ember-lts-3.28
try scenario relied on the default devDependencies, so pin it to
~3.28.8 to keep testing the oldest supported release. No published
peer range changes.

Refs CD-369

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the removed `locationType: 'auto'` with `'history'`, which is
what AutoLocation already resolved to in supported browsers. The test
environment keeps `'none'`.

Refs CD-369

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ember-page-title 6.2.2 imports `assign` from @ember/polyfills, which Ember 5
removes. 8.0.0 is the first release without it (7.0.0 still imports it);
^8.0.0 resolves 8.2.4. Works on 4.12; the dummy app doesn't call
page-title, so nothing else changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Raw output of `npx ember-cli-update --to 5.12` (addon blueprint 4.12 → 5.12).
Conflicted files kept on our side, unchanged: .ember-cli,
.github/workflows/ci.yml, .gitignore, .npmignore, .prettierignore, README.md.
Not added (absent here): .eslintignore, CONTRIBUTING.md,
tests/dummy/config/ember-try.js, tests/helpers/index.js.
Hand fixes follow in the next commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the 5.12 blueprint, keep what the dummy app needs to run and test on
Ember 5.12: ember-source/ember-cli ~5.12, @ember/test-helpers ^3.3.1,
ember-qunit ^8.1, ember-resolver ^12, ember-auto-import ^2.8.1,
ember-cli-babel ^8.2.0 with @babel/core in dependencies (its peer),
@embroider/test-setup ^4, @ember/optional-features ^2.1,
ember-cli-dependency-checker, qunit ^2.22, qunit-dom ^3.2.1 and
webpack ^5.95.0.

Types for the new test toolchain: drop @types/ember-qunit and
@types/ember-resolver (both packages ship their own types), raise
@types/qunit to ^2.19.11 (first release with the TestFunction interface
ember-qunit 8 extends) and @types/htmlbars-inline-precompile to ^3.0.0,
whose hbs returns a TemplateFactory that test-helpers 3's render() accepts
(1.0.1 returned a string: 206 errors across 21 test files).

Not taken: dropping @ember/string (the addon imports it), node engines
">= 18" (looser than the current ">= 20"), the lint package bumps,
ember-cli-clean-css, ember-page-title ^8.2.3 (^8.0.0 already resolves
8.2.4) and the .watchmanconfig change. Against the base branch, no package
resolves to a lower version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- drop the 3.16 @types/ember__* packages (@types/rsvp stays: ember-source's own
  types import rsvp)
- TypeScript 5.9, moduleResolution bundler and ember-source/types
- oss-components resolves to its published declarations instead of its
  sources, which do not type-check against native types
- test object stubs cast where native create() types are stricter

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Restores the oss-components `paths` and `addon/` imports so a linked
oss-components resolves without built declarations.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Its published sources do not type-check under Ember's native types yet, and the
restored paths read them. Replace the pin with the published version once
oss-components is released.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pnpm only runs prepack for git dependencies without a main file, so consumers
pinning a commit or branch got no .d.ts files; the script builds them in pnpm's
temporary git-preparation directory only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@phndiaye
phndiaye force-pushed the feature/ember-upgrade-4-to-7 branch from 95348f2 to 40598dd Compare November 5, 2026 13:48

This branch has not been deployed

No deployments
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