Skip to content

[Tree widget]: add v4 changesets on next - #1795

Draft
JonasDov wants to merge 8 commits into
tree-widget/nextfrom
JonasD/next-changesets
Draft

JonasDov wants to merge 8 commits into
tree-widget/nextfrom
JonasD/next-changesets

Conversation

@JonasDov

@JonasDov JonasDov commented Aug 31, 2026 •

Copy link
Copy Markdown
Contributor

closes #1737
To release v4, it should be enough to remove all other existing changesets and keep only v4-major/minor/patch.
Until v4 is released for each new change we should:

  • Create a changeset file for that change, so a new release is documented and release pr is created.
  • Update MigrationGuide.md, README.md and v4-major/minor/patch changeset if applicable.

This is almost done, the only thing left is to update the performance section. I think it is a good idea to complete #1793 and #1569 before finishing this, as they will alter the performance results.

@JonasDov JonasDov linked an issue Aug 31, 2026 that may be closed by this pull request

@grigasp grigasp left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is good as a list of technical changes that were made. However, I think if I was a consumer and saw this huge list of changes I would get scared more than excited about the new stuff.

Any ideas how we could:

  1. Expose the new features and improvements better, so anyone looking at the changelog document (or some other document) would want to upgrade?
  2. Reassure consumers that migration is maybe not as painful as it might look like?

@JonasDov

JonasDov commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

This is good as a list of technical changes that were made. However, I think if I was a consumer and saw this huge list of changes I would get scared more than excited about the new stuff.

Any ideas how we could:

  1. Expose the new features and improvements better, so anyone looking at the changelog document (or some other document) would want to upgrade?
  2. Reassure consumers that migration is maybe not as painful as it might look like?

Changed, have a look

@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: e423fe8 Previous: 4d29129 Deviation Status
models tree 50k 3D elements search > get search paths 577 ms 833 ms -30.73% ✅
models tree 50k 3D elements search > get search paths (P95 of main thread blocks) 35 ms 53 ms -33.96% 〰️
models tree 50k 3D elements search > load hierarchy from search paths 72167 ms 87485 ms -17.51% ✅
models tree 50k 3D elements search > load hierarchy from search paths (P95 of main thread blocks) 30 ms 36 ms -16.67% 〰️
models tree 50k categories > collect nodes 1577 ms 2439 ms -35.34% ✅
models tree 50k categories > collect nodes (P95 of main thread blocks) 65 ms 95 ms -31.58% 〰️
models tree 50k categories > validate initial visibility 2005 ms 2641 ms -24.08% ✅
models tree 50k categories > validate initial visibility (P95 of main thread blocks) 143 ms 188 ms -23.94% 〰️
models tree 50k categories > change visibility 146 ms 204 ms -28.43% ✅
models tree 50k categories > change visibility (P95 of main thread blocks) 45 ms 56 ms -19.64% 〰️
models tree 50k categories > validate changed visibility 1829 ms 2584 ms -29.22% ✅
models tree 50k categories > validate changed visibility (P95 of main thread blocks) 0 ms 25 ms -100% 〰️
models tree 50k 3D elements > collect nodes 26657 ms 34602 ms -22.96% ✅
models tree 50k 3D elements > collect nodes (P95 of main thread blocks) 30 ms 100 ms -70% ✅
models tree 50k 3D elements > validate initial visibility 1253 ms 1473 ms -14.94% ✅
models tree 50k 3D elements > validate initial visibility (P95 of main thread blocks) 0 ms 0 ms 0% 🟰
models tree 50k 3D elements > change model visibility 59 ms 106 ms -44.34% 〰️
models tree 50k 3D elements > change model visibility (P95 of main thread blocks) 0 ms 0 ms 0% 🟰
models tree 50k 3D elements > validate changed model visibility 1753 ms 2262 ms -22.50% ✅
models tree 50k 3D elements > validate changed model visibility (P95 of main thread blocks) 0 ms 0 ms 0% 🟰
models tree 50k 3D elements > change category node visibility 333 ms 512 ms -34.96% ✅
models tree 50k 3D elements > change category node visibility (P95 of main thread blocks) 28 ms 57 ms -50.88% 〰️
models tree 50k 3D elements > validate changed category visibility 1364 ms 1765 ms -22.72% ✅
models tree 50k 3D elements > validate changed category visibility (P95 of main thread blocks) 28 ms 114 ms -75.44% ✅
models tree 50k 3D elements > validate per-model category override 1297 ms 1557 ms -16.70% ✅
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 39 ms 44 ms -11.36% 〰️
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 1603 ms 2312 ms -30.67% ✅
models tree 50k 3D elements > validate changed element visibility (P95 of main thread blocks) 29 ms 58 ms -50% 〰️
models tree 50k 3D child elements with different categories > collect nodes 32478 ms 44093 ms -26.34% ✅
models tree 50k 3D child elements with different categories > collect nodes (P95 of main thread blocks) 37 ms 78 ms -52.56% 〰️
models tree 50k 3D child elements with different categories > validate initial visibility 1517 ms 2360 ms -35.72% ✅
models tree 50k 3D child elements with different categories > validate initial visibility (P95 of main thread blocks) 0 ms 23 ms -100% 〰️
models tree 50k 3D child elements with different categories > change visibility 52 ms 50 ms 4% 〰️
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 4215 ms 5683 ms -25.83% ✅
models tree 50k 3D child elements with different categories > validate changed visibility (P95 of main thread blocks) 42 ms 90 ms -53.33% 〰️
models tree 50k 3D child elements with different categories and excluded classes > collect nodes 32733 ms 44156 ms -25.87% ✅
models tree 50k 3D child elements with different categories and excluded classes > collect nodes (P95 of main thread blocks) 37 ms 79 ms -53.16% 〰️
models tree 50k 3D child elements with different categories and excluded classes > validate initial visibility 2140 ms 2496 ms -14.26% ✅
models tree 50k 3D child elements with different categories and excluded classes > validate initial visibility (P95 of main thread blocks) 48 ms 77 ms -37.66% 〰️
models tree 50k 3D child elements with different categories and excluded classes > change visibility 51 ms 52 ms -1.92% 〰️
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 5834 ms 7063 ms -17.40% ✅
models tree 50k 3D child elements with different categories and excluded classes > validate changed visibility (P95 of main thread blocks) 57 ms 106 ms -46.23% 〰️
categories tree 50k subCategories search > get search paths 678 ms 955 ms -29.01% ✅
categories tree 50k subCategories search > get search paths (P95 of main thread blocks) 67 ms 74 ms -9.46% 〰️
categories tree 50k subCategories search > load hierarchy from search paths 3458 ms 5732 ms -39.67% ✅
categories tree 50k subCategories search > load hierarchy from search paths (P95 of main thread blocks) 29 ms 60 ms -51.67% 〰️
categories tree 50k subCategories > collect nodes 3361 ms 5539 ms -39.32% ✅
categories tree 50k subCategories > collect nodes (P95 of main thread blocks) 24 ms 41 ms -41.46% 〰️
categories tree 50k subCategories > validate initial visibility 1017 ms 1187 ms -14.32% ✅
categories tree 50k subCategories > validate initial visibility (P95 of main thread blocks) 0 ms 26 ms -100% 〰️
categories tree 50k subCategories > change visibility 326 ms 354 ms -7.91% 〰️
categories tree 50k subCategories > change visibility (P95 of main thread blocks) 0 ms 0 ms 0% 🟰
categories tree 50k subCategories > validate changed visibility 1001 ms 1095 ms -8.58% 〰️
categories tree 50k subCategories > validate changed visibility (P95 of main thread blocks) 26 ms 30 ms -13.33% 〰️
categories tree 50k categories > collect nodes 75766 ms 90332 ms -16.12% ✅
categories tree 50k categories > collect nodes (P95 of main thread blocks) 34 ms 65 ms -47.69% 〰️
categories tree 50k categories > validate initial visibility 4679 ms 6274 ms -25.42% ✅
categories tree 50k categories > validate initial visibility (P95 of main thread blocks) 78 ms 196 ms -60.20% ✅
categories tree 50k categories > change visibility 624 ms 798 ms -21.80% ✅
categories tree 50k categories > change visibility (P95 of main thread blocks) 43 ms 49 ms -12.24% 〰️
categories tree 50k categories > validate changed visibility 4311 ms 5825 ms -25.99% ✅
categories tree 50k categories > validate changed visibility (P95 of main thread blocks) 25 ms 37 ms -32.43% 〰️
categories tree 50k categories and excluded classes > collect nodes 75293 ms 92505 ms -18.61% ✅
categories tree 50k categories and excluded classes > collect nodes (P95 of main thread blocks) 36 ms 166 ms -78.31% ✅
categories tree 50k categories and excluded classes > validate initial visibility 5076 ms 7330 ms -30.75% ✅
categories tree 50k categories and excluded classes > validate initial visibility (P95 of main thread blocks) 129 ms 97 ms 32.99% 〰️
categories tree 50k categories and excluded classes > change visibility 633 ms 831 ms -23.83% ✅
categories tree 50k categories and excluded classes > change visibility (P95 of main thread blocks) 54 ms 80 ms -32.50% 〰️
categories tree 50k categories and excluded classes > validate changed visibility 5996 ms 8410 ms -28.70% ✅
categories tree 50k categories and excluded classes > validate changed visibility (P95 of main thread blocks) 0 ms 33 ms -100% 〰️
classifications tree 50k classifications search > get search paths 1480 ms 2316 ms -36.10% ✅
classifications tree 50k classifications search > get search paths (P95 of main thread blocks) 124 ms 206 ms -39.81% ✅
classifications tree 50k classifications search > load hierarchy from search paths 38408 ms 47346 ms -18.88% ✅
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 9126 ms 16928 ms -46.09% ✅
classifications tree 50k classifications > collect nodes (P95 of main thread blocks) 0 ms 48 ms -100% 〰️
classifications tree 50k classifications > validate initial visibility 6100 ms 10738 ms -43.19% ✅
classifications tree 50k classifications > validate initial visibility (P95 of main thread blocks) 2397 ms 7819 ms -69.34% ✅
classifications tree 50k classifications > change visibility 117 ms 170 ms -31.18% ✅
classifications tree 50k classifications > change visibility (P95 of main thread blocks) 0 ms 26 ms -100% 〰️
classifications tree 50k classifications > validate changed visibility 2477 ms 3719 ms -33.40% ✅
classifications tree 50k classifications > validate changed visibility (P95 of main thread blocks) 46 ms 77 ms -40.26% 〰️
classifications tree 50k classifications and excluded classes > collect nodes 10162 ms 18363 ms -44.66% ✅
classifications tree 50k classifications and excluded classes > collect nodes (P95 of main thread blocks) 27 ms 39 ms -30.77% 〰️
classifications tree 50k classifications and excluded classes > validate initial visibility 5510 ms 12511 ms -55.96% ✅
classifications tree 50k classifications and excluded classes > validate initial visibility (P95 of main thread blocks) 3197 ms 9846 ms -67.53% ✅
classifications tree 50k classifications and excluded classes > change visibility 115 ms 161 ms -28.57% 〰️
classifications tree 50k classifications and excluded classes > change visibility (P95 of main thread blocks) 0 ms 22 ms -100% 〰️
classifications tree 50k classifications and excluded classes > validate changed visibility 2423 ms 3527 ms -31.30% ✅
classifications tree 50k classifications and excluded classes > validate changed visibility (P95 of main thread blocks) 46 ms 53 ms -13.21% 〰️

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

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.

Tree widget: Docs for v4

2 participants