Skip to content

v4.5.0 Love of Mine ♥️

Compare
Choose a tag to compare
@runspired runspired released this 27 Jul 23:35

v4.5.0 (2022-07-27)

Version 4.5 includes a number of new deprecations, a significant internal refactoring of the store architecture and several bug fixes.

Of note:

  1. Users of just the core of EmberData may expect their builds to be 35-50% smaller. This is due to most of the legacy support for @ember-data/model having now found its final location at home in that package instead of within the @ember-data/store package. The size of @ember-data/store is reduced from ~16kb compressed to ~9.5kb compressed, potentially a little less depending on what deprecations are resolved and what other packages are present. We expect the core to continue to shrink as we complete the final stages of removing InternalModel, complete implementations for recently accepted deprecation RFCs, and introduce RecordDataV2.

  2. Users of private store APIs may find these APIs have now been deprecated or removed. Internal restructuring will be high the next 6 months as we polish off the removal of InternalModel and continue to simplify codepaths which that removal allows us to do. All but a very few private methods have been entirely eliminated from the store.

New Deprecations target 5.0 and include:

  • deprecating some internal usage of RSVP.Promise that applications may have become dependent on if their tests are leaky
  • deprecating the type property on snapshots (which would lookup the model class).
  • deprecating store.find, a private method that has been maintained in case users accidentally fell into using ember's hidden autofetch behavior in routes
  • deprecating store.hasRecordForId, as peekRecord is generally more useful and provides the same information (and more).
  • deprecating store.recordWasInvalid, an unused internal api that ember-model-validations appears to be using.
  • deprecating passing strings to the schema lookup functions attributesDefinitionFor and relationshipsDefinitionFor, these APIs now expect an object with at least a type property representing the model name.
  • deprecating the -json-api fallback adapter, a hidden behavior that provided an adapter if the application failed to define one.

As always deprecated code can be eliminated from the build output by specifying the compatWith arg on the emberData configuration in your app.

🚀 Enhancement

  • -ember-data, private-build-infra, store

🌲 New Deprecation

  • -ember-data, adapter, model, private-build-infra, record-data, serializer, store, unpublished-model-encapsulation-test-app

🐛 Bug Fix

  • -ember-data, adapter
  • -ember-data, store
  • -ember-data, adapter, canary-features, debug, model, private-build-infra, record-data, serializer, store, unpublished-adapter-encapsulation-test-app, unpublished-debug-encapsulation-test-app, unpublished-fastboot-test-app, unpublished-model-encapsulation-test-app, unpublished-record-data-encapsulation-test-app, unpublished-relationship-performance-test-app, unpublished-serializer-encapsulation-test-app, unpublished-test-infra
  • -ember-data, debug
  • adapter, model, private-build-infra, serializer
    • #8013 [BUGFIX release] Fix generated import paths for test setup functions in addons (@bertdeblock)
  • -ember-data, model, store
  • -ember-data
    • #7902 test for async hasMany does not trigger relationship fetch (@snewcomer)
  • serializer
    • #7854 fix: pass correct args to keyFor<Attribute|Relationship> when normalizing (@runspired)
  • -ember-data, model

📝 Documentation

  • -ember-data, adapter, model, private-build-infra, record-data, serializer, store, unpublished-model-encapsulation-test-app
  • model
  • #7984 Add LICENSE.md (@ddzz)

🚿 Deprecation Removal

  • -ember-data, adapter, debug, model, private-build-infra, record-data, store, unpublished-test-infra
  • -ember-data, model, record-data, store, unpublished-test-infra
  • -ember-data, adapter, debug, model, record-data, serializer, store, unpublished-adapter-encapsulation-test-app, unpublished-debug-encapsulation-test-app, unpublished-fastboot-test-app, unpublished-model-encapsulation-test-app, unpublished-record-data-encapsulation-test-app, unpublished-relationship-performance-test-app, unpublished-serializer-encapsulation-test-app, unpublished-test-infra
  • -ember-data, adapter, model, store
  • -ember-data
  • -ember-data, adapter, model, record-data, serializer, store, unpublished-adapter-encapsulation-test-app, unpublished-debug-encapsulation-test-app, unpublished-fastboot-test-app, unpublished-model-encapsulation-test-app, unpublished-record-data-encapsulation-test-app, unpublished-relationship-performance-test-app, unpublished-serializer-encapsulation-test-app, unpublished-test-infra
  • -ember-data, store

🥅 Test

  • -ember-data, adapter, canary-features, debug, model, private-build-infra, record-data, serializer, store, unpublished-adapter-encapsulation-test-app, unpublished-debug-encapsulation-test-app, unpublished-eslint-rules, unpublished-fastboot-test-app, unpublished-model-encapsulation-test-app, unpublished-record-data-encapsulation-test-app, unpublished-relationship-performance-test-app, unpublished-serializer-encapsulation-test-app, unpublished-test-infra
  • -ember-data

🏠 Internal

  • -ember-data, adapter, debug, model, private-build-infra, record-data, store, unpublished-test-infra
  • -ember-data, adapter, model, private-build-infra, record-data, serializer, store, unpublished-model-encapsulation-test-app
  • Other
  • Other
    • #7982 Add GitHub Actions to Dependabot and update actions (@ddzz)
    • #8026 Deactivate Perf Benchmarks until Fixed (@runspired)
  • -ember-data, adapter, canary-features, debug, model, private-build-infra, record-data, serializer, store, unpublished-adapter-encapsulation-test-app, unpublished-debug-encapsulation-test-app, unpublished-eslint-rules, unpublished-fastboot-test-app, unpublished-model-encapsulation-test-app, unpublished-record-data-encapsulation-test-app, unpublished-relationship-performance-test-app, unpublished-serializer-encapsulation-test-app, unpublished-test-infra
  • -ember-data, adapter, model, private-build-infra, record-data, store
  • -ember-data

Committers: 10