Skip to content

[Tree-widget]: update deps to latest - #1811

Open
MartynasStrazdas wants to merge 16 commits into
tree-widget/nextfrom
mast/update-to-latest-deps
Open

MartynasStrazdas wants to merge 16 commits into
tree-widget/nextfrom
mast/update-to-latest-deps

Conversation

@MartynasStrazdas

Copy link
Copy Markdown
Contributor

No description provided.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Tree-Widget Next benchmark

Benchmark suite Current: c2565f1 Previous: a84dc3b Deviation Status
models tree 50k 3D elements search > get search paths 859 ms 576 ms 49.13% 🚨
models tree 50k 3D elements search > get search paths (P95 of main thread blocks) 71 ms 40 ms 77.50% 〰️
models tree 50k 3D elements search > load hierarchy from search paths 86359 ms 90799 ms -4.89% 〰️
models tree 50k 3D elements search > load hierarchy from search paths (P95 of main thread blocks) 32 ms 22 ms 45.45% 〰️
models tree 50k categories > collect nodes 2548 ms 1715 ms 48.57% 🚨
models tree 50k categories > collect nodes (P95 of main thread blocks) 99 ms 71 ms 39.44% 〰️
models tree 50k categories > validate initial visibility 2688 ms 1759 ms 52.81% 🚨
models tree 50k categories > validate initial visibility (P95 of main thread blocks) 228 ms 135 ms 68.89% 🚨
models tree 50k categories > change visibility 218 ms 143 ms 52.45% 🚨
models tree 50k categories > change visibility (P95 of main thread blocks) 59 ms 52 ms 13.46% 〰️
models tree 50k categories > validate changed visibility 2533 ms 1807 ms 40.18% 🚨
models tree 50k categories > validate changed visibility (P95 of main thread blocks) 28 ms 0 ms 2800% 〰️
models tree 50k 3D elements > collect nodes 33132 ms 35555 ms -6.81% 〰️
models tree 50k 3D elements > collect nodes (P95 of main thread blocks) 61 ms 37 ms 64.86% 〰️
models tree 50k 3D elements > validate initial visibility 1476 ms 1280 ms 15.31% 🚨
models tree 50k 3D elements > validate initial visibility (P95 of main thread blocks) 0 ms 21 ms -100% 〰️
models tree 50k 3D elements > change model visibility 113 ms 63 ms 79.37% 〰️
models tree 50k 3D elements > change model visibility (P95 of main thread blocks) 23 ms 0 ms 2300% 〰️
models tree 50k 3D elements > validate changed model visibility 2383 ms 1730 ms 37.75% 🚨
models tree 50k 3D elements > validate changed model visibility (P95 of main thread blocks) 112 ms 0 ms 11200% 🚨
models tree 50k 3D elements > change category node visibility 464 ms 320 ms 45% 🚨
models tree 50k 3D elements > change category node visibility (P95 of main thread blocks) 40 ms 27 ms 48.15% 〰️
models tree 50k 3D elements > validate changed category visibility 1564 ms 1319 ms 18.57% 🚨
models tree 50k 3D elements > validate changed category visibility (P95 of main thread blocks) 0 ms 0 ms 0% 🟰
models tree 50k 3D elements > validate per-model category override 1480 ms 1297 ms 14.11% 🚨
models tree 50k 3D elements > validate per-model category override (P95 of main thread blocks) 0 ms 0 ms 0% 🟰
models tree 50k 3D elements > change element visibility 38 ms 34 ms 11.76% 〰️
models tree 50k 3D elements > change element visibility (P95 of main thread blocks) 0 ms 0 ms 0% 🟰
models tree 50k 3D elements > validate changed element visibility 2252 ms 1584 ms 42.17% 🚨
models tree 50k 3D elements > validate changed element visibility (P95 of main thread blocks) 52 ms 24 ms 116.67% 〰️
models tree 50k 3D child elements with different categories > collect nodes 42331 ms 47633 ms -11.13% ✅
models tree 50k 3D child elements with different categories > collect nodes (P95 of main thread blocks) 55 ms 33 ms 66.67% 〰️
models tree 50k 3D child elements with different categories > validate initial visibility 2167 ms 1633 ms 32.70% 🚨
models tree 50k 3D child elements with different categories > validate initial visibility (P95 of main thread blocks) 0 ms 25 ms -100% 〰️
models tree 50k 3D child elements with different categories > change visibility 46 ms 52 ms -11.54% 〰️
models tree 50k 3D child elements with different categories > change visibility (P95 of main thread blocks) 0 ms 0 ms 0% 🟰
models tree 50k 3D child elements with different categories > validate changed visibility 5456 ms 4130 ms 32.11% 🚨
models tree 50k 3D child elements with different categories > validate changed visibility (P95 of main thread blocks) 76 ms 42 ms 80.95% 〰️
models tree 50k 3D child elements with different categories and excluded classes > collect nodes 42732 ms 48374 ms -11.66% ✅
models tree 50k 3D child elements with different categories and excluded classes > collect nodes (P95 of main thread blocks) 73 ms 38 ms 92.11% 〰️
models tree 50k 3D child elements with different categories and excluded classes > validate initial visibility 2367 ms 2111 ms 12.13% 🚨
models tree 50k 3D child elements with different categories and excluded classes > validate initial visibility (P95 of main thread blocks) 46 ms 27 ms 70.37% 〰️
models tree 50k 3D child elements with different categories and excluded classes > change visibility 45 ms 51 ms -11.76% 〰️
models tree 50k 3D child elements with different categories and excluded classes > change visibility (P95 of main thread blocks) 0 ms 0 ms 0% 🟰
models tree 50k 3D child elements with different categories and excluded classes > validate changed visibility 7361 ms 5504 ms 33.74% 🚨
models tree 50k 3D child elements with different categories and excluded classes > validate changed visibility (P95 of main thread blocks) 80 ms 111 ms -27.93% 〰️
categories tree 50k subCategories search > get search paths 973 ms 738 ms 31.84% 🚨
categories tree 50k subCategories search > get search paths (P95 of main thread blocks) 78 ms 82 ms -4.88% 〰️
categories tree 50k subCategories search > load hierarchy from search paths 5393 ms 3292 ms 63.82% 🚨
categories tree 50k subCategories search > load hierarchy from search paths (P95 of main thread blocks) 51 ms 36 ms 41.67% 〰️
categories tree 50k subCategories > collect nodes 5226 ms 3326 ms 57.13% 🚨
categories tree 50k subCategories > collect nodes (P95 of main thread blocks) 37 ms 24 ms 54.17% 〰️
categories tree 50k subCategories > validate initial visibility 1226 ms 1009 ms 21.51% 🚨
categories tree 50k subCategories > validate initial visibility (P95 of main thread blocks) 29 ms 0 ms 2900% 〰️
categories tree 50k subCategories > change visibility 356 ms 320 ms 11.25% 〰️
categories tree 50k subCategories > change visibility (P95 of main thread blocks) 23 ms 0 ms 2300% 〰️
categories tree 50k subCategories > validate changed visibility 1114 ms 968 ms 15.08% 🚨
categories tree 50k subCategories > validate changed visibility (P95 of main thread blocks) 30 ms 0 ms 3000% 〰️
categories tree 50k categories > collect nodes 89144 ms 89103 ms 0.05% 〰️
categories tree 50k categories > collect nodes (P95 of main thread blocks) 44 ms 38 ms 15.79% 〰️
categories tree 50k categories > validate initial visibility 6394 ms 4716 ms 35.58% 🚨
categories tree 50k categories > validate initial visibility (P95 of main thread blocks) 119 ms 76 ms 56.58% 〰️
categories tree 50k categories > change visibility 862 ms 649 ms 32.82% 🚨
categories tree 50k categories > change visibility (P95 of main thread blocks) 63 ms 46 ms 36.96% 〰️
categories tree 50k categories > validate changed visibility 5748 ms 4313 ms 33.27% 🚨
categories tree 50k categories > validate changed visibility (P95 of main thread blocks) 41 ms 0 ms 4100% 〰️
categories tree 50k categories and excluded classes > collect nodes 89153 ms 92873 ms -4.01% 〰️
categories tree 50k categories and excluded classes > collect nodes (P95 of main thread blocks) 40 ms 34 ms 17.65% 〰️
categories tree 50k categories and excluded classes > validate initial visibility 6968 ms 5032 ms 38.47% 🚨
categories tree 50k categories and excluded classes > validate initial visibility (P95 of main thread blocks) 196 ms 118 ms 66.10% 🚨
categories tree 50k categories and excluded classes > change visibility 835 ms 626 ms 33.39% 🚨
categories tree 50k categories and excluded classes > change visibility (P95 of main thread blocks) 60 ms 45 ms 33.33% 〰️
categories tree 50k categories and excluded classes > validate changed visibility 7947 ms 6124 ms 29.77% 🚨
categories tree 50k categories and excluded classes > validate changed visibility (P95 of main thread blocks) 32 ms 0 ms 3200% 〰️
classifications tree 50k classifications search > get search paths 2246 ms 1556 ms 44.34% 🚨
classifications tree 50k classifications search > get search paths (P95 of main thread blocks) 197 ms 124 ms 58.87% 🚨
classifications tree 50k classifications search > load hierarchy from search paths 45217 ms 48959 ms -7.64% 〰️
classifications tree 50k classifications search > load hierarchy from search paths (P95 of main thread blocks) 0 ms 27 ms -100% 〰️
classifications tree 50k classifications > collect nodes 16386 ms 21981 ms -25.45% ✅
classifications tree 50k classifications > collect nodes (P95 of main thread blocks) 105 ms 29 ms 262.07% 🚨
classifications tree 50k classifications > validate initial visibility 10649 ms 5826 ms 82.78% 🚨
classifications tree 50k classifications > validate initial visibility (P95 of main thread blocks) 7659 ms 3760 ms 103.70% 🚨
classifications tree 50k classifications > change visibility 160 ms 114 ms 40.35% 〰️
classifications tree 50k classifications > change visibility (P95 of main thread blocks) 23 ms 0 ms 2300% 〰️
classifications tree 50k classifications > validate changed visibility 3538 ms 2511 ms 40.90% 🚨
classifications tree 50k classifications > validate changed visibility (P95 of main thread blocks) 67 ms 46 ms 45.65% 〰️
classifications tree 50k classifications and excluded classes > collect nodes 17152 ms 23426 ms -26.78% ✅
classifications tree 50k classifications and excluded classes > collect nodes (P95 of main thread blocks) 41 ms 24 ms 70.83% 〰️
classifications tree 50k classifications and excluded classes > validate initial visibility 11623 ms 5553 ms 109.31% 🚨
classifications tree 50k classifications and excluded classes > validate initial visibility (P95 of main thread blocks) 8887 ms 3308 ms 168.65% 🚨
classifications tree 50k classifications and excluded classes > change visibility 152 ms 110 ms 38.18% 〰️
classifications tree 50k classifications and excluded classes > change visibility (P95 of main thread blocks) 22 ms 0 ms 2200% 〰️
classifications tree 50k classifications and excluded classes > validate changed visibility 3386 ms 2327 ms 45.51% 🚨
classifications tree 50k classifications and excluded classes > validate changed visibility (P95 of main thread blocks) 59 ms 44 ms 34.09% 〰️

