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

FEAT: Explicit Polymorphic Relationship Support [emberjs/rfcs#793] #7955

Merged
merged 7 commits into from
Sep 2, 2022

Conversation

runspired
Copy link
Contributor

@runspired runspired commented Apr 16, 2022

Implements emberjs/rfcs#793

Note, these are mostly covered ad-hoc by other portions of the test suite, but we should take the opportunity to write clear scoped tests:

  • review polymorphic belongsTo inverse-null test
  • review polymorphic belongsTo with inverse test
  • test belongsTo inverse-null allows any type
  • test polymorphic to polymorphic belongsTo
  • test polymorphic to polymorphic hasMany
  • test polymorphic hasMany inverse null
  • test polymorphic hasMany with inverse
  • test using schema service to provide abstract type info
  • adds support for explicit polymorphism
  • deprecates non-explicit polymorphism

resolves #8150 by introducing the sync API to the cache which currently takes one operation: MergeIdentifier allowing it to recombine data as desired. The current implementation of merging could probably be enhanced quite a bit.

@runspired runspired added 🎯 canary PR is targeting canary (default) 🏷️ feat This PR introduces a new feature labels Apr 16, 2022
@runspired runspired changed the title begin work on emberjs/rfcs#793 FEAT: Explicit Polymorphic Relationship Support [emberjs/rfcs#793] Apr 16, 2022
@github-actions
Copy link

github-actions bot commented Apr 16, 2022

Asset Size Report for 5255537

Modern Builds

🛑 The size of the library EmberData has increased by +2.06 KB (+441.0 B compressed) which exceeds the failure threshold of 75 bytes.

Warnings

⚠️ The uncompressed size of the package @ember-data/model has increased by +40.0 B.
⚠️ The uncompressed size of the package @ember-data/store has increased by +673.0 B.
⚠️ The uncompressed size of the package @ember-data/record-data has increased by +1.36 KB.

Changeset


EmberData 165.17 KB +2.06 KB (35.29 KB +441.0 B compressed)
    @ember-data/model 44.75 KB +40.0 B (9.56 KB +8.37 B compressed)
        @ember-data/model/-private 44.27 KB +40.0 B (9.46 KB +8.37 B compressed)
    @ember-data/store 42.96 KB +673.0 B (9.18 KB +140.79 B compressed)
        @ember-data/store/-private 41.96 KB +673.0 B (8.97 KB +140.79 B compressed)
    @ember-data/record-data 23.36 KB +1.36 KB (4.99 KB +291.84 B compressed)
        @ember-data/record-data/-private 23.36 KB +1.36 KB (4.99 KB +291.84 B compressed)

Full Asset Analysis (Modern)

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


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

Package: @ember-data/model
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '44.75 KB' │
│  compressed  │ '9.56 KB'  │
│ % Of Library │   '27.1'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/model/-private                        | 44.27 KB  | 9.46 KB    | 98.9          | 26.8
	@ember-data/model/index                           | 486.00 B  | 103.84 B   | 1.1           | 0.3

Package: @ember-data/store
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '42.96 KB' │
│  compressed  │ '9.18 KB'  │
│ % Of Library │   '26.0'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/store/-private                        | 41.96 KB  | 8.97 KB    | 97.7          | 25.4
	@ember-data/store/index                           | 1022.00 B | 218.37 B   | 2.3           | 0.6

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

Package: @ember-data/serializer
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '20.42 KB' │
│  compressed  │ '4.36 KB'  │
│ % Of Library │   '12.4'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/serializer/json                       | 7.36 KB   | 1.57 KB    | 36.0          | 4.5
	@ember-data/serializer/-private                   | 5.60 KB   | 1.20 KB    | 27.4          | 3.4
	@ember-data/serializer/json-api                   | 3.79 KB   | 829.26 B   | 18.6          | 2.3
	@ember-data/serializer/rest                       | 2.87 KB   | 626.91 B   | 14.0          | 1.7
	@ember-data/serializer/index                      | 611.00 B  | 130.55 B   | 2.9           | 0.4
	@ember-data/serializer/transform                  | 215.00 B  | 45.93 B    | 1.0           | 0.1

Package: @ember-data/adapter
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '15.93 KB' │
│  compressed  │ '3.40 KB'  │
│ % Of Library │   '9.6'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/adapter/rest                          | 7.88 KB   | 1.68 KB    | 49.5          | 4.8
	@ember-data/adapter/-private                      | 3.79 KB   | 828.19 B   | 23.8          | 2.3
	@ember-data/adapter/error                         | 1.82 KB   | 398.71 B   | 11.4          | 1.1
	@ember-data/adapter/index                         | 1.41 KB   | 308.96 B   | 8.9           | 0.9
	@ember-data/adapter/json-api                      | 1.03 KB   | 226.27 B   | 6.5           | 0.6

Package: ember-data
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '8.32 KB' │
│  compressed  │ '1.78 KB' │
│ % Of Library │   '5.0'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-data/index                                  | 1.98 KB   | 434.17 B   | 23.8          | 1.2
	ember-data/-private                               | 1.53 KB   | 335.67 B   | 18.4          | 0.9
	ember-data/adapters/errors                        | 1.19 KB   | 260.03 B   | 14.3          | 0.7
	ember-data/setup-container                        | 368.00 B  | 78.63 B    | 4.3           | 0.2
	ember-data/relationships                          | 318.00 B  | 67.94 B    | 3.7           | 0.2
	ember-data/serializers/embedded-records-mixin     | 274.00 B  | 58.54 B    | 3.2           | 0.2
	ember-data/serializers/json-api                   | 251.00 B  | 53.63 B    | 2.9           | 0.1
	ember-data/adapters/json-api                      | 245.00 B  | 52.34 B    | 2.9           | 0.1
	ember-data/serializers/json                       | 243.00 B  | 51.92 B    | 2.9           | 0.1
	ember-data/serializers/rest                       | 243.00 B  | 51.92 B    | 2.9           | 0.1
	ember-data/transform                              | 241.00 B  | 51.49 B    | 2.8           | 0.1
	ember-data/adapters/rest                          | 237.00 B  | 50.64 B    | 2.8           | 0.1
	ember-data/serializer                             | 232.00 B  | 49.57 B    | 2.7           | 0.1
	ember-data/adapter                                | 226.00 B  | 48.28 B    | 2.7           | 0.1
	ember-data/model                                  | 222.00 B  | 47.43 B    | 2.6           | 0.1
	ember-data/store                                  | 222.00 B  | 47.43 B    | 2.6           | 0.1
	ember-data/attr                                   | 218.00 B  | 46.58 B    | 2.6           | 0.1
	ember-data/version                                | 161.00 B  | 34.40 B    | 1.9           | 0.1

Package: ember-inflector
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '6.67 KB' │
│  compressed  │ '1.42 KB' │
│ % Of Library │   '4.0'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-inflector/lib/system/inflector              | 2.96 KB   | 648.27 B   | 44.4          | 1.8
	ember-inflector/lib/system/inflections            | 1.59 KB   | 347.64 B   | 23.8          | 1.0
	ember-inflector/lib/system                        | 471.00 B  | 100.63 B   | 6.9           | 0.3
	ember-inflector/index                             | 379.00 B  | 80.98 B    | 5.6           | 0.2
	ember-inflector/lib/helpers/pluralize             | 369.00 B  | 78.84 B    | 5.4           | 0.2
	ember-inflector/lib/utils/make-helper             | 332.00 B  | 70.93 B    | 4.9           | 0.2
	ember-inflector/lib/system/string                 | 318.00 B  | 67.94 B    | 4.7           | 0.2
	ember-inflector/lib/helpers/singularize           | 296.00 B  | 63.24 B    | 4.3           | 0.2

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

Modern Builds (No Rollup)

🛑 The size of the library EmberData has increased by +2.01 KB (+413.0 B compressed) which exceeds the failure threshold of 75 bytes.

Warnings

⚠️ The uncompressed size of the package @ember-data/store has increased by +184.0 B.
⚠️ The uncompressed size of the package @ember-data/model has increased by +45.0 B.
⚠️ The uncompressed size of the package @ember-data/record-data has increased by +1.79 KB.

Changeset


EmberData 204.13 KB +2.01 KB (39.0 KB +413.0 B compressed)
    @ember-data/store 64.03 KB +184.0 B (12.23 KB +36.94 B compressed)
        @ember-data/store/-private/store-service 10.59 KB -105.0 B (2.02 KB -21.08 B compressed)
        @ember-data/store/-private/managers/record-data-manager 7.9 KB +131.0 B (1.51 KB +26.3 B compressed)
        @ember-data/store/-private/caches/instance-cache 5.9 KB +140.0 B (1.13 KB +28.11 B compressed)
        @ember-data/store/-private/caches/identifier-cache 3.66 KB +18.0 B (716.35 B +3.61 B compressed)
    @ember-data/model 51.09 KB +45.0 B (9.76 KB +9.04 B compressed)
        @ember-data/model/-private/model 11.25 KB -1.0 B (2.15 KB -0.2 B compressed)
        @ember-data/model/-private/legacy-relationships-support 7.94 KB +46.0 B (1.52 KB +9.24 B compressed)
    @ember-data/record-data 30.47 KB +1.79 KB (5.82 KB +367.02 B compressed)
        @ember-data/record-data/-private/record-data 7.17 KB +186.0 B (1.37 KB +37.34 B compressed)
        @ember-data/record-data/-private/graph/index 6.08 KB +201.0 B (1.16 KB +40.36 B compressed)
        @ember-data/record-data/-private/graph/-edge-definition 3.12 KB +152.0 B (609.57 B +30.52 B compressed)
        @ember-data/record-data/-private/graph/operations/merge-identifier 1.26 KB +1.26 KB (246.23 B +258.8 B compressed)

Full Asset Analysis (Modern)

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


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

Package: @ember-data/store
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '64.03 KB' │
│  compressed  │ '12.23 KB' │
│ % Of Library │   '31.4'   │
└──────────────┴────────────┘
	Module                                                                        | Bytes     | Compressed | % of Package  | % Of Library
	---------------------------------------------------------------------------------------------------------------------------------
	@ember-data/store/-private/store-service                                      | 10.59 KB  | 2.02 KB    | 16.5          | 5.2
	@ember-data/store/-private/managers/record-data-manager                       | 7.90 KB   | 1.51 KB    | 12.3          | 3.9
	@ember-data/store/-private/caches/instance-cache                              | 5.90 KB   | 1.13 KB    | 9.2           | 2.9
	@ember-data/store/-private/network/fetch-manager                              | 4.89 KB   | 955.71 B   | 7.6           | 2.4
	@ember-data/store/-private/record-arrays/identifier-array                     | 4.27 KB   | 834.98 B   | 6.7           | 2.1
	@ember-data/store/-private/caches/identifier-cache                            | 3.66 KB   | 716.35 B   | 5.7           | 1.8
	@ember-data/store/-private/network/snapshot                                   | 3.31 KB   | 647.58 B   | 5.2           | 1.6
	@ember-data/store/-private/managers/record-array-manager                      | 3.07 KB   | 601.16 B   | 4.8           | 1.5
	@ember-data/store/-private/index                                              | 2.74 KB   | 535.07 B   | 4.3           | 1.3
	@ember-data/store/-private/proxies/promise-proxies                            | 1.68 KB   | 328.18 B   | 2.6           | 0.8
	@ember-data/store/-private/managers/record-data-store-wrapper                 | 1.62 KB   | 317.49 B   | 2.5           | 0.8
	@ember-data/store/-private/network/request-cache                              | 1.61 KB   | 314.05 B   | 2.5           | 0.8
	@ember-data/store/-private/legacy-model-support/shim-model-class              | 1.55 KB   | 302.39 B   | 2.4           | 0.8
	@ember-data/store/-private/network/finders                                    | 1.51 KB   | 296.09 B   | 2.4           | 0.7
	@ember-data/store/-private/legacy-model-support/schema-definition-service     | 1.37 KB   | 268.77 B   | 2.1           | 0.7
	@ember-data/store/-private/legacy-model-support/record-reference              | 1.34 KB   | 261.90 B   | 2.1           | 0.7
	@ember-data/store/index                                                       | 1022.00 B | 195.23 B   | 1.6           | 0.5
	@ember-data/store/-private/utils/uuid-polyfill                                | 786.00 B  | 150.14 B   | 1.2           | 0.4
	@ember-data/store/-private/managers/record-notification-manager               | 753.00 B  | 143.84 B   | 1.1           | 0.4
	@ember-data/store/-private/network/snapshot-record-array                      | 691.00 B  | 132.00 B   | 1.1           | 0.3
	@ember-data/store/-private/utils/construct-resource                           | 688.00 B  | 131.42 B   | 1.0           | 0.3
	@ember-data/store/-private/utils/common                                       | 572.00 B  | 109.26 B   | 0.9           | 0.3
	@ember-data/store/-private/utils/coerce-id                                    | 473.00 B  | 90.35 B    | 0.7           | 0.2
	@ember-data/store/-private/proxies/promise-proxy-base                         | 403.00 B  | 76.98 B    | 0.6           | 0.2
	@ember-data/store/-private/caches/record-data-for                             | 325.00 B  | 62.08 B    | 0.5           | 0.2
	@ember-data/store/-private/utils/identifer-debug-consts                       | 304.00 B  | 58.07 B    | 0.5           | 0.1
	@ember-data/store/-private/utils/promise-record                               | 291.00 B  | 55.58 B    | 0.4           | 0.1
	@ember-data/store/-private/utils/serializer-response                          | 258.00 B  | 49.28 B    | 0.4           | 0.1
	@ember-data/store/-private/utils/normalize-model-name                         | 219.00 B  | 41.83 B    | 0.3           | 0.1
	@ember-data/store/-debug/index                                                | 207.00 B  | 39.54 B    | 0.3           | 0.1
	@ember-data/store/-private/utils/is-non-empty-string                          | 204.00 B  | 38.96 B    | 0.3           | 0.1

Package: @ember-data/model
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '51.09 KB' │
│  compressed  │ '9.76 KB'  │
│ % Of Library │   '25.0'   │
└──────────────┴────────────┘
	Module                                                      | Bytes     | Compressed | % of Package  | % Of Library
	---------------------------------------------------------------------------------------------------------------
	@ember-data/model/-private/model                            | 11.25 KB  | 2.15 KB    | 22.0          | 5.5
	@ember-data/model/-private/legacy-relationships-support     | 7.94 KB   | 1.52 KB    | 15.5          | 3.9
	@ember-data/model/-private/record-state                     | 6.52 KB   | 1.25 KB    | 12.8          | 3.2
	@ember-data/model/-private/references/has-many              | 3.20 KB   | 626.19 B   | 6.3           | 1.6
	@ember-data/model/-private/references/belongs-to            | 2.81 KB   | 550.35 B   | 5.5           | 1.4
	@ember-data/model/-private/promise-many-array               | 2.70 KB   | 528.57 B   | 5.3           | 1.3
	@ember-data/model/-private/legacy-data-fetch                | 2.59 KB   | 505.84 B   | 5.1           | 1.3
	@ember-data/model/-private/many-array                       | 2.35 KB   | 459.23 B   | 4.6           | 1.2
	@ember-data/model/-private/errors                           | 2.31 KB   | 451.78 B   | 4.5           | 1.1
	@ember-data/model/-private/index                            | 1.48 KB   | 290.17 B   | 2.9           | 0.7
	@ember-data/model/-private/relationship-meta                | 991.00 B  | 189.30 B   | 1.9           | 0.5
	@ember-data/model/-private/notify-changes                   | 913.00 B  | 174.40 B   | 1.7           | 0.4
	@ember-data/model/-private/attr                             | 839.00 B  | 160.27 B   | 1.6           | 0.4
	@ember-data/model/-private/has-many                         | 817.00 B  | 156.07 B   | 1.6           | 0.4
	@ember-data/model/-private/belongs-to                       | 736.00 B  | 140.59 B   | 1.4           | 0.4
	@ember-data/model/-private/deprecated-promise-proxy         | 681.00 B  | 130.09 B   | 1.3           | 0.3
	@ember-data/model/-private/promise-belongs-to               | 615.00 B  | 117.48 B   | 1.2           | 0.3
	@ember-data/model/-private/util                             | 522.00 B  | 99.71 B    | 1.0           | 0.2
	@ember-data/model/index                                     | 486.00 B  | 92.84 B    | 0.9           | 0.2
	@ember-data/model/-private/diff-array                       | 445.00 B  | 85.00 B    | 0.9           | 0.2
	@ember-data/model/-private/model-for-mixin                  | 407.00 B  | 77.74 B    | 0.8           | 0.2
	@ember-data/model/-private/legacy-data-utils                | 395.00 B  | 75.45 B    | 0.8           | 0.2
	@ember-data/model/-private/promise-proxy-base               | 284.00 B  | 54.25 B    | 0.5           | 0.1

Package: @ember-data/record-data
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '30.47 KB' │
│  compressed  │ '5.82 KB'  │
│ % Of Library │   '14.9'   │
└──────────────┴────────────┘
	Module                                                                            | Bytes     | Compressed | % of Package  | % Of Library
	-------------------------------------------------------------------------------------------------------------------------------------
	@ember-data/record-data/-private/record-data                                      | 7.17 KB   | 1.37 KB    | 23.5          | 3.5
	@ember-data/record-data/-private/graph/index                                      | 6.08 KB   | 1.16 KB    | 19.9          | 3.0
	@ember-data/record-data/-private/graph/operations/replace-related-records         | 3.63 KB   | 710.81 B   | 11.9          | 1.8
	@ember-data/record-data/-private/graph/-edge-definition                           | 3.12 KB   | 609.57 B   | 10.2          | 1.5
	@ember-data/record-data/-private/graph/-utils                                     | 2.10 KB   | 411.66 B   | 6.9           | 1.0
	@ember-data/record-data/-private/graph/operations/update-relationship             | 1.51 KB   | 295.52 B   | 5.0           | 0.7
	@ember-data/record-data/-private/graph/operations/merge-identifier                | 1.26 KB   | 246.23 B   | 4.1           | 0.6
	@ember-data/record-data/-private/graph/operations/replace-related-record          | 1.21 KB   | 236.68 B   | 4.0           | 0.6
	@ember-data/record-data/-private/graph/operations/add-to-related-records          | 829.00 B  | 158.36 B   | 2.7           | 0.4
	@ember-data/record-data/-private/graph/operations/remove-from-related-records     | 708.00 B  | 135.24 B   | 2.3           | 0.3
	@ember-data/record-data/-private/relationships/state/belongs-to                   | 707.00 B  | 135.05 B   | 2.3           | 0.3
	@ember-data/record-data/-private/relationships/state/has-many                     | 692.00 B  | 132.19 B   | 2.2           | 0.3
	@ember-data/record-data/-private/index                                            | 497.00 B  | 94.94 B    | 1.6           | 0.2
	@ember-data/record-data/-private/coerce-id                                        | 379.00 B  | 72.39 B    | 1.2           | 0.2
	@ember-data/record-data/-private/graph/-state                                     | 293.00 B  | 55.97 B    | 0.9           | 0.1
	@ember-data/record-data/-private/normalize-link                                   | 238.00 B  | 45.46 B    | 0.8           | 0.1
	@ember-data/record-data/-private/graph/-operations                                | 150.00 B  | 28.65 B    | 0.5           | 0.1

Package: @ember-data/serializer
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '22.43 KB' │
│  compressed  │ '4.28 KB'  │
│ % Of Library │   '11.0'   │
└──────────────┴────────────┘
	Module                                                     | Bytes     | Compressed | % of Package  | % Of Library
	--------------------------------------------------------------------------------------------------------------
	@ember-data/serializer/json                                | 7.36 KB   | 1.41 KB    | 32.8          | 3.6
	@ember-data/serializer/-private/embedded-records-mixin     | 4.59 KB   | 898.59 B   | 20.5          | 2.3
	@ember-data/serializer/json-api                            | 3.79 KB   | 741.38 B   | 16.9          | 1.9
	@ember-data/serializer/rest                                | 2.87 KB   | 560.47 B   | 12.8          | 1.4
	@ember-data/serializer/-private/index                      | 1018.00 B | 194.46 B   | 4.4           | 0.5
	@ember-data/serializer/index                               | 611.00 B  | 116.71 B   | 2.7           | 0.3
	@ember-data/serializer/-private/transforms/date            | 530.00 B  | 101.24 B   | 2.3           | 0.3
	@ember-data/serializer/-private/transforms/boolean         | 504.00 B  | 96.27 B    | 2.2           | 0.2
	@ember-data/serializer/-private/transforms/number          | 439.00 B  | 83.86 B    | 1.9           | 0.2
	@ember-data/serializer/-private/transforms/string          | 371.00 B  | 70.87 B    | 1.6           | 0.2
	@ember-data/serializer/-private/transforms/transform       | 226.00 B  | 43.17 B    | 1.0           | 0.1
	@ember-data/serializer/transform                           | 215.00 B  | 41.07 B    | 0.9           | 0.1

Package: @ember-data/adapter
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '18.04 KB' │
│  compressed  │ '3.45 KB'  │
│ % Of Library │   '8.8'    │
└──────────────┴────────────┘
	Module                                                        | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------------------
	@ember-data/adapter/rest                                      | 7.88 KB   | 1.51 KB    | 43.7          | 3.9
	@ember-data/adapter/-private/build-url-mixin                  | 1.92 KB   | 375.18 B   | 10.6          | 0.9
	@ember-data/adapter/error                                     | 1.82 KB   | 356.46 B   | 10.1          | 0.9
	@ember-data/adapter/index                                     | 1.41 KB   | 276.22 B   | 7.8           | 0.7
	@ember-data/adapter/json-api                                  | 1.03 KB   | 202.29 B   | 5.7           | 0.5
	@ember-data/adapter/-private/index                            | 1.03 KB   | 201.72 B   | 5.7           | 0.5
	@ember-data/adapter/-private/utils/serialize-query-params     | 769.00 B  | 146.90 B   | 4.2           | 0.4
	@ember-data/adapter/-private/utils/determine-body-promise     | 556.00 B  | 106.21 B   | 3.0           | 0.3
	@ember-data/adapter/-private/utils/parse-response-headers     | 488.00 B  | 93.22 B    | 2.6           | 0.2
	@ember-data/adapter/-private/utils/fetch                      | 450.00 B  | 85.96 B    | 2.4           | 0.2
	@ember-data/adapter/-private/utils/serialize-into-hash        | 382.00 B  | 72.97 B    | 2.1           | 0.2
	@ember-data/adapter/-private/utils/continue-on-reject         | 222.00 B  | 42.40 B    | 1.2           | 0.1
	@ember-data/adapter/-private/fastboot-interface               | 147.00 B  | 28.08 B    | 0.8           | 0.1

Package: ember-data
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '8.64 KB' │
│  compressed  │ '1.65 KB' │
│ % Of Library │   '4.2'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-data/index                                  | 1.98 KB   | 388.17 B   | 23.0          | 1.0
	ember-data/-private/index                         | 1.49 KB   | 291.70 B   | 17.3          | 0.7
	ember-data/adapters/errors                        | 1.19 KB   | 232.48 B   | 13.8          | 0.6
	ember-data/-private/core                          | 368.00 B  | 70.29 B    | 4.2           | 0.2
	ember-data/setup-container                        | 368.00 B  | 70.29 B    | 4.2           | 0.2
	ember-data/relationships                          | 318.00 B  | 60.74 B    | 3.6           | 0.2
	ember-data/serializers/embedded-records-mixin     | 274.00 B  | 52.34 B    | 3.1           | 0.1
	ember-data/serializers/json-api                   | 251.00 B  | 47.94 B    | 2.8           | 0.1
	ember-data/adapters/json-api                      | 245.00 B  | 46.80 B    | 2.8           | 0.1
	ember-data/serializers/json                       | 243.00 B  | 46.42 B    | 2.7           | 0.1
	ember-data/serializers/rest                       | 243.00 B  | 46.42 B    | 2.7           | 0.1
	ember-data/transform                              | 241.00 B  | 46.03 B    | 2.7           | 0.1
	ember-data/adapters/rest                          | 237.00 B  | 45.27 B    | 2.7           | 0.1
	ember-data/serializer                             | 232.00 B  | 44.31 B    | 2.6           | 0.1
	ember-data/adapter                                | 226.00 B  | 43.17 B    | 2.6           | 0.1
	ember-data/model                                  | 222.00 B  | 42.40 B    | 2.5           | 0.1
	ember-data/store                                  | 222.00 B  | 42.40 B    | 2.5           | 0.1
	ember-data/attr                                   | 218.00 B  | 41.64 B    | 2.5           | 0.1
	ember-data/version                                | 161.00 B  | 30.75 B    | 1.8           | 0.1

Package: ember-inflector
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '6.67 KB' │
│  compressed  │ '1.27 KB' │
│ % Of Library │   '3.3'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-inflector/lib/system/inflector              | 2.96 KB   | 579.58 B   | 44.4          | 1.5
	ember-inflector/lib/system/inflections            | 1.59 KB   | 310.80 B   | 23.8          | 0.8
	ember-inflector/lib/system                        | 471.00 B  | 89.97 B    | 6.9           | 0.2
	ember-inflector/index                             | 379.00 B  | 72.39 B    | 5.6           | 0.2
	ember-inflector/lib/helpers/pluralize             | 369.00 B  | 70.48 B    | 5.4           | 0.2
	ember-inflector/lib/utils/make-helper             | 332.00 B  | 63.42 B    | 4.9           | 0.2
	ember-inflector/lib/system/string                 | 318.00 B  | 60.74 B    | 4.7           | 0.2
	ember-inflector/lib/helpers/singularize           | 296.00 B  | 56.54 B    | 4.3           | 0.1

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

@runspired runspired added 🌲 Project Trim 🌲 PRs related to https://github.com/emberjs/data/issues/6166 🔌 Project Unplug 🔌 5.0 Roadmap labels Aug 9, 2022
@github-actions
Copy link

github-actions bot commented Aug 29, 2022

Performance Report for 5255537

Scenario - basic-record-materialization: ☑️ Performance is stable

☑️ duration
phase no difference [-58ms to 32ms]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-3ms to 2ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-1ms to 3ms]
☑️ Phase [start-push-payload] => [start-peek-records]
phase no difference [-2ms to 17ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [end-record-materialization]
phase no difference [-21ms to 10ms]
☑️ Phase [end-record-materialization] => [Test End]
phase no difference [-1ms to 1ms]

Scenario - relationship-materialization-simple: ☑️ Performance is stable

☑️ duration
phase no difference [-4ms to 11ms]
☑️ Phase [navigationStart] => [start-find-all]
phase no difference [-3ms to 2ms]
☑️ Phase [start-find-all] => [start-materialization]
phase no difference [-2ms to 5ms]
☑️ Phase [start-materialization] => [end-materialization]
phase no difference [-1ms to 5ms]
☑️ Phase [end-materialization] => [Test End]
phase no difference [-1ms to 2ms]

Scenario - relationship-materialization-complex: ☑️ Performance is stable

☑️ duration
phase no difference [-28ms to 35ms]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-3ms to 1ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-1ms to 1ms]
⚠️ Phase [start-push-payload] => [start-peek-records]
phase estimated regression +8ms [3ms to 13ms] OR +1.04% [0.33% to 1.72%]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [start-relationship-materialization]
phase no difference [-4ms to 4ms]
☑️ Phase [start-relationship-materialization] => [end-relationship-materialization]
phase no difference [-29ms to 20ms]
⚠️ Phase [end-relationship-materialization] => [Test End]
phase estimated regression +8ms [2ms to 15ms] OR +2.09% [0.43% to 4.15%]

