Ember 3.20 released


Today, the Ember project released version 3.20 of Ember.js, Ember Data, and Ember CLI. This version of Ember.js is the LTS (Long Term Support) release candidate. LTS candidates prioritize stability rather than adding new features, and have an extended support timeline.

This version started the 3.21 test cycle of all sub-projects. We encourage our community (especially plugin authors) to help test these beta versions and report any bugs before they are released as the final version in six weeks.This Embers try Plugins are a great way to continuously test your project against the latest Ember version.

You can read more about our general publishing process here:


Ember.js

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

Changes in Ember.js 3.20

Ember.js 3.20 is an incremental, backward compatible version of Ember with bug fixes, performance improvements, and a small number of deprecations.

Upgrade the Ember app to v3.20 Should also be updated @glimmer/component to v1.0.1 Avoid coming from @glimmer/component Package use of private API.

New features (1)

{{in-element}}

Have you ever wished to be able to render a component somewhere outside of the normal HTML flow?To solve this problem, Ember.js now provides {{in-element}} The helper is used as a public API.If you have used community plugins, for example Embers Wormhole or Man elsewhere, You may be familiar with the challenge {{in-element}} Aimed at solving.

To use the helper, pass the DOM element to the target (this.myDestinationElement In the example below) and a block to be rendered:

{{#in-element this.myDestinationElement}}
  <div>Some content</div>
{{/in-element}}

The behavior of this new public API is slightly different from the private API:

Developers should use public APIs, {{in-element}}And stop using {{-in-element}}.

Look RFC 287 More information about the motivation for this new feature.

Deprecated (1)

Meta.prototype.setSourceDestroyed with Meta.prototype.setSourceDestroying

previous version @glimmer/component The package depends on this intimate API, which is now deprecated.To resolve deprecation warnings in your own apps and plugins, please update your version @glimmer/component at least v1.0.1.

When the API will be removed in the future, a deprecation will be added to Ember.js. Each public API deprecation has an entry in the deprecation guide that describes the migration path to a more stable API. Before the major version of the framework is released, the deprecated public API will not be removed.

Consider using ember-cli-deprecated-workflow addon If you want to upgrade your application without immediately solving the deprecation issue.

For more details about the changes in Ember.js 3.20, please check Ember.js 3.20.0 release page.


Embers data

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

Ember data 3.20 changes

In addition to new features, this version also includes some performance optimizations for accessing related records and updating many-to-many relationships.

New features (1)

isEmbeddedRecordsMixinCompatible

Previously, if you used EmbeddedRecordsMixin with JSONAPISerializer At the same time, the application will display a warning stating that this combination is invalid. However, some developers may have theoretically compatible APIs.For these use cases, you can now set this.isEmbeddedRecordsMixinCompatible = true In the serializer, you will no longer see the warning.

For incorrect use EmbeddedRecordsMixin with JSONAPISerializer Together, without setting a boolean, the application will now assert instead of warning.

Deprecated (0)

There are no new deprecations introduced in Ember Data 3.20.

For more details about the changes in Ember Data 3.20, please check
Ember Data 3.20.0 release page.


Ember command line interface

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

Upgrade Ember CLI

You can use the ember-cli-update project to easily upgrade Ember CLI:

npx ember-cli-update

This utility will help you update your application or plug-in to the latest Ember CLI version. You may encounter merge conflicts, where the default behavior is to let you resolve the conflict yourself.For more information ember-cli-update Item, see GitHub Readme.

Although it is recommended to keep the Ember CLI version synchronized with Ember and Ember Data, it is not required. After updating ember-cli, you can keep the current version of Ember or Ember Data by editing package.json Revert changes to contained lines ember-source with ember-data.

Changes in Ember CLI 3.20

New features (1)

Sync Blueprint

Applications and plugins can be updated ember-cli The version is in their app without affecting the future ember-cli-update run.

Before this new feature, ember-cli-update Use current version ember-cli inside package.json Determine which version to try to update from.Unfortunately, this means that if you want to update your ember-cli If you do not run the updated version of the full blueprint at the same time, it will be more difficult for you to update the general project structure in the future.

see Synchronization Blueprint RFC Learn more about the motivation and design of this feature!

Depreciation (2)

  • Usage on node 13 will now issue a warning
  • usage of PACKAGER Experiments are deprecated.This will only affect the selection settings EMBER_CLI_PACKAGER Environment variables.

For more details about the changes in Ember CLI 3.20 and detailed upgrade instructions, please check Ember CLI 3.20.0 release page.

thank you!

As an ambitious community-driven open source project, each of these releases reminds us that without your continued support, the Ember project is impossible to achieve. We are very grateful for the efforts of our contributors.

Leave a Reply

Your email address will not be published. Required fields are marked *