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

De-depude model components by location and value #565

Merged
merged 1 commit into from
Sep 15, 2020

Conversation

mtdowling
Copy link
Member

While we previously de-duplicated models by filename/URL, we recently
removed support for de-duping models by location and equality. This can
happen, for example, when a Model is created through a ModelAssembler, and
then added back to another ModelAssembler. If the files that came
together to create the original model are added to the second
ModelAssembler, then the previous file-base de-dupe would not catch the
duplicate model and would fail in the assembler. This change updates
the ModelAssembler to also de-dupe shapes, trait value, and metadata
based on source location and equality. If one of these components
conflict, and the conflcit is exactly the same, and defined at the same
exact file/line/column, then the duplcate is ignored. Note that model
components with no source location (i.e., weren't loaded from a file and
were just created) are never deconflicted in this way because we don't
reliably know that they are in fact the exact same unless we know where
the components originate from.

Issue #, if available:

Description of changes:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

While we previously de-duplicated models by filename/URL, we recently
removed support for de-duping models by location and equality. This can
happen, for example, when a Model is created through a ModelAssembler, and
then added back to another ModelAssembler. If the files that came
together to create the original model are added to the second
ModelAssembler, then the previous file-base de-dupe would not catch the
duplicate model and would fail in the assembler. This change updates
the ModelAssembler to also de-dupe shapes, trait value, and metadata
based on source location and equality. If one of these components
conflict, and the conflcit is exactly the same, and defined at the same
exact file/line/column, then the duplcate is ignored. Note that model
components with no source location (i.e., weren't loaded from a file and
were just created) are never deconflicted in this way because we don't
reliably know that they are in fact the exact same unless we know where
the components originate from.
@mtdowling mtdowling merged commit 41daa48 into master Sep 15, 2020
@mtdowling mtdowling deleted the add-component-de-dupe branch December 11, 2020 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants