Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deprecation: implement strict relationships #8115

Merged
merged 12 commits into from
Aug 12, 2022

Conversation

runspired
Copy link
Contributor

Implements emberjs/rfcs#739

Also begins internal work to enforce string IDs (not yet RFC'd) and to remove/deprecate private coerceId helper.

Release notes

Implements deprecations detailed in the linked RFC. Specifically relationships must now always

  • specify type
  • specify async
  • specify inverse

Of note, two additional accepted RFCs will further restrict relationship definitions and users should take this opportunity to prepare for that as well.

@github-actions
Copy link

github-actions bot commented Aug 11, 2022

Asset Size Report for ae272fb

Modern Builds

✅ EmberData shrank by -1.42 KB (-283.0 B compressed)

If any packages had changed sizes they would be listed here.

Changeset


EmberData +167.62 KB -1.42 KB (+35.12 KB -283.0 B compressed)
    @ember-data/model +45.74 KB -1.23 KB (+9.58 KB -246.02 B compressed)
        @ember-data/model/-private +45.26 KB -1.23 KB (+9.48 KB -246.02 B compressed)
    @ember-data/record-data +24.05 KB -190.0 B (+5.04 KB -36.98 B compressed)
        @ember-data/record-data/-private +24.05 KB -190.0 B (+5.04 KB -36.98 B compressed)

Full Asset Analysis (Modern)

Asset Size Report
=================


Library: EmberData
┌────────────┬─────────────┐
│  (index)   │   Values    │
├────────────┼─────────────┤
│   bytes    │ '167.62 KB' │
│ compressed │ '35.12 KB'  │
│  packages  │      8      │
│  modules   │     44      │
└────────────┴─────────────┘

Package: @ember-data/model
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '45.74 KB' │
│  compressed  │ '9.58 KB'  │
│ % Of Library │   '27.3'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/model/-private                        | 45.26 KB  | 9.48 KB    | 99.0          | 27.0
	@ember-data/model/index                           | 486.00 B  | 101.82 B   | 1.0           | 0.3

Package: @ember-data/store
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '43.39 KB' │
│  compressed  │ '9.09 KB'  │
│ % Of Library │   '25.9'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/store/-private                        | 42.39 KB  | 8.88 KB    | 97.7          | 25.3
	@ember-data/store/index                           | 1022.00 B | 214.12 B   | 2.3           | 0.6

Package: @ember-data/record-data
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '24.05 KB' │
│  compressed  │ '5.04 KB'  │
│ % Of Library │   '14.4'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/record-data/-private                  | 24.05 KB  | 5.04 KB    | 100.0         | 14.4

Package: @ember-data/serializer
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '20.42 KB' │
│  compressed  │ '4.28 KB'  │
│ % Of Library │   '12.2'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/serializer/json                       | 7.36 KB   | 1.54 KB    | 36.0          | 4.4
	@ember-data/serializer/-private                   | 5.60 KB   | 1.17 KB    | 27.4          | 3.3
	@ember-data/serializer/json-api                   | 3.79 KB   | 813.14 B   | 18.6          | 2.3
	@ember-data/serializer/rest                       | 2.87 KB   | 614.72 B   | 14.0          | 1.7
	@ember-data/serializer/index                      | 611.00 B  | 128.01 B   | 2.9           | 0.4
	@ember-data/serializer/transform                  | 215.00 B  | 45.04 B    | 1.0           | 0.1

Package: @ember-data/adapter
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '15.93 KB' │
│  compressed  │ '3.34 KB'  │
│ % Of Library │   '9.5'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/adapter/rest                          | 7.88 KB   | 1.65 KB    | 49.5          | 4.7
	@ember-data/adapter/-private                      | 3.79 KB   | 812.09 B   | 23.8          | 2.3
	@ember-data/adapter/error                         | 1.82 KB   | 390.96 B   | 11.4          | 1.1
	@ember-data/adapter/index                         | 1.41 KB   | 302.96 B   | 8.9           | 0.8
	@ember-data/adapter/json-api                      | 1.03 KB   | 221.87 B   | 6.5           | 0.6

Package: ember-data
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '8.66 KB' │
│  compressed  │ '1.81 KB' │
│ % Of Library │   '5.2'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-data/index                                  | 2.11 KB   | 452.35 B   | 24.4          | 1.3
	ember-data/-private                               | 1.75 KB   | 374.82 B   | 20.2          | 1.0
	ember-data/adapters/errors                        | 1.19 KB   | 254.98 B   | 13.7          | 0.7
	ember-data/setup-container                        | 368.00 B  | 77.10 B    | 4.2           | 0.2
	ember-data/relationships                          | 318.00 B  | 66.62 B    | 3.6           | 0.2
	ember-data/serializers/embedded-records-mixin     | 274.00 B  | 57.40 B    | 3.1           | 0.2
	ember-data/serializers/json-api                   | 251.00 B  | 52.58 B    | 2.8           | 0.1
	ember-data/adapters/json-api                      | 245.00 B  | 51.33 B    | 2.8           | 0.1
	ember-data/serializers/json                       | 243.00 B  | 50.91 B    | 2.7           | 0.1
	ember-data/serializers/rest                       | 243.00 B  | 50.91 B    | 2.7           | 0.1
	ember-data/transform                              | 241.00 B  | 50.49 B    | 2.7           | 0.1
	ember-data/adapters/rest                          | 237.00 B  | 49.65 B    | 2.7           | 0.1
	ember-data/serializer                             | 232.00 B  | 48.60 B    | 2.6           | 0.1
	ember-data/adapter                                | 226.00 B  | 47.35 B    | 2.5           | 0.1
	ember-data/model                                  | 222.00 B  | 46.51 B    | 2.5           | 0.1
	ember-data/store                                  | 222.00 B  | 46.51 B    | 2.5           | 0.1
	ember-data/attr                                   | 218.00 B  | 45.67 B    | 2.5           | 0.1
	ember-data/version                                | 161.00 B  | 33.73 B    | 1.8           | 0.1

Package: ember-inflector
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '6.67 KB' │
│  compressed  │ '1.40 KB' │
│ % Of Library │   '4.0'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-inflector/lib/system/inflector              | 2.96 KB   | 635.67 B   | 44.4          | 1.8
	ember-inflector/lib/system/inflections            | 1.59 KB   | 340.88 B   | 23.8          | 0.9
	ember-inflector/lib/system                        | 471.00 B  | 98.68 B    | 6.9           | 0.3
	ember-inflector/index                             | 379.00 B  | 79.40 B    | 5.6           | 0.2
	ember-inflector/lib/helpers/pluralize             | 369.00 B  | 77.31 B    | 5.4           | 0.2
	ember-inflector/lib/utils/make-helper             | 332.00 B  | 69.55 B    | 4.9           | 0.2
	ember-inflector/lib/system/string                 | 318.00 B  | 66.62 B    | 4.7           | 0.2
	ember-inflector/lib/helpers/singularize           | 296.00 B  | 62.01 B    | 4.3           | 0.2

Package: @ember-data/debug
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '2.77 KB'  │
│  compressed  │ '593.56 B' │
│ % Of Library │   '1.7'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/debug/index                           | 2.27 KB   | 487.75 B   | 82.2          | 1.4
	@ember-data/debug/setup                           | 505.00 B  | 105.80 B   | 17.8          | 0.3

Modern Builds (No Rollup)

☑️ EmberData has not changed in size

If any packages had changed sizes they would be listed here.

Changeset



Full Asset Analysis (Modern)

Asset Size Report
=================


Library: EmberData
┌────────────┬──────────┐
│  (index)   │  Values  │
├────────────┼──────────┤
│   bytes    │ '0.00 B' │
│ compressed │ '1.00 B' │
│  packages  │    0     │
│  modules   │    0     │
└────────────┴──────────┘

@github-actions
Copy link

github-actions bot commented Aug 12, 2022

Performance Report for ae272fb

Scenario - materialization: ☑️ Performance is stable

☑️ duration
phase no difference [-43ms to 13ms]
☑️ Phase [navigationStart] => [start-find-all]
phase no difference [-12ms to 10ms]
☑️ Phase [start-find-all] => [start-materialization]
phase no difference [-21ms to 4ms]
☑️ Phase [start-materialization] => [end-materialization]
phase no difference [-13ms to 6ms]
☑️ Phase [end-materialization] => [Test End]
phase no difference [-1ms to 1ms]

Scenario - unload: ☑️ Performance is stable

☑️ duration
phase no difference [-39ms to 9ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-24ms to 10ms]
☑️ Phase [start-push-payload] => [start-unload-records]
phase no difference [-21ms to 6ms]
☑️ Phase [start-unload-records] => [end-unload-records]
phase no difference [-5ms to 5ms]
☑️ Phase [end-unload-records] => [Test End]
phase no difference [-1ms to 0ms]

Scenario - destroy: ☑️ Performance is stable

☑️ duration
phase no difference [-27ms to 21ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-16ms to 18ms]
☑️ Phase [start-push-payload] => [start-destroy-records]
phase no difference [-20ms to 7ms]
☑️ Phase [start-destroy-records] => [end-destroy-records]
phase no difference [-8ms to 6ms]
☑️ Phase [end-destroy-records] => [Test End]
phase no difference [0ms to 1ms]

Scenario - add-children: ☑️ Performance is stable

☑️ duration
phase no difference [-19ms to 21ms]
☑️ Phase [navigationStart] => [start-push-initial-payload]
phase no difference [-18ms to 21ms]
☑️ Phase [start-push-initial-payload] => [start-push-update-payload]
phase no difference [-6ms to 6ms]
☑️ Phase [start-push-update-payload] => [end-push-update-payload]
phase no difference [-3ms to 2ms]
☑️ Phase [end-push-update-payload] => [Test End]
phase no difference [-1ms to 1ms]

Scenario - unused-relationships: ☑️ Performance is stable

☑️ duration
phase no difference [-38ms to 10ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-28ms to 8ms]
☑️ Phase [start-push-payload] => [end-push-payload]
phase no difference [-16ms to 8ms]
☑️ Phase [end-push-payload] => [Test End]
phase no difference [-2ms to 1ms]

@runspired runspired merged commit b6b5722 into master Aug 12, 2022
@delete-merged-branch delete-merged-branch bot deleted the runspired/implement-strict-relationships branch August 12, 2022 07:03
@runspired runspired added this to the 🔌 Unplug milestone Sep 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Completed
Development

Successfully merging this pull request may close these issues.

1 participant