Scenario - unload: ☑️ Performance is stable

☑️ duration
phase no difference [-7ms to 9ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-2ms to 5ms]
☑️ Phase [start-push-payload] => [start-unload-records]
phase no difference [-3ms to 4ms]
☑️ Phase [start-unload-records] => [end-unload-records]
phase no difference [-2ms to 1ms]
☑️ Phase [end-unload-records] => [Test End]
phase no difference [0ms to 0ms]

Scenario - unload-all: ☑️ Performance is stable

☑️ duration
phase no difference [-10ms to 12ms]
⚠️ Phase [navigationStart] => [start-push-payload]
phase estimated regression +3ms [0ms to 6ms] OR +0.57% [0.03% to 1.18%]
☑️ Phase [start-push-payload] => [start-materialization]
phase no difference [-4ms to 6ms]
☑️ Phase [start-materialization] => [start-unload-all]
phase no difference [-4ms to 2ms]
☑️ Phase [start-unload-all] => [end-unload-all]
phase no difference [-4ms to 2ms]
☑️ Phase [end-unload-all] => [Test End]
phase no difference [0ms to 0ms]

Scenario - destroy: ☑️ Performance is stable

☑️ duration
phase no difference [-9ms to 7ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-4ms to 3ms]
☑️ Phase [start-push-payload] => [start-destroy-records]
phase no difference [-2ms to 4ms]
☑️ Phase [start-destroy-records] => [end-destroy-records]
phase no difference [-1ms to 3ms]
☑️ Phase [end-destroy-records] => [Test End]
phase no difference [0ms to 0ms]

