Today the Ember project is releasing version 4.12 of Ember.js, EmberData, and Ember CLI.
This release kicks off the 5.0 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 4.12
Ember.js 4.12 is an incremental, backwards compatible release of Ember with bug fixes, performance improvements, and minor deprecations.
Bug Fixes
Ember.js 4.12 introduced 3 bug fixes.
- #20388 - Don't run getters while applying mixins, ensuring that getters are never evaluated while applying
mixins. - #20398 - Fix runloop types on TypeScript 5.0+ where types around
bind
were flagged with an assignability error. - #20385 - Improve the error for owner methods called after destroy where the error message did not indicate what was being looked up.
Features
Ember.js 4.12 introduced 3 features.
- #20352 - Enable generating Typescript blueprints when
isTypeScriptProject
istrue
without additional environment variables per RFC #800. - #20355 - Enhance the Typescript blueprint for generated services per RFC #800.
- #20356 - Generate signature in TypeScript Glimmer Component blueprints per RFC #800.
Deprecations
Ember.js 4.12 introduced 0 deprecations.
Deprecations are added to Ember.js when an API will be removed at a later date. Each deprecation has an entry in the deprecation guide describing the migration path to a more stable API. Deprecated public APIs are not removed until a major release of the framework. No new deprecations are allowed after the .10
release, to minimize churn before the next major release.
Consider using the ember-cli-deprecation-workflow addon if you would like to upgrade your application without immediately addressing deprecations.
For more details on changes in Ember.js 4.12, please review the Ember.js 4.12.0 release page.
EmberData
EmberData is the official data persistence library for Ember.js applications.
There were many significant changes to EmberData in 4.12, including:
- some big steps towards Embroider support with improved build times and addons that are close to v2 addons - full embroider support is the flip of a switch away once a few issues are resolved;
- lots of improved documentation, including the docs around Cache, Notifications, Identity Management, and Record Lifecycle, also includes inline deprecation docs and granular stripping;
- introducing
@ember-data/request
and theRequestManager
, a package that can be used independently (but also comes bundled withember-data
) that re-envisions how data fetching is managed for both EmberData and applications more broadly - see the docs and related RFC; - Cache Spec 2.1 implementation - using the power of
store.request
, requests are now capable of providing a cache-key or being cached by URL, with full lifecycle control and notification subscriptions. Documents are a first-class citizen of the Cache and EmberData more broadly. To go with this, theJSON:API
cache previously provided by@ember-data/record-data
is now upgraded to the 2.1 spec and available as the@ember-data/json-api
package. While this cache does not yet implement the full suite of cache 2.1 APIs, support for all Cache 2.1 APIs has been added to the store. Read more about Cache 2.1 in the related RFC.
Changes in EmberData 4.12
Bug Fixes
EmberData 4.12 introduced 20 bug fixes.
Features
EmberData 4.12 introduced 24 features.
Deprecations
EmberData 4.12 introduced 2 deprecation removals.
We are not detailing all the work done in this release, here, so for more details on changes in EmberData 4.12 please review the thorough notes on the
EmberData 4.12.0 release page and the EmberData changelog
Ember CLI
Ember CLI is the command line interface for managing and packaging Ember.js applications.
Upgrading Ember CLI
You may upgrade Ember CLI 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 EmberData, this is not required. After updating ember-cli, you can keep your current version(s) of Ember or EmberData by editing package.json
to revert the changes to the lines containing ember-source
and ember-data
.
Changes in Ember CLI 4.12
Ember CLI
Ember CLI did not introduce new bug fixes, features or deprecations, but there were a few updates that added ember-modifier
and tracked-built-ins
to the app blueprint and there was one update addressing a dependency vulnerability.
Bug Fixes
Ember CLI 4.12 introduced 2 bug fixes.
- #10091 - Fix looking up the default blueprint for scoped addons
- #10192 - The
addon
command should throw when no addon name is provided
Features
Ember CLI 4.12 introduced 11 features.
- #10122 - Add Stylelint setup to
app
andaddon
blueprints - #10142 - Update ESLint to v8 in
app
andaddon
blueprints - #10157 - Exclude
ember-cli-terser
when generating apps using the--embroider
option - #10159 - Exclude
ember-cli-sri
when generating apps using the--embroider
option - #10161 - Remove NPM version checking
- #10169 - Remove
app.import
comment inapp
blueprint - #10172 - Lazy require heavier packages
- #10173 - Don't delete the newly-generated app directory when an error occurs
- #10180 - Update
ember-welcome-page
to v7 inapp
blueprint - #10188 - Update ESLint parser
ecmaVersion
tolatest
inapp
blueprint - #10189 - Add v4.8 LTS to
addon
blueprint - Remove v3.28 LTS andember-classic
scenario
Deprecations
Ember CLI 4.12 introduced 0 deprecations.
For more details on the changes in Ember CLI 4.12 and detailed upgrade
instructions, please review the Ember CLI 4.12.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.