Ember 6.8 Released
Today the Ember project is releasing version 6.8 of Ember.js and Ember CLI. This release of Ember.js is an LTS (Long Term Support) candidate. LTS candidates prioritize stability over the addition of new features, and have an extended support schedule.
A release of Ember is comprised of many projects: ember-source, ember-cli, and all the learning team projects. We follow a 6-week release train that includes alpha and beta cycles to ensure changes are well-tested. We encourage our community (especially addon authors) to help test the beta builds and report any bugs before they are published as a final release. The ember-try
addon is a great way to continuously test your projects against the latest Ember releases. While we only consider the release to be complete upon publication of the blog post, the 6-week cycle is anchored by the release of the ember-source package at the beginning of the process. Releases x.4, x.8 and x.12 will become an LTS candidate, so checkout Ember LTS Releases if you want to know more.
Ember.js
Ember.js is the core framework for building ambitious web applications.
Changes in Ember.js 6.8
Ember.js 6.8 is an incremental, backwards compatible release of Ember with bug fixes, performance improvements, and minor deprecations.
v6.8.0 of ember-source
is the first minor version of the package to be published to npm
with Trusted Publishing. We will be implementing this across all our packages.
At the bottom of the npm package page, you'll find a section labeled 'Provenance' that provides verification that the package contents were published from the source repository.
Bug fixes
Ember.js 6.8 introduces 1 bug fix.
- Removes unnecessary package ember-cli-htmlbars-inline-precompile from component-test blueprint
Features
Ember.js 6.8 introduces 2 new features.
renderComponent
The new renderComponent
API provides a powerful way to render components into any DOM element, making it easier to integrate components in other environments like d3, ag-grid, WYSIWYG editors, and more! This feature is particularly useful for micro applications, REPLs, and "islands"-based tools.
renderComponent
can be imported from @ember/renderer
and accepts a component definition along with configuration options:
import { renderComponent } from '@ember/renderer';
const Greeting = Hello {{@name}}!;
const result = renderComponent(Greeting, {
into: document.querySelector('#my-element'),
args: { name: 'World' }
});
// Clean up when done
result.destroy();
The API supports several configuration options including:
into
: The DOM element to render intoargs
: Arguments to pass to the component - these can be atrackedObject
owner
: Optional owner object for service access, (or minimal partial implementation of what your component needs)
You can read more about this on the page for RFC #1068
@ember/reactive/collections
Ember 6.8 introduces a new package @ember/reactive/collections
that provides built-in tracking utilities for common collections. This package includes tracked versions of JavaScript's native collection types: trackedArray
, trackedObject
, trackedMap
, trackedSet
, trackedWeakMap
, and trackedWeakSet
.
These utilities offer performance and ergonomics improvements over what has been used via public APIs.
import { trackedArray } from '@ember/reactive/collections';
const items = ['apple', 'banana'];
const addItem = (arr, item) => arr.push(item);
{{#let (trackedArray items) as |list|}}
{{#each list as |item|}}
{{item}}
{{/each}}
{{/let}}
You can read more about this on the page for RFC #1068
This feature was inspired by tracked-built-ins
and brings these essential reactivity primitives directly into the framework core.
Deprecations
Ember.js 6.8 introduces
For more details on changes in Ember.js 6.8, please review the Ember.js 6.8.0 release page.
EmberData
EmberData is the official data persistence library for Ember.js applications.
EmberData 5.7 has been released, and along with EmberData 5.6, 5.5 and 5.4, there are many updates that will be more extensively covered in a full stand alone blog post.
EmberData is also in the process of rebranding to WarpDrive. Stay tuned for more info!
To learn about the motivation and goals for upcoming changes to EmberData in 5.x, read the blog post, EmberData 5.X Update.
This will help you form the mental model of what to expect across the 5.x series, and understand deprecation removals in the context of the upcoming goals.
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.
It is not required to keep Ember CLI versions in sync with Ember and EmberData. 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 6.8
Bug fixes
Ember CLI 6.8 introduced
Features
Ember CLI 6.8 introduces
Deprecations
Ember CLI 6.8 introduces
For more details on the changes in Ember CLI 6.8 and detailed upgrade instructions, please review the Ember CLI 6.8.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.