Scenario - add-children: ☑️ Performance is stable

☑️ duration
phase no difference [-5ms to 11ms]
☑️ Phase [navigationStart] => [start-push-initial-payload]
phase no difference [-2ms to 11ms]
☑️ Phase [start-push-initial-payload] => [start-push-update-payload]
phase no difference [-3ms to 2ms]
☑️ Phase [start-push-update-payload] => [end-push-update-payload]
phase no difference [-3ms to 1ms]
☑️ Phase [end-push-update-payload] => [Test End]
phase no difference [0ms to 0ms]

Scenario - unused-relationships: ☑️ Performance is stable

☑️ duration
phase no difference [-6ms to 8ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-4ms to 2ms]
☑️ Phase [start-push-payload] => [end-push-payload]
phase no difference [-1ms to 6ms]
☑️ Phase [end-push-payload] => [Test End]
phase no difference [0ms to 0ms]

@runspired runspired force-pushed the runspired/rfc-793 branch 2 times, most recently from 118137e to 0e07474 Compare August 29, 2022 23:30
@github-actions
Copy link

github-actions bot commented Aug 30, 2022

Commit v Release Performance Report for 5255537

Scenario - basic-record-materialization: ✅ Performance improved

✅ duration
phase estimated improvement -2089ms [-2196ms to -1979ms] OR -35.71% [-37.53% to -33.83%]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-7ms to 9ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-10ms to 7ms]
✅ Phase [start-push-payload] => [start-peek-records]
phase estimated improvement -1084ms [-1120ms to -1050ms] OR -35.45% [-36.63% to -34.34%]
✅ Phase [start-peek-records] => [start-record-materialization]
phase estimated improvement -141ms [-145ms to -140ms] OR -96.69% [-99.78% to -95.8%]
✅ Phase [start-record-materialization] => [end-record-materialization]
phase estimated improvement -516ms [-611ms to -428ms] OR -36.7% [-43.43% to -30.45%]
✅ Phase [end-record-materialization] => [Test End]
phase estimated improvement -204ms [-228ms to -189ms] OR -73.21% [-81.65% to -67.81%]