This comment was automatically generated by workflow using github-action-benchmark.

@MartynasStrazdas
MartynasStrazdas marked this pull request as ready for review October 2, 2026 07:59
@MartynasStrazdas
MartynasStrazdas requested review from a team as code owners October 2, 2026 07:59
Copilot AI balanced review requested due to automatic review settings October 2, 2026 07:59

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.

Copilot review overview

🟡 Changes recommended

Several upgraded packages have peer requirements incompatible with the declared iTwin Core and React versions.

Review effort: Balanced
Findings: 4 Medium severity

Open (4)
What changed in this PR

Updates the tree widget dependency stack and adapts code, styling, tests, and documentation to revised APIs.

Changes:

  • Upgrades iTwin Presentation, StrataKit, MUI, and Playwright dependencies.
  • Migrates hierarchy access from class inspectors to schema providers.
  • Updates spacing tokens, tests, screenshots, and documentation.
File Description
pnpm-workspace.yaml Adds Playwright overrides and removes alpha exclusions.
packages/​tree-widget/​vitest.config.ts Tightens screenshot comparison threshold.
packages/​tree-widget/​src/​tree-widget-react/​trees/​models-tree/​ModelsTreeDefinition.ts Migrates model hierarchy schema access.
packages/​tree-widget/​src/​tree-widget-react/​trees/​models-tree/​internal/​visibility/​SearchResultsTree.ts Updates schema-access types.
packages/​tree-widget/​src/​tree-widget-react/​trees/​models-tree/​internal/​visibility/​ModelsTreeVisibilityHandler.ts Updates visibility-handler access types.
packages/​tree-widget/​src/​tree-widget-react/​trees/​models-tree/​internal/​UseSearchPaths.ts Updates search-path schema access.
packages/​tree-widget/​src/​tree-widget-react/​trees/​imodel-content-tree/​IModelContentTreeDefinition.ts Migrates hierarchy definition API.
packages/​tree-widget/​src/​tree-widget-react/​trees/​external-sources-tree/​ExternalSourcesTreeDefinition.ts Migrates labels and hierarchy APIs.
packages/​tree-widget/​src/​tree-widget-react/​trees/​classifications-tree/​internal/​visibility/​SearchResultsTree.ts Updates schema-access types.
packages/​tree-widget/​src/​tree-widget-react/​trees/​classifications-tree/​internal/​visibility/​ClassificationsTreeVisibilityHandler.ts Updates visibility-handler types.
packages/​tree-widget/​src/​tree-widget-react/​trees/​classifications-tree/​ClassificationsTreeDefinition.ts Migrates classification hierarchy APIs.
packages/​tree-widget/​src/​tree-widget-react/​trees/​categories-tree/​internal/​visibility/​SearchResultsTree.ts Updates category schema-access types.
packages/​tree-widget/​src/​tree-widget-react/​trees/​categories-tree/​internal/​visibility/​CategoriesTreeVisibilityHandler.ts Updates visibility-handler types.
packages/​tree-widget/​src/​tree-widget-react/​trees/​categories-tree/​CategoriesTreeDefinition.ts Migrates category hierarchy APIs.
packages/​tree-widget/​src/​tree-widget-react/​tree-header/​WidgetHeader.css Migrates spacing tokens.
packages/​tree-widget/​src/​tree-widget-react/​tree-header/​SelectableTree.css Migrates toolbar spacing tokens.
packages/​tree-widget/​src/​tree-widget-react/​shared/​internal/​hooks/​UseIModelAccess.ts Uses the new schema-provider API.
packages/​tree-widget/​src/​tree-widget-react/​shared/​internal/​hooks/​UseCachedVisibility.ts Updates cached visibility types.
packages/​tree-widget/​src/​tree-widget-react/​shared/​components/​VisibilityTree.tsx Updates the public visibility factory type.
packages/​tree-widget/​src/​tree-widget-react/​shared/​components/​TreeNodeVisibilityButton.tsx Renames the memoized component function.
packages/​tree-widget/​src/​tree-widget-react/​shared/​components/​TreeNodeCheckbox.scss Migrates a spacing token.
packages/​tree-widget/​src/​tree-widget-react/​shared/​components/​Tree.css Migrates tree padding token.
packages/​tree-widget/​src/​tree-widget-react/​shared/​components/​SkeletonTree.css Migrates skeleton spacing tokens.
packages/​tree-widget/​src/​tree-widget-react/​shared/​components/​EmptyTree.css Migrates empty-state spacing tokens.
packages/​tree-widget/​src/​test/​trees/​models-tree/​internal/​ModelsTreeVisibilityHandler.Unit.test.ts Uses valid IDs and revised access types.
packages/​tree-widget/​src/​test/​trees/​Common.ts Updates test schema-provider creation.
packages/​tree-widget/​src/​test/​shared/​internal/​AlwaysAndNeverDrawnElementInfoCache.test.ts Avoids invalid zero IDs.
packages/​tree-widget/​src/​e2e-tests/​IModelContentTree.test.ts Adjusts expanded-tree screenshot coverage.
packages/​tree-widget/​README.md Updates hierarchy API examples.
packages/​tree-widget/​package.json Upgrades tree-widget dependencies.
packages/​tree-widget/​api/​tree-widget-react.api.md Refreshes the extracted API contract.
packages/​test-utilities/​tsconfig.json Adds Node global types.
packages/​test-utilities/​src/​test-utilities/​IModelUtils.ts Removes obsolete element-property casts.
packages/​test-utilities/​package.json Upgrades Presentation Shared.
packages/​property-grid/​pnpm-lock.yaml Refreshes Playwright resolutions.
packages/​property-grid/​package.json Upgrades Playwright tooling.
apps/​test-viewer/​src/​components/​custom-classifications-tree/​CustomClassificationsTree.tsx Migrates custom schema-provider creation.
apps/​test-viewer/​package.json Upgrades viewer dependencies.
apps/​performance-tests/​src/​tree-widget/​StatelessHierarchyProvider.ts Simplifies schema-provider construction.
apps/​performance-tests/​pnpm-lock.yaml Refreshes dependency resolutions.
apps/​performance-tests/​package.json Upgrades performance-test dependencies.
apps/​learning-snippets/​src/​test/​tree-widget/​CustomVisibilityTree.test.tsx Updates hierarchy API usage.
apps/​learning-snippets/​src/​test/​tree-widget/​CustomTree.test.tsx Updates hierarchy API usage.
apps/​learning-snippets/​package.json Upgrades learning-app dependencies.
Files not reviewed (2)
  • apps/performance-tests/pnpm-lock.yaml: Generated file
  • packages/property-grid/pnpm-lock.yaml: Generated file

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread apps/learning-snippets/package.json Outdated
Comment thread apps/performance-tests/package.json
Comment thread apps/test-viewer/package.json
Comment thread packages/tree-widget/package.json Outdated
Comment thread apps/performance-tests/package.json Outdated
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.

3 participants