Skip to content

build(eslint-config-fluid): move back to independent workspace#26427

Open
tylerbutler wants to merge 1 commit intomicrosoft:mainfrom
tylerbutler:eslint-return-solo
Open

build(eslint-config-fluid): move back to independent workspace#26427
tylerbutler wants to merge 1 commit intomicrosoft:mainfrom
tylerbutler:eslint-return-solo

Conversation

@tylerbutler
Copy link
Member

Summary

Reverses #25806 which temporarily moved @fluidframework/eslint-config-fluid into the client release group. The package is restored as an independently versioned workspace at v9.0.0, preparing it for its next published release with ESLint 9 flat config support.

Changes

  • eslint-config-fluid package.json: Version set to 9.0.0, removed private: true, removed clean script and typeValidation block. All ESLint 9 work (flat config, typescript-eslint 8.54, etc.) is preserved.
  • Root workspace: Removed from pnpm-workspace.yaml. Root package.json now uses link: protocol with a pnpm override to resolve ~9.0.0 references across the workspace, plus a postinstall script to install transitive deps (same pattern as server/routerlicious and build-tools).
  • 154 client packages: Dependency changed from workspace:~ to ~9.0.0.
  • fluidBuild.config.cjs: Removed temporary npm-private-packages policy exclusion.
  • syncpack.config.cjs: Re-enabled version consistency check for eslint-config-fluid.
  • build-client.yml: Removed temporary path exclusions for eslint-config-fluid.
  • build-eslint-config-fluid.yml: Re-enabled taskPack for publishing.