Scenario - relationship-materialization-simple: ✅ Performance improved

✅ duration
phase estimated improvement -550ms [-570ms to -530ms] OR -38.51% [-39.89% to -37.11%]
☑️ Phase [navigationStart] => [start-find-all]
phase no difference [-11ms to 8ms]
✅ Phase [start-find-all] => [start-materialization]
phase estimated improvement -102ms [-112ms to -92ms] OR -19.32% [-21.21% to -17.4%]
✅ Phase [start-materialization] => [end-materialization]
phase estimated improvement -352ms [-358ms to -346ms] OR -76.24% [-77.53% to -74.9%]
✅ Phase [end-materialization] => [Test End]
phase estimated improvement -92ms [-94ms to -90ms] OR -67.97% [-69.4% to -66.32%]

Scenario - relationship-materialization-complex: ✅ Performance improved

✅ duration
phase estimated improvement -1527ms [-1638ms to -1418ms] OR -20.5% [-21.99% to -19.04%]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-14ms to 10ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-3ms to 6ms]
✅ Phase [start-push-payload] => [start-peek-records]
phase estimated improvement -472ms [-495ms to -448ms] OR -32.15% [-33.74% to -30.55%]
✅ Phase [start-peek-records] => [start-record-materialization]
phase estimated improvement -69ms [-71ms to -67ms] OR -95.24% [-98.15% to -92.3%]
✅ Phase [start-record-materialization] => [start-relationship-materialization]
phase estimated improvement -318ms [-334ms to -303ms] OR -49.41% [-51.82% to -47.02%]
✅ Phase [start-relationship-materialization] => [end-relationship-materialization]
phase estimated improvement -461ms [-537ms to -384ms] OR -11.28% [-13.12% to -9.39%]
✅ Phase [end-relationship-materialization] => [Test End]
phase estimated improvement -202ms [-213ms to -191ms] OR -29.66% [-31.3% to -27.97%]

