From 6b9350b3c35bb851d18e3797b7f5775e46bcbbf6 Mon Sep 17 00:00:00 2001 From: Anne-Greeth van Herwijnen Date: Sun, 11 Sep 2022 19:52:24 +0200 Subject: [PATCH 1/5] Release blog 4.7 --- content/ember-released-4-7.md | 135 ++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 content/ember-released-4-7.md diff --git a/content/ember-released-4-7.md b/content/ember-released-4-7.md new file mode 100644 index 000000000..bd209c8d6 --- /dev/null +++ b/content/ember-released-4-7.md @@ -0,0 +1,135 @@ +--- +title: Ember 4.7 Released +authors: + - the-ember-learning-team +date: 2022-09-5T00:00:00.000Z +tags: + - releases + - '2022' + - version-4-x +--- + +Today the Ember project is releasing version 4.7 of Ember.js, Ember Data, and Ember CLI. + +This release kicks off the 4.7 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](https://github.com/ember-cli/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: + +- [Release Dashboard](http://emberjs.com/releases/) +- [The Ember Release Cycle](https://blog.emberjs.com/new-ember-release-process/) +- [The Ember Project](https://blog.emberjs.com/ember-project-at-2-0/) +- [Ember LTS Releases](https://blog.emberjs.com/announcing-embers-first-lts/) + +--- + +## Ember.js + +Ember.js is the core framework for building ambitious web applications. + +### Changes in Ember.js 4.7 + +Ember.js 4.7 is an incremental, backwards compatible release of Ember with bug fixes, performance improvements, and minor deprecations. + +#### Bug Fixes + +Ember.js 4.7 introduced 1 bug fix. + +- [Replacing Firefox detection that used a deprecated browser API](https://github.com/emberjs/ember.js/pull/20126) + +#### Features + +Ember.js 4.7 introduced 0 features. + +#### Deprecations + +Ember.js 4.7 introduced 0 deprecations. + + + +For more details on changes in Ember.js 4.7, please review the [Ember.js 4.7.0 release page](https://github.com/emberjs/ember.js/releases/tag/v4.7.0). + +--- + +## Ember Data + +Ember Data is the official data persistence library for Ember.js applications. + +### Changes in Ember Data 4.7 + +Version 4.7 implements a "2.1" cache spec while deprecating the v1 cache spec. This spec differs somewhat from the [original 2.0 RFC](https://rfcs.emberjs.com/id/0461-ember-data-singleton-record-data), an updated RFC specifying the modifications will be published soon. Users looking to migrate to the 2.1 cache should expect that the finalized version of 2.1 enforces that the cache is always a singleton (vs merely allowed to be a singleton), and that data provided to the store and queries to the store from the cache should always contain identifiers in their stable form. This latter point is enforced in 4.7, the former is not yet enforced. + +#### Bug Fixes + +Ember Data 4.7 introduced 8 bug fixes and some tests and documentation improvements. Additional details are in the [release notes](https://github.com/emberjs/data/releases/tag/v4.7.1 + +- [#8089](https://github.com/emberjs/data/pull/8089) Unpin yarn for consumers +- [#8108](https://github.com/emberjs/data/pull/8108) Fix earlier versions of node-14 +- [#8118](https://github.com/emberjs/data/pull/8118) Reopen deprecation should properly pass original arguments +- [#8113](https://github.com/emberjs/data/pull/8113) Account for multi-options-per-identifer possibility +- [#8109](https://github.com/emberjs/data/pull/8109) Add optional polyfill for crypto.randomUUID +- [#8116](https://github.com/emberjs/data/pull/8116) Clear subscriptions once unsubscribed, don't unnecessarily churn on subscriptions +- [#8128](https://github.com/emberjs/data/pull/8128) `backgroundReloads` should not affect `recordIsLoaded` +- [#8159](https://github.com/emberjs/data/pull/8159) uuid polyfill logic (@runspired) + +#### Features + +Ember Data 4.7 introduced 2 features. + +- [#7955](https://github.com/emberjs/data/pull/7955) Explicit Polymorphic Relationship Support [emberjs/rfcs#793](https://rfcs.emberjs.com/id/0793-polymporphic-relations-without-inheritance) +- [#8134](https://github.com/emberjs/data/pull/8134) The return values of hasMany relationships, peekAll, findAll and query are now proxies to native arrays and as such all native array APIs are now usable. These objects will act fully as if they are native arrays. Restrictions on immutability of the result of peekAll and query still apply ([RFC 846](https://rfcs.emberjs.com/id/0846-ember-data-deprecate-proxies)). + +#### Deprecations + +Ember Data 4.7 introduced 8 deprecations. Additional details are in the [release notes](https://github.com/emberjs/data/releases/tag/v4.7.1 + +- [#8093](https://github.com/emberjs/data/pull/8093) Implement helper deprecations ([RFC 742](https://rfcs.emberjs.com/id/0742-ember-data-deprecate-helper-functions)). +- [#8092](https://github.com/emberjs/data/pull/8092) Deprecate `Model.reopen`/`reopenClass` and eager static fields lookups (implements [RFC 738](https://rfcs.emberjs.com/id/0738-ember-data-deprecate-model-reopen) and [RFC 741](https://rfcs.emberjs.com/id/0741-ember-data-deprecate-model-static-field-access-without-lookup)). +- [#8084](https://github.com/emberjs/data/pull/8084) Eliminate InternalModel, nearly all private API's have undergone significant change, if your app previously used these APIs the most likely refactor is to use a custom model or a custom cache. +- [#8115](https://github.com/emberjs/data/pull/8115) Implement strict relationships ([RFC 739](https://rfcs.emberjs.com/id/0739-ember-data-deprecate-non-strict-relationships)). + +Support for the `toJSON` method on Ember Data records has been removed. It was deprecated in `3.x` and slated for removal in `4.x`. +If your app uses this method, follow the [deprecation guide](https://deprecations.emberjs.com/ember-data/v3.x/#toc_record-toJSON). + +For more details on changes in Ember Data 4.7, please review the +[Ember Data 4.7.1 commits](https://github.com/emberjs/data/compare/v4.1.0...v4.7.1). + +--- + +## 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: + +```bash +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](https://github.com/ember-cli/ember-cli-update). + +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 4.7 + +#### Bug Fixes + +Ember CLI 4.7 introduced 1 bug fix. + +- [Rebuild failures no longer make the ember-cli process exit.](https://github.com/ember-cli/ember-cli/pull/9987) + +#### Features + +Ember CLI 4.7 introduced 0 features. + +#### Deprecations + +Ember CLI 4.7 introduced 0 deprecations. + +For more details on the changes in Ember CLI 4.7 and detailed upgrade +instructions, please review the [Ember CLI 4.7.0 release page](https://github.com/ember-cli/ember-cli/releases/tag/v4.7.0). + +## 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. From 56146a5e5e95489654d3fe8b704fbc7357c8e40e Mon Sep 17 00:00:00 2001 From: Anne-Greeth van Herwijnen Date: Sun, 11 Sep 2022 20:00:34 +0200 Subject: [PATCH 2/5] Fix linting --- content/ember-released-4-7.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/ember-released-4-7.md b/content/ember-released-4-7.md index bd209c8d6..e45b3dbe3 100644 --- a/content/ember-released-4-7.md +++ b/content/ember-released-4-7.md @@ -34,7 +34,7 @@ Ember.js 4.7 is an incremental, backwards compatible release of Ember with bug f Ember.js 4.7 introduced 1 bug fix. -- [Replacing Firefox detection that used a deprecated browser API](https://github.com/emberjs/ember.js/pull/20126) +- [Replacing Firefox detection that used a deprecated browser API](https://github.com/emberjs/ember.js/pull/20126) #### Features @@ -60,7 +60,7 @@ Version 4.7 implements a "2.1" cache spec while deprecating the v1 cache spec. T #### Bug Fixes -Ember Data 4.7 introduced 8 bug fixes and some tests and documentation improvements. Additional details are in the [release notes](https://github.com/emberjs/data/releases/tag/v4.7.1 +Ember Data 4.7 introduced 8 bug fixes and some tests and documentation improvements. Additional details are in the [release notes](https://github.com/emberjs/data/releases/tag/v4.7.1). - [#8089](https://github.com/emberjs/data/pull/8089) Unpin yarn for consumers - [#8108](https://github.com/emberjs/data/pull/8108) Fix earlier versions of node-14 @@ -80,7 +80,7 @@ Ember Data 4.7 introduced 2 features. #### Deprecations -Ember Data 4.7 introduced 8 deprecations. Additional details are in the [release notes](https://github.com/emberjs/data/releases/tag/v4.7.1 +Ember Data 4.7 introduced 8 deprecations. Additional details are in the [release notes](https://github.com/emberjs/data/releases/tag/v4.7.1). - [#8093](https://github.com/emberjs/data/pull/8093) Implement helper deprecations ([RFC 742](https://rfcs.emberjs.com/id/0742-ember-data-deprecate-helper-functions)). - [#8092](https://github.com/emberjs/data/pull/8092) Deprecate `Model.reopen`/`reopenClass` and eager static fields lookups (implements [RFC 738](https://rfcs.emberjs.com/id/0738-ember-data-deprecate-model-reopen) and [RFC 741](https://rfcs.emberjs.com/id/0741-ember-data-deprecate-model-static-field-access-without-lookup)). From db7201e76100ccb12b3a0563ac6c67d86ebd7dad Mon Sep 17 00:00:00 2001 From: Anne-Greeth van Herwijnen Date: Tue, 13 Sep 2022 09:35:29 +0200 Subject: [PATCH 3/5] Update with Runspired's comments --- content/ember-released-4-7.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/content/ember-released-4-7.md b/content/ember-released-4-7.md index e45b3dbe3..589727a79 100644 --- a/content/ember-released-4-7.md +++ b/content/ember-released-4-7.md @@ -11,7 +11,7 @@ tags: Today the Ember project is releasing version 4.7 of Ember.js, Ember Data, and Ember CLI. -This release kicks off the 4.7 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](https://github.com/ember-cli/ember-try) addon is a great way to continuously test your projects against the latest Ember releases. +This release kicks off the 4.8 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](https://github.com/ember-cli/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: @@ -58,6 +58,19 @@ Ember Data is the official data persistence library for Ember.js applications. Version 4.7 implements a "2.1" cache spec while deprecating the v1 cache spec. This spec differs somewhat from the [original 2.0 RFC](https://rfcs.emberjs.com/id/0461-ember-data-singleton-record-data), an updated RFC specifying the modifications will be published soon. Users looking to migrate to the 2.1 cache should expect that the finalized version of 2.1 enforces that the cache is always a singleton (vs merely allowed to be a singleton), and that data provided to the store and queries to the store from the cache should always contain identifiers in their stable form. This latter point is enforced in 4.7, the former is not yet enforced. +*Performance Improvements* + +> Note: many performance improvements are gated by deprecation removal, meaning that you need to resolve all deprecations for EmberData 4.7 and mark your app as compatible with that version in order to opt in to the fastest codepaths. +All applications should observe significant speed improvements when using EmberData 4.7. The below call-outs are in relation to EmberData 4.6. + +- Pushing new data into the cache is now ~33% faster +- Accessing the LiveArray (peekAll / findAll) for the first time is now 97% faster +- Initial Access of Related Records is now ~80% faster +- Destroying all records (e.g. also sending an API request) in a loop is 62% faster +- Unloading all records (of all types) is ~98% faster + +Read more in the [release notes](https://github.com/emberjs/data/releases/tag/v4.7.1). + #### Bug Fixes Ember Data 4.7 introduced 8 bug fixes and some tests and documentation improvements. Additional details are in the [release notes](https://github.com/emberjs/data/releases/tag/v4.7.1). @@ -80,16 +93,13 @@ Ember Data 4.7 introduced 2 features. #### Deprecations -Ember Data 4.7 introduced 8 deprecations. Additional details are in the [release notes](https://github.com/emberjs/data/releases/tag/v4.7.1). +Ember Data 4.7 introduced 13 deprecations. Additional details are in the [release notes](https://github.com/emberjs/data/releases/tag/v4.7.1). - [#8093](https://github.com/emberjs/data/pull/8093) Implement helper deprecations ([RFC 742](https://rfcs.emberjs.com/id/0742-ember-data-deprecate-helper-functions)). - [#8092](https://github.com/emberjs/data/pull/8092) Deprecate `Model.reopen`/`reopenClass` and eager static fields lookups (implements [RFC 738](https://rfcs.emberjs.com/id/0738-ember-data-deprecate-model-reopen) and [RFC 741](https://rfcs.emberjs.com/id/0741-ember-data-deprecate-model-static-field-access-without-lookup)). - [#8084](https://github.com/emberjs/data/pull/8084) Eliminate InternalModel, nearly all private API's have undergone significant change, if your app previously used these APIs the most likely refactor is to use a custom model or a custom cache. - [#8115](https://github.com/emberjs/data/pull/8115) Implement strict relationships ([RFC 739](https://rfcs.emberjs.com/id/0739-ember-data-deprecate-non-strict-relationships)). -Support for the `toJSON` method on Ember Data records has been removed. It was deprecated in `3.x` and slated for removal in `4.x`. -If your app uses this method, follow the [deprecation guide](https://deprecations.emberjs.com/ember-data/v3.x/#toc_record-toJSON). - For more details on changes in Ember Data 4.7, please review the [Ember Data 4.7.1 commits](https://github.com/emberjs/data/compare/v4.1.0...v4.7.1). From 97b3fad679bb1666190f9dadfc37553fe637233d Mon Sep 17 00:00:00 2001 From: Anne-Greeth Schot-van Herwijnen Date: Tue, 13 Sep 2022 09:44:22 +0200 Subject: [PATCH 4/5] Convince Alex that it's okay --- content/ember-released-4-7.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/ember-released-4-7.md b/content/ember-released-4-7.md index 589727a79..8b0de49d5 100644 --- a/content/ember-released-4-7.md +++ b/content/ember-released-4-7.md @@ -58,8 +58,8 @@ Ember Data is the official data persistence library for Ember.js applications. Version 4.7 implements a "2.1" cache spec while deprecating the v1 cache spec. This spec differs somewhat from the [original 2.0 RFC](https://rfcs.emberjs.com/id/0461-ember-data-singleton-record-data), an updated RFC specifying the modifications will be published soon. Users looking to migrate to the 2.1 cache should expect that the finalized version of 2.1 enforces that the cache is always a singleton (vs merely allowed to be a singleton), and that data provided to the store and queries to the store from the cache should always contain identifiers in their stable form. This latter point is enforced in 4.7, the former is not yet enforced. -*Performance Improvements* - + +**Performance Improvements** > Note: many performance improvements are gated by deprecation removal, meaning that you need to resolve all deprecations for EmberData 4.7 and mark your app as compatible with that version in order to opt in to the fastest codepaths. All applications should observe significant speed improvements when using EmberData 4.7. The below call-outs are in relation to EmberData 4.6. From 2138ec464f0dea9e383635abd800e24c2cb0da84 Mon Sep 17 00:00:00 2001 From: Chris Manson Date: Tue, 13 Sep 2022 21:21:15 +0100 Subject: [PATCH 5/5] fixing markdown lint error --- content/ember-released-4-7.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ember-released-4-7.md b/content/ember-released-4-7.md index 8b0de49d5..b35d63898 100644 --- a/content/ember-released-4-7.md +++ b/content/ember-released-4-7.md @@ -58,7 +58,7 @@ Ember Data is the official data persistence library for Ember.js applications. Version 4.7 implements a "2.1" cache spec while deprecating the v1 cache spec. This spec differs somewhat from the [original 2.0 RFC](https://rfcs.emberjs.com/id/0461-ember-data-singleton-record-data), an updated RFC specifying the modifications will be published soon. Users looking to migrate to the 2.1 cache should expect that the finalized version of 2.1 enforces that the cache is always a singleton (vs merely allowed to be a singleton), and that data provided to the store and queries to the store from the cache should always contain identifiers in their stable form. This latter point is enforced in 4.7, the former is not yet enforced. - + **Performance Improvements** > Note: many performance improvements are gated by deprecation removal, meaning that you need to resolve all deprecations for EmberData 4.7 and mark your app as compatible with that version in order to opt in to the fastest codepaths. All applications should observe significant speed improvements when using EmberData 4.7. The below call-outs are in relation to EmberData 4.6.