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

tree: Allow MapNodes from Records #22042

Merged
merged 6 commits into from
Jul 29, 2024
Merged

Conversation

CraigMacomber
Copy link
Contributor

Description

Allow Record typed object to be used to construct MapNodes.

More details in changeset.

This is one change of several working toward improved JSON compatibility.

Reviewer Guidance

The review process is outlined on this wiki page.

@CraigMacomber CraigMacomber requested review from a team as code owners July 26, 2024 23:15
Copy link

changeset-bot bot commented Jul 26, 2024

🦋 Changeset detected

Latest commit: 18e089f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 157 packages
Name Type
fluid-framework Major
@fluidframework/tree Major
@fluid-example/presence-tracker Major
@fluid-example/inventory-app Major
@fluid-example/app-integration-external-controller Major
@fluid-example/shared-tree-demo Major
@fluid-example/bundle-size-tests Major
@fluid-example/tree-comparison Major
@fluid-example/bubblebench-shared-tree Major
@fluid-internal/tablebench Major
@fluid-example/tree-shim Major
@fluid-experimental/property-shared-tree-interop Major
@fluid-experimental/tree Major
@fluid-experimental/tree-react-api Major
@fluidframework/fluid-telemetry Major
@fluidframework/azure-client Major
@fluidframework/azure-end-to-end-tests Major
@fluid-internal/functional-tests Major
@fluid-private/test-end-to-end-tests Major
@fluidframework/devtools-core Major
@fluid-example/devtools-example Major
@fluid-example/bubblebench-common Major
@fluid-example/bubblebench-experimental-tree Major
@fluid-internal/devtools-browser-extension Major
@fluid-internal/devtools-view Major
@fluidframework/devtools Major
@fluid-example/bubblebench-baseline Major
@fluid-example/bubblebench-ot Major
@fluid-example/attributable-map Major
@fluid-example/collaborative-textarea Major
@fluid-example/contact-collection Major
@fluid-example/data-object-grid Major
@fluid-example/task-selection Major
@fluid-example/odspsnapshotfetch-perftestapp Major
@fluid-example/app-insights-logger Major
@fluid-example/canvas Major
@fluid-example/clicker Major
@fluid-example/codemirror Major
@fluid-example/diceroller Major
@fluid-example/monaco Major
@fluid-example/multiview-constellation-model Major
@fluid-example/multiview-constellation-view Major
@fluid-example/multiview-container Major
@fluid-example/multiview-coordinate-model Major
@fluid-example/multiview-coordinate-interface Major
@fluid-example/multiview-plot-coordinate-view Major
@fluid-example/multiview-slider-coordinate-view Major
@fluid-example/multiview-triangle-view Major
@fluid-example/prosemirror Major
@fluid-example/smde Major
@fluid-example/table-document Major
@fluid-example/todo Major
@fluid-example/webflow Major
@fluid-example/app-integration-external-data Major
@fluid-example/example-utils Major
@fluid-example/webpack-fluid-loader Major
@fluid-example/app-integration-live-schema-upgrade Major
@fluid-example/version-migration-same-container Major
@fluid-example/app-integration-schema-upgrade Major
@fluid-example/app-integration-container-views Major
@fluid-example/app-integration-external-views Major
@fluid-example/view-framework-sampler Major
@fluid-example/property-inspector Major
@fluid-example/schemas Major
@fluid-experimental/azure-scenario-runner Major
@fluid-experimental/property-binder Major
@fluid-experimental/property-changeset Major
@fluid-experimental/property-common Major
@fluid-experimental/property-dds Major
@fluid-experimental/property-inspector-table Major
@fluid-experimental/property-properties Major
@fluid-experimental/property-proxy Major
@fluid-experimental/property-query Major
@fluid-experimental/attributable-map Major
@fluid-experimental/ot Major
@fluid-experimental/sharejs-json1 Major
@fluid-experimental/sequence-deprecated Major
@fluid-experimental/data-objects Major
@fluid-experimental/last-edited Major
@fluid-experimental/ink Major
@fluid-experimental/pact-map Major
@fluid-experimental/attributor Major
@fluid-experimental/data-object-base Major
@fluid-experimental/dds-interceptions Major
@fluid-experimental/oldest-client-observer Major
@fluid-experimental/odsp-end-to-end-tests Major
@fluid-internal/platform-dependent Major
@fluid-internal/client-utils Major
@fluid-internal/local-server-tests Major
@fluid-internal/mocha-test-setup Major
@fluid-internal/test-snapshots Major
@fluid-internal/test-app-insights-logger Major
@fluid-internal/test-driver-definitions Major
@fluid-internal/test-service-load Major
@fluid-internal/replay-tool Major
@fluid-private/test-dds-utils Major
@fluid-private/test-loader-utils Major
@fluid-private/stochastic-test-utils Major
@fluid-private/test-drivers Major
@fluid-private/test-pairwise-generator Major
@fluid-private/test-version-utils Major
@fluid-private/changelog-generator-wrapper Major
@fluid-tools/fetch-tool Major
@fluid-tools/markdown-magic Major
@fluidframework/azure-local-service Major
@fluidframework/azure-service-utils Major
@fluidframework/container-definitions Major
@fluidframework/core-interfaces Major
@fluidframework/core-utils Major
@fluidframework/driver-definitions Major
@fluidframework/cell Major
@fluidframework/counter Major
@fluidframework/map Major
@fluidframework/matrix Major
@fluidframework/merge-tree Major
@fluidframework/ordered-collection Major
@fluidframework/register-collection Major
@fluidframework/sequence Major
@fluidframework/shared-object-base Major
@fluidframework/shared-summary-block Major
@fluidframework/task-manager Major
@fluidframework/debugger Major
@fluidframework/driver-base Major
@fluidframework/driver-web-cache Major
@fluidframework/file-driver Major
@fluidframework/local-driver Major
@fluidframework/odsp-driver-definitions Major
@fluidframework/odsp-driver Major
@fluidframework/odsp-urlresolver Major
@fluidframework/replay-driver Major
@fluidframework/routerlicious-driver Major
@fluidframework/routerlicious-urlresolver Major
@fluidframework/tinylicious-driver Major
@fluidframework/agent-scheduler Major
@fluidframework/aqueduct Major
@fluidframework/app-insights-logger Major
@fluidframework/fluid-static Major
@fluidframework/request-handler Major
@fluidframework/synthesize Major
@fluidframework/undo-redo Major
@fluidframework/container-loader Major
@fluidframework/driver-utils Major
@fluidframework/container-runtime-definitions Major
@fluidframework/container-runtime Major
@fluidframework/datastore-definitions Major
@fluidframework/datastore Major
@fluidframework/id-compressor Major
@fluidframework/runtime-definitions Major
@fluidframework/runtime-utils Major
@fluidframework/test-runtime-utils Major
@fluidframework/odsp-client Major
@fluidframework/tinylicious-client Major
@fluidframework/test-utils Major
@fluidframework/fluid-runner Major
@fluidframework/odsp-doclib-utils Major
@fluidframework/telemetry-utils Major
@fluidframework/tool-utils Major