Scenario - unload: ✅ Performance improved

✅ duration
phase estimated improvement -399ms [-424ms to -376ms] OR -23.21% [-24.61% to -21.83%]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-19ms to 8ms]
✅ Phase [start-push-payload] => [start-unload-records]
phase estimated improvement -250ms [-265ms to -236ms] OR -28.35% [-29.98% to -26.73%]
✅ Phase [start-unload-records] => [end-unload-records]
phase estimated improvement -145ms [-151ms to -140ms] OR -40.75% [-42.28% to -39.27%]
✅ Phase [end-unload-records] => [Test End]
phase estimated improvement -1ms [-2ms to 0ms] OR -2.27% [-3.95% to -0.3%]

Scenario - unload-all: ✅ Performance improved

✅ duration
phase estimated improvement -18871ms [-18988ms to -18757ms] OR -86.82% [-87.36% to -86.3%]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-12ms to 20ms]
✅ Phase [start-push-payload] => [start-materialization]
phase estimated improvement -733ms [-766ms to -703ms] OR -36.45% [-38.05% to -34.92%]
✅ Phase [start-materialization] => [start-unload-all]
phase estimated improvement -527ms [-552ms to -502ms] OR -54.69% [-57.36% to -52.13%]
✅ Phase [start-unload-all] => [end-unload-all]
phase estimated improvement -17586ms [-17741ms to -17485ms] OR -97.45% [-98.31% to -96.89%]
☑️ Phase [end-unload-all] => [Test End]
phase no difference [-2ms to 0ms]

