Skip to content

Refactor class name notation from dot/colon to dot-only format - #1461

Merged
grigasp merged 11 commits into
nextfrom
shared/full-class-name-dot-notation
Jul 23, 2026
Merged

Refactor class name notation from dot/colon to dot-only format#1461
grigasp merged 11 commits into
nextfrom
shared/full-class-name-dot-notation

Conversation

@grigasp

@grigasp grigasp commented Jul 23, 2026

Copy link
Copy Markdown
Member

Closes #1453.

Copilot AI review requested due to automatic review settings July 23, 2026 06:46
@grigasp
grigasp requested a review from a team as a code owner July 23, 2026 06:46
@changeset-bot

changeset-bot Bot commented Jul 23, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 78234d3

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@grigasp grigasp linked an issue Jul 23, 2026 that may be closed by this pull request

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements the repo-wide shift from mixed Schema:Class / Schema.Class handling to dot-only class names by adopting EC.FullClassNameDotNotation across APIs and internals, reducing the need for repeated normalizeFullClassName calls and making string formatting expectations type-safe.

Changes:

  • Updated shared, hierarchies, and content types/APIs to use EC.FullClassNameDotNotation where dot-only is now required.
  • Updated ECSQL snippet generation and query readers to emit/consume dot-notation class names directly.
  • Updated unit/integration/performance tests and utilities to align with dot-only class-name inputs/outputs.

Reviewed changes

