From 7e05873db6b8f334b72f72eeb9f7b125776a5dfa Mon Sep 17 00:00:00 2001 From: Sam Van Campenhout Date: Thu, 26 Mar 2026 20:52:17 +0100 Subject: [PATCH 1/3] Resolve Ember v4 deprecations --- app/routes/team-redirect.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/routes/team-redirect.js b/app/routes/team-redirect.js index 3603cf8f1..4227923b8 100644 --- a/app/routes/team-redirect.js +++ b/app/routes/team-redirect.js @@ -1,7 +1,10 @@ import Route from '@ember/routing/route'; +import { service } from '@ember/service'; export default class TeamRedirectRoute extends Route { + @service router; + redirect() { - this.transitionTo('teams'); + this.router.transitionTo('teams'); } } From d52e61641d86317a1c4674373ae5cf785dd52c08 Mon Sep 17 00:00:00 2001 From: Sam Van Campenhout Date: Wed, 25 Mar 2026 10:20:48 +0100 Subject: [PATCH 2/3] Resolve EmberData deprecations --- app/controllers/community/meetups/index.js | 2 +- app/routes/ember-users.js | 4 ++-- app/routes/mascots.js | 4 ++-- app/routes/releases/beta.js | 4 ++-- app/routes/releases/canary.js | 4 ++-- app/routes/releases/lts.js | 4 ++-- app/routes/releases/release.js | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/controllers/community/meetups/index.js b/app/controllers/community/meetups/index.js index 7e360bd30..48bd3be87 100644 --- a/app/controllers/community/meetups/index.js +++ b/app/controllers/community/meetups/index.js @@ -15,7 +15,7 @@ export default class CommunityMeetupsIndexController extends Controller { }; get meetupsByArea() { - const meetups = (this.model ?? []).toArray(); + const meetups = (this.model ?? []).slice(); const groupMeetupsByArea = new Map(); meetups.forEach((meetup) => { diff --git a/app/routes/ember-users.js b/app/routes/ember-users.js index 70dd5a5d2..9b3680cbc 100644 --- a/app/routes/ember-users.js +++ b/app/routes/ember-users.js @@ -4,7 +4,7 @@ import { inject as service } from '@ember/service'; export default class EmberUsersRoute extends Route { @service store; - model() { - return this.store.findAll('user'); + async model() { + return (await this.store.findAll('user')).slice(); } } diff --git a/app/routes/mascots.js b/app/routes/mascots.js index e6aa35700..eeb508098 100644 --- a/app/routes/mascots.js +++ b/app/routes/mascots.js @@ -4,7 +4,7 @@ import { inject as service } from '@ember/service'; export default class MascotsRoute extends Route { @service store; - model() { - return this.store.findAll('tomster'); + async model() { + return (await this.store.findAll('tomster')).slice(); } } diff --git a/app/routes/releases/beta.js b/app/routes/releases/beta.js index ba7011197..a6a2b072e 100644 --- a/app/routes/releases/beta.js +++ b/app/routes/releases/beta.js @@ -7,8 +7,8 @@ export default class ReleasesBetaRoute extends Route { model() { return hash({ - ember: this.store.find('project', 'ember/beta'), - emberData: this.store.find('project', 'emberData/beta'), + ember: this.store.findRecord('project', 'ember/beta'), + emberData: this.store.findRecord('project', 'emberData/beta'), }); } } diff --git a/app/routes/releases/canary.js b/app/routes/releases/canary.js index 3afc284eb..b4a2b77d3 100644 --- a/app/routes/releases/canary.js +++ b/app/routes/releases/canary.js @@ -8,8 +8,8 @@ export default class ReleasesCanaryRoute extends Route { model() { return hash({ - ember: this.store.find('project', 'ember/canary'), - emberData: this.store.find('project', 'emberData/canary'), + ember: this.store.findRecord('project', 'ember/canary'), + emberData: this.store.findRecord('project', 'emberData/canary'), canaryInfo: fetch( 'https://s3.amazonaws.com/builds.emberjs.com/canary.json' ).then((response) => response.json()), diff --git a/app/routes/releases/lts.js b/app/routes/releases/lts.js index 75b792903..d67d9f450 100644 --- a/app/routes/releases/lts.js +++ b/app/routes/releases/lts.js @@ -7,8 +7,8 @@ export default class ReleasesLtsRoute extends Route { model() { return hash({ - ember: this.store.find('project', 'ember/lts'), - emberData: this.store.find('project', 'emberData/lts'), + ember: this.store.findRecord('project', 'ember/lts'), + emberData: this.store.findRecord('project', 'emberData/lts'), }); } } diff --git a/app/routes/releases/release.js b/app/routes/releases/release.js index 2ffcb9ce0..39b33c7c3 100644 --- a/app/routes/releases/release.js +++ b/app/routes/releases/release.js @@ -7,8 +7,8 @@ export default class ReleasesReleaseRoute extends Route { model() { return hash({ - ember: this.store.find('project', 'ember/release'), - emberData: this.store.find('project', 'emberData/release'), + ember: this.store.findRecord('project', 'ember/release'), + emberData: this.store.findRecord('project', 'emberData/release'), }); } } From f380149f1b85912ee748db3a2a487391581f4548 Mon Sep 17 00:00:00 2001 From: Chris Manson Date: Fri, 27 Mar 2026 16:26:15 +0000 Subject: [PATCH 3/3] fix ember-data deprecation in a different way --- app/routes/ember-users.js | 4 +-- app/routes/mascots.js | 4 +-- ember-cli-build.js | 6 +++++ package.json | 2 +- pnpm-lock.yaml | 52 +++++++++++---------------------------- 5 files changed, 25 insertions(+), 43 deletions(-) diff --git a/app/routes/ember-users.js b/app/routes/ember-users.js index 9b3680cbc..70dd5a5d2 100644 --- a/app/routes/ember-users.js +++ b/app/routes/ember-users.js @@ -4,7 +4,7 @@ import { inject as service } from '@ember/service'; export default class EmberUsersRoute extends Route { @service store; - async model() { - return (await this.store.findAll('user')).slice(); + model() { + return this.store.findAll('user'); } } diff --git a/app/routes/mascots.js b/app/routes/mascots.js index eeb508098..e6aa35700 100644 --- a/app/routes/mascots.js +++ b/app/routes/mascots.js @@ -4,7 +4,7 @@ import { inject as service } from '@ember/service'; export default class MascotsRoute extends Route { @service store; - async model() { - return (await this.store.findAll('tomster')).slice(); + model() { + return this.store.findAll('tomster'); } } diff --git a/ember-cli-build.js b/ember-cli-build.js index 91f764b8e..a0a384612 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -8,6 +8,12 @@ module.exports = function (defaults) { plugins: [require.resolve('ember-auto-import/babel-plugin')], }, + autoImport: { + alias: { + 'ember-composable-helpers': '@nullvoxpopuli/ember-composable-helpers', + }, + }, + 'ember-composable-helpers': { only: ['filter-by', 'reject-by', 'sort-by'], }, diff --git a/package.json b/package.json index 9e969bf52..ce08352ec 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "@glimmer/component": "^1.1.2", "@glimmer/tracking": "^1.1.2", "@lhci/cli": "0.6.1", + "@nullvoxpopuli/ember-composable-helpers": "^5.3.1", "@percy/cli": "^1.0.0-beta.71", "@percy/ember": "^3.0.0", "algoliasearch": "^3.33.0", @@ -62,7 +63,6 @@ "ember-cli-netlify": "^0.4.1", "ember-cli-sri": "^2.1.1", "ember-cli-terser": "^4.0.2", - "ember-composable-helpers": "^5.0.0", "ember-data": "~4.12.0", "ember-data-fastboot": "github:cardstack/ember-data-fastboot", "ember-fetch": "^8.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0733efdb1..b29c83e5f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,6 +35,9 @@ importers: '@lhci/cli': specifier: 0.6.1 version: 0.6.1 + '@nullvoxpopuli/ember-composable-helpers': + specifier: ^5.3.1 + version: 5.3.1(@babel/core@7.26.9) '@percy/cli': specifier: ^1.0.0-beta.71 version: 1.30.7 @@ -116,9 +119,6 @@ importers: ember-cli-terser: specifier: ^4.0.2 version: 4.0.2 - ember-composable-helpers: - specifier: ^5.0.0 - version: 5.0.0 ember-data: specifier: ~4.12.0 version: 4.12.8(@babel/core@7.26.9)(@ember/string@4.0.1)(@glimmer/tracking@1.1.2)(ember-source@4.12.4(@babel/core@7.26.9)(@glimmer/component@1.1.2(@babel/core@7.26.9))(webpack@5.98.0))(webpack@5.98.0) @@ -1426,6 +1426,9 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@nullvoxpopuli/ember-composable-helpers@5.3.1': + resolution: {integrity: sha512-9K8jG/kb5TsgwoNWMEQi8KbvHKIi7lswfoyX+7qoMgPEW5YCNH/165VH99pxffbweFYAkGvwz23b1RQ7IDqNtA==} + '@percy/cli-app@1.30.7': resolution: {integrity: sha512-MPgCCH5a7RRncy0ik7JDJorW216WshC5mRimYh4NWE8DB1t0z0zphust4LSy8dQU2Sz5pR9eWiGFJrYpa4QXJQ==} engines: {node: '>=14'} @@ -2667,10 +2670,6 @@ packages: broccoli-funnel@1.2.0: resolution: {integrity: sha512-0pbFNUA5Ml+gPPd58Rj/M26OS21+bMiV0F+m6+9OVzAhAdppVLxylSsXfWAt2WOD3kS+D8UsDv6GSmnZhbw/dw==} - broccoli-funnel@2.0.1: - resolution: {integrity: sha512-C8Lnp9TVsSSiZMGEF16C0dCiNg2oJqUKwuZ1K4kVC6qRPG/2Cj/rtB5kRCC9qEbwqhX71bDbfHROx0L3J7zXQg==} - engines: {node: ^4.5 || 6.* || >= 7.*} - broccoli-funnel@2.0.2: resolution: {integrity: sha512-/vDTqtv7ipjEZQOVqO4vGDVAOZyuYzQ/EgGoyewfOgh1M7IQAToBKZI0oAQPgMBeFPPlIbfMuAngk+ohPBuaHQ==} engines: {node: ^4.5 || 6.* || >= 7.*} @@ -4091,10 +4090,6 @@ packages: peerDependencies: ember-source: ^3.8 || ^4.0.0 || >= 5.0.0 - ember-composable-helpers@5.0.0: - resolution: {integrity: sha512-gyUrjiSju4QwNrsCLbBpP0FL6VDFZaELNW7Kbcp60xXhjvNjncYgzm4zzYXhT+i1lLA6WEgRZ3lOGgyBORYD0w==} - engines: {node: 12.* || 14.* || >= 16} - ember-concurrency@2.3.7: resolution: {integrity: sha512-sz6sTIXN/CuLb5wdpauFa+rWXuvXXSnSHS4kuNzU5GSMDX1pLBWSuovoUk61FUe6CYRqBmT1/UushObwBGickQ==} engines: {node: 10.* || 12.* || 14.* || >= 16} @@ -10817,6 +10812,14 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 + '@nullvoxpopuli/ember-composable-helpers@5.3.1(@babel/core@7.26.9)': + dependencies: + '@embroider/addon-shim': 1.9.0 + decorator-transforms: 2.3.1(@babel/core@7.26.9) + transitivePeerDependencies: + - '@babel/core' + - supports-color + '@percy/cli-app@1.30.7': dependencies: '@percy/cli-command': 1.30.7 @@ -12710,24 +12713,6 @@ snapshots: transitivePeerDependencies: - supports-color - broccoli-funnel@2.0.1: - dependencies: - array-equal: 1.0.2 - blank-object: 1.0.2 - broccoli-plugin: 1.3.1 - debug: 2.6.9 - fast-ordered-set: 1.0.3 - fs-tree-diff: 0.5.9 - heimdalljs: 0.2.6 - minimatch: 3.1.2 - mkdirp: 0.5.6 - path-posix: 1.0.0 - rimraf: 2.7.1 - symlink-or-copy: 1.3.1 - walk-sync: 0.3.4 - transitivePeerDependencies: - - supports-color - broccoli-funnel@2.0.2: dependencies: array-equal: 1.0.2 @@ -14891,15 +14876,6 @@ snapshots: - supports-color - webpack - ember-composable-helpers@5.0.0: - dependencies: - '@babel/core': 7.26.9 - broccoli-funnel: 2.0.1 - ember-cli-babel: 7.26.11 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - ember-concurrency@2.3.7(@babel/core@7.26.9): dependencies: '@babel/helper-plugin-utils': 7.26.5