Scenario - destroy: ✅ Performance improved

✅ duration
phase estimated improvement -579ms [-604ms to -553ms] OR -29.96% [-31.22% to -28.62%]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-17ms to 6ms]
✅ Phase [start-push-payload] => [start-destroy-records]
phase estimated improvement -243ms [-258ms to -227ms] OR -27.7% [-29.45% to -25.92%]
✅ Phase [start-destroy-records] => [end-destroy-records]
phase estimated improvement -333ms [-342ms to -323ms] OR -59.25% [-60.69% to -57.43%]
☑️ Phase [end-destroy-records] => [Test End]
phase no difference [-1ms to 1ms]

Scenario - add-children: ✅ Performance improved

✅ duration
phase estimated improvement -290ms [-313ms to -269ms] OR -24.55% [-26.42% to -22.71%]
☑️ Phase [navigationStart] => [start-push-initial-payload]
phase no difference [-21ms to 7ms]
✅ Phase [start-push-initial-payload] => [start-push-update-payload]
phase estimated improvement -112ms [-119ms to -105ms] OR -34.39% [-36.69% to -32.35%]
✅ Phase [start-push-update-payload] => [end-push-update-payload]
phase estimated improvement -122ms [-128ms to -116ms] OR -43.15% [-45.27% to -40.97%]
✅ Phase [end-push-update-payload] => [Test End]
phase estimated improvement -48ms [-49ms to -47ms] OR -53.3% [-54.57% to -51.98%]

Scenario - unused-relationships: ✅ Performance improved

✅ duration
phase estimated improvement -289ms [-311ms to -267ms] OR -21.23% [-22.78% to -19.6%]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-13ms to 12ms]
✅ Phase [start-push-payload] => [end-push-payload]
phase estimated improvement -254ms [-266ms to -241ms] OR -29.72% [-31.18% to -28.29%]
✅ Phase [end-push-payload] => [Test End]
phase estimated improvement -36ms [-39ms to -34ms] OR -45.48% [-48.59% to -42.33%]

@runspired runspired added the 🏷️ bug This PR primarily fixes a reported issue label Sep 2, 2022
@runspired runspired merged commit a03a130 into master Sep 2, 2022
@delete-merged-branch delete-merged-branch bot deleted the runspired/rfc-793 branch September 2, 2022 08:55
@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
Labels
5.0 Roadmap 🎯 canary PR is targeting canary (default) 🏷️ bug This PR primarily fixes a reported issue 🏷️ feat This PR introduces a new feature 🌲 Project Trim 🌲 PRs related to https://github.com/emberjs/data/issues/6166 🔌 Project Unplug 🔌
Projects
Status: Completed
Development

Successfully merging this pull request may close these issues.

Bug with merging of identifiers
1 participant