Copilot reviewed 89 out of 89 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/test-utilities/src/test-utilities/IModelUtils.ts Switch test iModel insert helpers to dot-only class/relationship names.
packages/shared/src/test/Values.test.ts Update InstanceKey.compare test inputs to dot notation.
packages/shared/src/test/MetadataProviderStub.ts Align stub is(...) typing/behavior with dot-only fullName.
packages/shared/src/test/ecsql-snippets/ECSqlValueSelectorSnippets.test.ts Remove colon-notation selector expectations and tighten invalid-name cases.
packages/shared/src/shared/Values.ts Make InstanceKey.className dot-notation and remove normalization in comparison.
packages/shared/src/shared/Metadata.ts Change schema item and relationship path class-name fields to dot-notation types.
packages/shared/src/shared/InstanceLabelSelectClauseFactory.ts Update className prop typing to dot notation.
packages/shared/src/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.ts Convert visited/rule/step class-name tracking to dot-notation types.
packages/shared/src/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.ts Update class-based label clause lookups to dot-notation names.
packages/shared/src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts Restrict createClassSelector to dot-notation class names.
packages/shared/src/shared/ecsql-snippets/ECSqlJoinSnippets.ts Update join snippet target/relationship class-name fields to dot-notation types.
packages/shared/api/presentation-shared.api.md Reflect shared public API type changes to dot notation.
packages/models-tree/src/models-tree/ModelsTreeDefinition.ts Update models-tree configuration and parsing types to dot notation.
packages/hierarchies/src/test/Utils.ts Update test schema provider stubs and keys to dot notation.
packages/hierarchies/src/test/imodel/SearchHierarchyDefinition.test.ts Update search-related class name test data to dot notation.
packages/hierarchies/src/test/imodel/operators/grouping/PropertiesGrouping.test.ts Update property grouping test inputs to dot notation.
packages/hierarchies/src/test/imodel/operators/grouping/LabelGrouping.test.ts Update label grouping test instance keys to dot notation.
packages/hierarchies/src/test/imodel/operators/grouping/GroupHiding.test.ts Update group hiding test instance keys to dot notation.
packages/hierarchies/src/test/imodel/operators/grouping/BaseClassGrouping.test.ts Update base-class grouping test class-name lists to dot notation.
packages/hierarchies/src/test/imodel/operators/grouping/AutoExpand.test.ts Update auto-expand grouping keys and class-name params to dot notation.
packages/hierarchies/src/test/imodel/NodeSelectQueryFactory.test.ts Expect dot-notation ec_ClassName(..., 's.c') output in select clauses.
packages/hierarchies/src/test/HierarchySearch.test.ts Update hierarchy search identifiers to dot notation.
packages/hierarchies/src/test/HierarchyNodeKey.test.ts Update key equality cases from colon to dot notation.
packages/hierarchies/src/hierarchies/imodel/TreeNodesReader.ts Treat row class names as dot notation; drop normalization in parser.
packages/hierarchies/src/hierarchies/imodel/PredicateBasedHierarchyDefinition.ts Use dot-notation keys when grouping instance IDs by class.
packages/hierarchies/src/hierarchies/imodel/operators/grouping/PropertiesGrouping.ts Use dot-notation property class names in grouping map keys and predicates.
packages/hierarchies/src/hierarchies/imodel/operators/grouping/ClassGrouping.ts Make grouped dictionary keys dot-notation class names.
packages/hierarchies/src/hierarchies/imodel/operators/grouping/BaseClassGrouping.ts Use dot-notation types for sorted base class name tracking.
packages/hierarchies/src/hierarchies/imodel/NodeSelectQueryFactory.ts Emit dot-notation class names via ec_ClassName(..., 's.c') and update filter typing.
packages/hierarchies/src/hierarchies/imodel/IModelHierarchyNode.ts Update grouping param types to dot notation.
packages/hierarchies/src/hierarchies/imodel/IModelHierarchyDefinition.ts Update InstanceNodesQueryDefinition.fullClassName typing to dot notation.
packages/hierarchies/src/hierarchies/HierarchyNodeKey.ts Make key class-name fields dot-notation and remove normalization in comparisons.
packages/hierarchies/api/presentation-hierarchies.api.md Reflect hierarchies public API type changes to dot notation.
packages/hierarchies-react/src/test/unit/UseTree.test.tsx Update search paths and instance keys to dot notation.
packages/hierarchies-react/src/test/unit/TestUtils.ts Update default grouping node key class name to dot notation.
packages/hierarchies-react/src/test/unit/internal/Utils.test.ts Update node-id expectations to dot notation serialization.
packages/hierarchies-react/src/test/unit/internal/UseUnifiedSelection.test.tsx Update unified selection test keys to dot notation.
packages/core-interop/src/core-interop/MetadataInternal.ts Align custom attribute set map typing and access to dot-notation keys.
packages/content/src/test/model/Utils.test.ts Update class-name normalization tests to dot-only inputs.
packages/content/src/test/model/PropertyValueDescriptor.test.ts Update navigation constraint class-name typings to dot notation.
packages/content/src/test/model/Field.test.ts Update field ID computation tests to dot notation.
packages/content/src/test/model/Category.test.ts Update relationship path/category ID tests to dot notation.
packages/content/src/test/MetadataStubs.ts Use parseFullClassName with dot-notation types in stubs.
packages/content/src/test/extensions/presentation-rules/FieldsProviderFactory.test.ts Update content target primary class typing to dot notation.
packages/content/src/test/extensions/presentation-rules/DescriptorTransformerFactory.test.ts Update descriptor transformer tests to dot-notation class-name lists.
packages/content/src/test/extensions/ecexpressions/ECExpressionToECSql.test.ts Update expression test strings to dot notation.
packages/content/src/test/extensions/DescriptorTransformer.test.ts Update transform/fork tests to dot-notation class names.
packages/content/src/test/descriptor-building/Selectors.test.ts Update selector collection tests and inputs to dot notation.
packages/content/src/test/descriptor-building/RelatedFields.test.ts Update resolved path typing to dot-notation target classes.
packages/content/src/test/descriptor-building/PropertyFieldMerge.test.ts Update merge tests to dot-notation identity/target class sets.
packages/content/src/test/descriptor-building/DirectFields.test.ts Update direct fields tests to dot-notation primary classes.
packages/content/src/test/descriptor-building/ClassPropertyFields.test.ts Update helper typing for class property enumeration to dot notation.
packages/content/src/test/descriptor-building/BuildDescriptor.test.ts Update content source creation typing to dot notation.
packages/content/src/test/Content.test.ts Update content target inputs to dot notation.
packages/content/src/content/ResolveContentSources.ts Return resolved class names as dot notation and drop normalization in primary-class resolution.
packages/content/src/content/model/ValueSelector.ts Update selector ID computation typing to dot-notation class name.
packages/content/src/content/model/Utils.ts Assume dot-notation relationship path/class lists; remove normalization during serialization/deduping.
packages/content/src/content/model/Field.ts Make property/value class names dot-notation and remove normalization in ID computation.
packages/content/src/content/InternalUtils.ts Update getClassLabel param typing to dot notation.
packages/content/src/content/extensions/presentation-rules/Utils.ts Update classMatchesSpec class name typing to dot notation.
packages/content/src/content/extensions/presentation-rules/FieldsProviderFactory.ts Use dot-notation class-name types when mapping/flattening related property paths.
packages/content/src/content/extensions/presentation-rules/DescriptorTransformerFactory.ts Use dot-notation class-name subsets for matching/forking.
packages/content/src/content/extensions/ExternalFieldsProvider.ts Update external input declaration typing to dot notation.
packages/content/src/content/extensions/ecexpressions/Emitter.ts Update primary class name typing to dot notation.
packages/content/src/content/extensions/ecexpressions/ECExpressionToECSql.ts Update primaryClassName typing to dot notation.
packages/content/src/content/extensions/DescriptorTransformer.ts Fork by dot-notation subset and remove normalization when shrinking originals.
packages/content/src/content/descriptor-building/Selectors.ts Update property selector typing to dot notation.
packages/content/src/content/descriptor-building/PropertyFieldMerge.ts Remove normalization from comparable navigation descriptors (dot-only expectation).
packages/content/src/content/descriptor-building/ExternalFields.ts Update external input typing to dot notation.
packages/content/src/content/descriptor-building/DirectFields.ts Treat resolved/concrete class name lists as dot notation without normalization.
packages/content/src/content/descriptor-building/ClassPropertyFields.ts Update class/value class typing to dot notation.
packages/content/src/content/descriptor-building/Categories.ts Update category label resolution typing to dot notation.
packages/content/src/content/ContentTarget.ts Update content target/source/resolved path typings to dot notation.
packages/content/api/presentation-content.api.md Reflect content public API type changes to dot notation.
apps/performance-tests/src/util/Datasets.ts Remove separator toggles; generate dot-notation class names for inserted data.
apps/performance-tests/src/unified-selection/HiliteSet.test.ts Use dot-notation selectable class names when building hilite selections.
apps/performance-tests/src/hierarchies/RunHierarchyTest.ts Update optional full class name typing to dot notation.
apps/performance-tests/src/hierarchies/ModelsTree.test.ts Update instance key class names used in performance hierarchy tests to dot notation.
apps/performance-tests/src/hierarchies/Grouping.test.ts Update base class / class list typing to dot notation.
apps/full-stack-tests/src/hierarchies/Utils.ts Remove local class-selector helper in favor of shared ECSql helpers.
apps/full-stack-tests/src/hierarchies/Update.test.ts Use ECSql.createClassSelector(...) with normalized dot class names in ECSQL strings.
apps/full-stack-tests/src/hierarchies/learning-snippets/MergedIModelHierarchies.test.ts Update snippet helper typing to dot-notation class names.
apps/full-stack-tests/src/ECDbUtils.ts Update helper insert signatures to dot-notation full class names.
apps/full-stack-tests/src/components/Utils.ts Add helper to convert dot-notation instance keys to colon notation for unified-selection assertions.
apps/full-stack-tests/src/components/unified-selection/Viewport.test.tsx Update iModel insert helpers to dot-only and remove separator config.
apps/full-stack-tests/src/components/unified-selection/Tree.test.tsx Convert instance keys to colon notation before comparing with unified-selection results.
apps/full-stack-tests/src/components/properties/PropertyPaneDataProvider.test.ts Update iModel insert helpers to dot-only and convert keys for unified-selection comparisons.
.changeset/shaggy-shoes-deny.md Changeset documenting shared package breaking changes for dot-notation types.
.changeset/odd-lilies-sniff.md Changeset documenting hierarchies package breaking changes for dot-notation types.