Not sure what this means? Click here to learn what changesets are.

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

@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: tree area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct changeset-present public api change Changes to a public API base: main PRs targeted against main branch labels Jul 26, 2024
```

This new feature makes it possible for schema,
which do not require unhydrated nodes to differentiate ambiguous unions,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Detection of which schema have this ambiguity issue, and some related details and API which build on the Json support added in this PR are included in #22022 as drafts.

@msfluid-bot
Copy link
Collaborator

msfluid-bot commented Jul 27, 2024

@fluid-example/bundle-size-tests: +379 Bytes
Metric NameBaseline SizeCompare SizeSize Diff
aqueduct.js 460.35 KB 460.38 KB +35 Bytes
azureClient.js 557.59 KB 557.64 KB +49 Bytes
connectionState.js 680 Bytes 680 Bytes No change
containerRuntime.js 261.03 KB 261.04 KB +14 Bytes
fluidFramework.js 409.02 KB 409.1 KB +81 Bytes
loader.js 134.04 KB 134.05 KB +14 Bytes
map.js 42.13 KB 42.14 KB +7 Bytes
matrix.js 146.41 KB 146.42 KB +7 Bytes
odspClient.js 525.73 KB 525.78 KB +49 Bytes
odspDriver.js 97.55 KB 97.57 KB +21 Bytes
odspPrefetchSnapshot.js 42.61 KB 42.62 KB +14 Bytes
sharedString.js 163.13 KB 163.14 KB +7 Bytes
sharedTree.js 399.53 KB 399.6 KB +74 Bytes
Total Size 3.31 MB 3.31 MB +379 Bytes

Baseline commit: cb1d7c7

Generated by 🚫 dangerJS against 18e089f

Copy link
Contributor

@alexvy86 alexvy86 left a comment

Choose a reason for hiding this comment

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

Changeset looks good, just left a rewording suggestion.

const fromRecord = new Schema({ x: 5 });
```

This new feature makes it possible for schema,
Copy link
Contributor

Choose a reason for hiding this comment

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

Rewording suggestion. I think I got the meaning right.

Suggested change
This new feature makes it possible for schema,
This new feature makes it possible for schemas to construct a tree entirely from JSON compatible objects using their constructors, as long as they do not require unhydrated nodes to differentiate ambiguous unions.

Copy link
Contributor Author

@CraigMacomber CraigMacomber Jul 29, 2024

Choose a reason for hiding this comment

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

If you want to suggest changing multiple lines, you should select multiple lines when making the comment. Applying that suggestion would just replace line 18 with that, which I'm pretty sure is not what you intended. You can also use the preview feature to ensure the diff is replacing the right things.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

applied slightly reworked version of change separate from this thread. Good rephrasing!

@CraigMacomber CraigMacomber enabled auto-merge (squash) July 29, 2024 18:03
@CraigMacomber CraigMacomber merged commit 25deff3 into microsoft:main Jul 29, 2024
30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: dds: tree area: dds Issues related to distributed data structures area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct base: main PRs targeted against main branch changeset-present public api change Changes to a public API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants