Skip to content

Build the tutorial against ember-source main - #294

Open
NullVoxPopuli-ai-agent wants to merge 2 commits into
ember-learn:mainfrom
NullVoxPopuli-ai-agent:nvp/ember-source-main
Open

NullVoxPopuli-ai-agent wants to merge 2 commits into
ember-learn:mainfrom
NullVoxPopuli-ai-agent:nvp/ember-source-main

Conversation

@NullVoxPopuli-ai-agent

@NullVoxPopuli-ai-agent NullVoxPopuli-ai-agent commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

This adds a main channel to the Build matrix. It builds the tutorial against the latest ember-source build of emberjs/ember.js main.

How it works:

  • The main job installs the alpha ember-cli and @ember/app-blueprint, the same as alpha.
  • It reads https://s3.amazonaws.com/builds.emberjs.com/canary.json. ember.js CI uploads a build of each push to main, and this file points to the latest one.
  • A manual run can set the ember-source input to a full ember.js commit SHA or a tarball URL. The main job then uses that build. If the input is empty, the job uses the latest build.
  • A hidden step after ember new installs that tarball when EMBER_SOURCE_TARBALL is set. The other channels do not set it, so nothing changes for them.

The main job is expected to fail now. @warp-drive/legacy uses mapBy from @ember/object/computed, and main deprecates that macro. The tutorial sets RAISE_ON_DEPRECATION: true, so the first pnpm test fails:

Uncaught Error: `mapBy` from `@ember/object/computed` is deprecated.

The deploy jobs need all matrix jobs, the same as with alpha. A broken main will block deploys until it is fixed.

PolarisMode tutorial PRs

Merge in this order:

  1. Build the tutorial against ember-source main #294 (this PR): builds the tutorial against ember-source main.
  2. [BUGFIX beta] LinkTo: do not read unknown properties from models emberjs/ember.js#21771: fixes <LinkTo @model={{record}}> with PolarisMode records.
  3. Use useRecommendedStore and drop @warp-drive/legacy ember-cli/ember-app-blueprint#338: new apps use useRecommendedStore without @warp-drive/legacy.
  4. Teach WarpDrive schemas in PolarisMode in chapter 11 #296: chapter 11 teaches WarpDrive schemas in PolarisMode.

Related:

🤖 Generated with Claude Code

runspired pushed a commit to warp-drive-data/warp-drive that referenced this pull request Oct 26, 2026
With ember-source `main`, an app that imports `@warp-drive/legacy` gets
this deprecation when the module loads:

```
`mapBy` from `@ember/object/computed` is deprecated. Use a getter with native array methods instead.
```

The cause is `Errors` in
`warp-drive-packages/legacy/src/model/-private/errors.ts`. It applies
the `mapBy` and `not` macros at class definition. ember.js deprecated
both macros in emberjs/ember.js#21687 and emberjs/ember.js#21688. Apps
with `RAISE_ON_DEPRECATION` fail, for example the Ember super-rentals
tutorial build (ember-learn/super-rentals-tutorial#294).

This PR replaces the two macros with `@computed` getters:

- `messages` depends on `content.@each.message` and returns `A(...)`,
the same as `mapBy`.
- `isEmpty` depends on `length`.

The tests in
`tests/dont-write-new-tests-here/tests/unit/model/errors-test.js` cover
both properties. No test app here runs ember-source `main`, so no test
fails without this change.

Expected changelog label: `:label: bug`.

Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
NullVoxPopuli and others added 2 commits October 28, 2026 13:48
Add a `main` channel to the Build matrix. It uses the alpha ember-cli
and app blueprint, then installs the latest ember-source build of
ember.js main. ember.js CI uploads that build to builds.emberjs.com,
and canary.json points to it.

A hidden step after `ember new` installs the tarball when
EMBER_SOURCE_TARBALL is set. Other channels do not set it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add an `ember-source` input to workflow_dispatch. It takes a full
ember.js commit SHA or a tarball URL. A SHA maps to its build on
builds.emberjs.com. If the input is empty, the main channel uses the
latest build, as before. The step checks that the tarball exists, so a
SHA with no build stops the job before the slow steps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

2 participants