Reverses the temporary move of eslint-config-fluid into the client
release group (PR microsoft#25806). The package is now an independent workspace
again at version 9.0.0.

- Set version to 9.0.0, removed private flag and typeValidation
- Removed from root pnpm-workspace.yaml
- Root package.json uses link: protocol with pnpm override + postinstall
- Updated 154 client packages from workspace:~ to ~9.0.0
- Re-enabled syncpack version consistency check
- Re-enabled taskPack in eslint-config-fluid pipeline
- Removed temporary npm-private-packages policy exclusion
- Removed eslint-config-fluid path excludes from build-client pipeline
Copilot AI review requested due to automatic review settings February 12, 2026 02:27
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Restores @fluidframework/eslint-config-fluid as an independently versioned workspace (v9.0.0) instead of being part of the client release group, and updates the repo to consume it via ~9.0.0 while using a local link: override for in-repo development/builds.

Changes:

  • Removed common/build/eslint-config-fluid from the root pnpm workspace and re-enabled its publish/pack behavior in CI.
  • Updated repo packages to depend on @fluidframework/eslint-config-fluid via ~9.0.0 instead of workspace:*.
  • Updated root dependency resolution to use link: + pnpm override and added a root postinstall to install transitive deps for the linked config.

Reviewed changes

Copilot reviewed 161 out of 162 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tools/pipelines/build-eslint-config-fluid.yml Re-enables default packing behavior by removing the taskPack: false override.
tools/pipelines/build-client.yml Removes temporary path exclusions now that eslint-config-fluid is no longer in the client release group.
syncpack.config.cjs Re-enables syncpack version consistency checks for @fluidframework/eslint-config-fluid.
pnpm-workspace.yaml Removes common/build/eslint-config-fluid from the root workspace packages list.
package.json Adds a postinstall to install eslint-config-fluid’s deps; switches root dependency to local link and adds pnpm override.
fluidBuild.config.cjs Removes temporary policy-check exclusion for eslint-config-fluid.
common/build/eslint-config-fluid/package.json Marks eslint-config-fluid as publishable again and bumps version to 9.0.0.
packages/utils/tool-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/utils/telemetry-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/utils/odsp-doclib-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/tools/replay-tool/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/tools/fluid-runner/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/tools/fetch-tool/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/tools/devtools/devtools/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/tools/devtools/devtools-view/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/tools/devtools/devtools-test-app/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/tools/devtools/devtools-core/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/tools/devtools/devtools-browser-extension/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/tools/changelog-generator-wrapper/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/test-version-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/test-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/test-service-load/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/test-pairwise-generator/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/test-end-to-end-tests/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/test-drivers/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/test-driver-definitions/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/stochastic-test-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/snapshots/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/mocha-test-setup/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/local-server-tests/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/local-server-stress-tests/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/test/functional-tests/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/service-clients/tinylicious-client/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/service-clients/odsp-client/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/service-clients/end-to-end-tests/odsp-client/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/service-clients/end-to-end-tests/azure-client/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/service-clients/azure-client/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/runtime/test-runtime-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/runtime/runtime-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/runtime/runtime-definitions/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/runtime/id-compressor/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/runtime/datastore/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/runtime/datastore-definitions/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/runtime/container-runtime/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/runtime/container-runtime-definitions/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/loader/test-loader-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/loader/driver-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/loader/container-loader/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/undo-redo/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/tree-agent/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/tree-agent-ses/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/tree-agent-langchain/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/synthesize/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/request-handler/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/react/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/presence/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/oldest-client-observer/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/fluid-static/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/fluid-framework/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/dds-interceptions/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/data-object-base/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/attributor/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/aqueduct/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/framework/agent-scheduler/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/tinylicious-driver/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/routerlicious-urlResolver/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/routerlicious-driver/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/replay-driver/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/odsp-urlResolver/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/odsp-driver/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/odsp-driver-definitions/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/local-driver/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/file-driver/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/driver-web-cache/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/driver-base/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/drivers/debugger/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/tree/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/test-dds-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/task-manager/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/shared-summary-block/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/shared-object-base/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/sequence/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/register-collection/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/pact-map/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/ordered-collection/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/merge-tree/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/matrix/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/map/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/legacy-dds/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/ink/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/counter/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/dds/cell/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/common/driver-definitions/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/common/core-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/common/core-interfaces/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/common/container-definitions/package.json Switches eslint-config-fluid dependency to ~9.0.0.
packages/common/client-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
experimental/framework/last-edited/package.json Switches eslint-config-fluid dependency to ~9.0.0.
experimental/framework/data-objects/package.json Switches eslint-config-fluid dependency to ~9.0.0.
experimental/dds/tree/package.json Switches eslint-config-fluid dependency to ~9.0.0.
experimental/dds/sequence-deprecated/package.json Switches eslint-config-fluid dependency to ~9.0.0.
experimental/dds/ot/sharejs/json1/package.json Switches eslint-config-fluid dependency to ~9.0.0.
experimental/dds/ot/ot/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/view-integration/view-framework-sampler/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/view-integration/external-views/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/view-integration/container-views/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/version-migration/tree-shim/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/version-migration/separate-container/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/version-migration/same-container/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/version-migration/live-schema-upgrade/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/utils/webpack-fluid-loader/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/utils/migration-tools/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/utils/import-testing/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/utils/example-webpack-integration/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/utils/example-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/utils/example-driver/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/utils/bundle-size-tests/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/service-clients/odsp-client/shared-tree-demo/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/service-clients/azure-client/todo-list/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/service-clients/azure-client/external-controller/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/external-data/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/webflow/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/todo/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/text-editor/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/table-tree/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/table-document/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/smde/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/prosemirror/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/multiview/triangle-view/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/multiview/slider-coordinate-view/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/multiview/plot-coordinate-view/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/multiview/interface/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/multiview/coordinate-model/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/multiview/container/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/multiview/constellation-view/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/multiview/constellation-model/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/monaco/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/inventory-app/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/codemirror/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/clicker/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/data-objects/canvas/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/client-logger/app-insights-logger/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/benchmarks/tablebench/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/benchmarks/odspsnapshotfetch-perftestapp/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/benchmarks/bubblebench/shared-tree/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/benchmarks/bubblebench/ot/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/benchmarks/bubblebench/experimental-tree/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/benchmarks/bubblebench/common/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/benchmarks/bubblebench/baseline/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/apps/tree-comparison/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/apps/tree-cli-app/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/apps/task-selection/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/apps/staging/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/apps/presence-tracker/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/apps/diceroller/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/apps/data-object-grid/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/apps/contact-collection/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/apps/collaborative-textarea/package.json Switches eslint-config-fluid dependency to ~9.0.0.
examples/apps/blobs/package.json Switches eslint-config-fluid dependency to ~9.0.0.
azure/packages/azure-service-utils/package.json Switches eslint-config-fluid dependency to ~9.0.0.
azure/packages/azure-local-service/package.json Switches eslint-config-fluid dependency to ~9.0.0.

Comment on lines 223 to 227
"@fluidframework/build-common",
"@fluidframework/build-tools",
"@fluidframework/common-utils",
// Temporarily disabled while eslint-config-fluid is part of the client release group
// "@fluidframework/eslint-config-fluid",
"@fluidframework/eslint-config-fluid",
"@fluidframework/protocol-definitions",
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

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

Re-enabling @fluidframework/eslint-config-fluid in this versionGroup will make syncpack list-mismatches enforce a single specifier for that dependency across the workspace. Since the root package currently uses a link: spec while most packages are ~9.0.0, this will fail until the root is aligned (or the dependency is excluded again).

Copilot uses AI. Check for mistakes.
"generate:packageList:internal-test": "flub list client --no-private --feed internal-test --outFile feeds/internal-test.txt",
"generate:packageList:public": "flub list client --no-private --feed public --outFile feeds/public.txt",
"generate:packagesMd": "flub check layers --info layerInfo.json --md .",
"postinstall": "cd common/build/eslint-config-fluid && pnpm install",
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

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

The root postinstall runs pnpm install inside common/build/eslint-config-fluid without --frozen-lockfile. In CI, this can cause common/build/eslint-config-fluid/pnpm-lock.yaml to be updated (e.g., if pnpm version/metadata differs) and then fail the pipeline’s "Check for extraneous modified files" step. Update this to install with --frozen-lockfile (and optionally use pnpm install --dir ... / pnpm -C ... to avoid cd).

Copilot uses AI. Check for mistakes.
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.

1 participant