Ember 3.22 Released

– By Jared Galanis, Isaac Lee, Ricardo Mendes

Today the Ember project is releasing version 3.22 of Ember.js, Ember Data, and Ember CLI.

This release kicks off the 3.23 beta cycle for all sub-projects. We encourage our community (especially addon authors) to help test these beta builds and report any bugs before they are published as a final release in six weeks' time. The ember-try addon is a great way to continuously test your projects against the latest Ember releases.

You can read more about our general release process here:


Ember.js

Ember.js is the core framework for building ambitious web applications.

Changes in Ember.js 3.22

Ember.js 3.22 is an incremental, backwards compatible release of Ember with bugfixes, performance improvements, and minor deprecations.

Ember.js 3.22 introduced several bug fixes, including:

  • RouterService#isActive updates correctly when the route changes. (#19094)
  • A custom modifier manager only consumes arguments that it actually uses. (Previously, the manager would eagerly consume all arguments.) In order for specific modifiers to take advantage of this change, they need to call modifierCapabilities('3.22') (instead of '3.13'). (#19163)
  • Modifier manager accepts the resolved value of owner.factoryFor directly. This approach aligns with how helpers and component managers work. (#19170)
  • Changes made to protocolForUrl (in 3.22.0-beta.2+) work in fastboot@3.1.0 environment by leveraging the native JavaScript URL global. (#19124)

New Features

Ember.js 3.22 introduced 3 features.

  1. Enabled @ember/destroyable API, which allows you to create and manage your own destroyables. For more information, please see the Destroyables RFC.
  2. Enabled Cache API, a low-level primitive for memoizing the result of a function based on autotracking. (You can install a polyfill for apps between versions 3.13 and 3.21.) For more information, please check the Ember Guides and Autotracking Memoization RFC.
  3. Allowed passing the transition object to 2 route hooks, activate and deactivate.

Deprecations

Ember.js 3.22 introduced 0 deprecations.


Ember Data

Ember Data is the official data persistence library for Ember.js applications.

Changes in Ember Data 3.22

Ember Data 3.22 included several bug fixes of note, including:

  • several fixes ensuring that the Errors.errorsFor array and subarray are properly updated and that autotracking works #7273, #7330, and #7331;
  • #7322 disables the esm cache to solve build time errors some applications were experiencing; and
  • #7126 addresses relationship state when sideposting with lid.

New Features

Ember Data 3.22 introduced 0 features.

Deprecations

Ember Data 3.22 introduced 1 deprecation.

  1. Use of najax has been deprecated in favor of ember-fetch when FastBoot is installed. To learn how to migrate your app, please see the Deprecations Guide.

For more details on changes in Ember Data 3.22, please review the Ember Data 3.22.0 release page.


Ember CLI

Ember CLI is the command line interface for managing and packaging Ember.js applications.

Upgrading Ember CLI

You may upgrade Ember CLI easily using the ember-cli-update project:

npx ember-cli-update

This utility will help you to update your app or addon to the latest Ember CLI version. You will probably encounter merge conflicts, in which the default behavior is to let you resolve conflicts on your own. For more information on the ember-cli-update project, see the GitHub README.

While it is recommended to keep Ember CLI versions in sync with Ember and Ember Data, this is not required. After updating ember-cli, you can keep your current version(s) of Ember or Ember Data by editing package.json to revert the changes to the lines containing ember-source and ember-data.

Changes in Ember CLI 3.22

Ember CLI 3.22 includes only internal changes. However, please note that eslint-plugin-ember released a new major version, v9.x. The new version introduces 6 recommended rules and removes support of Node v13.

New Ember apps will install v9 or higher of eslint-plugin-ember, which may limit the version of Node that you use. To learn more, please check out the changelog for eslint-plugin-ember.

New Features

Ember CLI 3.22 introduced 0 features.

Deprecations

Ember CLI 3.22 introduced 0 deprecations.


For more details on the changes in Ember CLI 3.22 and detailed upgrade instructions, please review the Ember CLI 3.22.0 release page.

Thank You!

As a community-driven open-source project with an ambitious scope, each of these releases serves as a reminder that the Ember project would not have been possible without your continued support. We are extremely grateful to our contributors for their efforts.