Comment thread packages/content/api/presentation-content.api.md
Comment thread apps/full-stack-tests/src/components/properties/PropertyPaneDataProvider.test.ts Outdated
Comment thread packages/test-utilities/src/test-utilities/IModelUtils.ts Outdated
Comment thread packages/test-utilities/src/test-utilities/IModelUtils.ts Outdated
Comment thread packages/test-utilities/src/test-utilities/IModelUtils.ts
Comment thread packages/content/src/test/descriptor-building/Selectors.test.ts Outdated
Comment thread packages/content/src/test/descriptor-building/Selectors.test.ts Outdated
Comment thread packages/content/src/test/model/Utils.test.ts Outdated
Comment thread packages/shared/src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts Outdated
Comment thread .changeset/shaggy-shoes-deny.md Outdated
Comment thread .changeset/odd-lilies-sniff.md
Comment thread packages/content/src/content/model/Field.ts Outdated
Co-authored-by: JonasDov <100586436+JonasDov@users.noreply.github.com>
@grigasp
grigasp merged commit 1aa8cb6 into next Jul 23, 2026
6 checks passed
@grigasp
grigasp deleted the shared/full-class-name-dot-notation branch July 23, 2026 12:33
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.

Broad switch to EC.FullClassNameDotNotation

3 participants