refactor(client): remove now-unused data-object-base package - #28024
Conversation
|
Hi! Thank you for opening this PR. Want me to review it? Based on the diff (1035 lines, 31 files), I've queued these reviewers:
How this works
|
There was a problem hiding this comment.
Pull request overview
Prepares internal runtime wiring to support an explicit “oldest supported client” compatibility choice by threading compatibility fields through existing runtime factory and attributor plumbing, without changing external requiredness yet.
Changes:
- Thread
oldestSupportedClientthroughdata-object-base’sRuntimeFactoryintoloadContainerRuntime. - Update
mixinAttributorto forwardoldestSupportedClientand deprecatedminVersionForCollabwhile continuing to filter unrelated parameters. - Add a focused attributor unit test to validate forwarding behavior and parameter filtering.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| packages/framework/data-object-base/src/runtimeFactory.ts | Stores and forwards oldestSupportedClient into loadContainerRuntime during pre-initialize. |
| packages/framework/attributor/src/mixinAttributor.ts | Extends the delegated-parameter allowlist to include compatibility fields while maintaining filtering. |
| packages/framework/attributor/src/test/mixinAttributor.spec.ts | Adds a regression test ensuring compatibility fields are forwarded and unrelated params remain filtered. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
3a4b842 to
4be180a
Compare
Delete the unreferenced internal data-object-base RuntimeFactory rather than carrying dead code through the explicit compatibility migration. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ea3a180-8445-43b1-9fc0-78bbc399b8d3
e349f88 to
755bc3c
Compare
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ea3a180-8445-43b1-9fc0-78bbc399b8d3
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ea3a180-8445-43b1-9fc0-78bbc399b8d3
36c163d to
251022a
Compare
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ea3a180-8445-43b1-9fc0-78bbc399b8d3
Matt Rakow (ChumpChief)
left a comment
There was a problem hiding this comment.
Exciting!
Co-authored-by: Joshua Smithrud <54606601+Josmithr@users.noreply.github.com>
| @@ -0,0 +1,10 @@ | |||
| --- | |||
| "@fluidframework/aqueduct": minor | |||
There was a problem hiding this comment.
Because we've specified aqueduct here, these notes will appear in its changelog. I'm not sure these notes are valuable to consumers of the aqueduct package. We may actually just want to not have a changeset for this PR.
There was a problem hiding this comment.
What is the right way to have a release note that is related to a package that no longer exists? Can there be a changeset with no package association?
There was a problem hiding this comment.
That's a good question. I don't think we have a good setup for this. Maybe we just manually add a note when we go to generate the release notes?
Joshua Smithrud (Josmithr)
left a comment
There was a problem hiding this comment.
Approved for docs, but please see my note here: https://github.com/microsoft/FluidFramework/pull/28024/changes#r3832462177
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ea3a180-8445-43b1-9fc0-78bbc399b8d3
Jason Hartman (jason-ha)
left a comment
There was a problem hiding this comment.
We should have a changeset or at least release notes for any package removal.
Otherwise, :)
|
🔗 No broken links found! ✅ Your attention to detail is admirable. linkcheck output |
|
Ok so instead of an acqueduct changeset, I created #28043 as a sub-issue of Client 3.0 breaking change tracker and linked it to this PR. In the issue I added an explicit checklist and suggested text for manually including the removal in the release notes when they are generated for 3.0 release. |
Bundle size comparisonBase commit: Notable changesNo bundles changed by ≥ 500 bytes parsed. Per-bundle deltas
|
Description
Removes the now-unused
@fluid-experimental/data-object-basepackage. Its sole implementation was an internal runtime factory with no repository consumers. Removing that dead factory left the package with no implementation or supported public, beta, or alpha API surface, so this PR also removes the remaining package shell.The change removes the package from release feeds, the package-layer listing, formatter ignores, the lockfile, and the existing ES2022 changeset. Consumers should use the data object and runtime factory APIs from
@fluidframework/aqueduct.This is preparatory cleanup for PR #27971. AB#42061
Fixes #28043.
Breaking Changes
@fluid-experimental/data-object-basewill no longer be published with Client 3.0. Before removal, the package had no supported public, beta, or alpha API surface and no repository consumers. Applications should use@fluidframework/aqueductinstead.See Breaking vs. non-breaking changes.
Reviewer Guidance
The review process is outlined in the pull request guidelines.
Please verify that no active package or source dependency remains and that the feed/package-list cleanup is complete.