Skip to content

build(client): use build:esm|cjs for implementation builds instead of build:esnext and tsc - #28049

Open
Jason Hartman (jason-ha) wants to merge 4 commits into
mainfrom
build/make-compile-names-consistent
Open

build(client): use build:esm|cjs for implementation builds instead of build:esnext and tsc#28049
Jason Hartman (jason-ha) wants to merge 4 commits into
mainfrom
build/make-compile-names-consistent

Conversation

@jason-ha

@jason-ha Jason Hartman (jason-ha) commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Dependencies streamlined now that build:entrypoints and build:esm|cjs are wholly used in client (root) workspace.
build:esnext and tsc remain supported in fluidBuild.config.cjs for other workspaces.
tsc:watch is now watch:cjs.

  • note that root watch scripts are commonly defective since addition of copyfiles and other multi-step builds.

To simplify dependencies, introduces a build:package* alias set and use those instead of build:entrypoints*+build:* to represent the whole implementation build (or at least the ESM/CJS specified portion).

Also removes no longer used build:entrypoints:node10.

AB#79049

@github-actions github-actions Bot added area: examples Changes that focus on our examples area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: tools area: runtime Runtime related issues area: loader Loader related issues area: driver Driver related issues area: dds Issues related to distributed data structures area: dev experience Improving the experience of devs building on top of fluid area: repo Repo related work area: website area: dds: sharedstring area: tests Tests to add, test infrastructure improvements, etc area: dds: propertydds area: odsp-driver area: dds: tree labels Aug 21, 2026
@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Hi! Thank you for opening this PR. Want me to review it?

Based on the diff (900 lines, 164 files), I've queued these reviewers:

  • Correctness — logic errors, race conditions, lifecycle issues
  • Security — vulnerabilities, secret exposure, injection
  • API Compatibility — breaking changes, release tags, type design
  • Performance — algorithmic regressions, memory leaks
  • Testing — coverage gaps, hollow tests

How this works

  • Adjust the reviewer set by ticking/unticking boxes above. Reviewer toggles alone don't trigger anything.

  • Tick Start review below to dispatch the review fleet.

  • After review finishes, tick Start review again to request another run — it auto-resets after each dispatch.

  • This comment updates as new commits land; your reviewer selections are preserved.

  • Start review

Base automatically changed from build/clean-up-playwright-build-config to main August 21, 2026 22:27
instead of build:esnext and tsc
Dependencies streamlined now that build:entrypoints and build:esm|cjs are are wholley used in client (root) workspace.
build:esnext and tsc remain supported in fluidBuild.config.cjs for other workspaces.
tsc:watch is now watch:cjs.
  - note that root watch scripts are commonly defective since addition of copyfiles and other multi-step builds.
@jason-ha
Jason Hartman (jason-ha) force-pushed the build/make-compile-names-consistent branch from 274fb0f to dbfcf04 Compare August 21, 2026 22:27
@github-actions github-actions Bot added the base: main PRs targeted against main branch label Aug 21, 2026
by using standard "check:exports" over "check:release-tags".
simplify general build dependencies onto build:entrypoints:* even if they don't exist.
Copilot AI lite review requested due to automatic review settings August 21, 2026 23:13

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.

Pull request overview

This PR standardizes client implementation builds on build:esm and build:cjs, while retaining legacy tasks for other workspaces.

Changes:

  • Renames package build and watch scripts.
  • Updates root orchestration and cross-package task references.
  • Adds Fluid Build task dependencies.

Two critical blockers remain: entrypoint generation is disabled in fluidBuild.config.cjs, and the root build:cjs alias is not correctly scheduled.

Reviewed changes

Copilot reviewed 164 out of 164 changed files in this pull request and generated 2 comments.

Show a summary per file
File Status
packages/utils/tool-utils/package.json Reviewed
packages/utils/telemetry-utils/package.json Reviewed
packages/utils/odsp-doclib-utils/package.json Reviewed
packages/tools/replay-tool/package.json Reviewed
packages/tools/fluid-runner/package.json Reviewed
packages/tools/fetch-tool/package.json Reviewed
packages/tools/devtools/devtools/package.json Reviewed
packages/tools/devtools/devtools-view/package.json Reviewed
packages/tools/devtools/devtools-test-app/package.json Reviewed
packages/tools/devtools/devtools-core/package.json Reviewed
packages/tools/devtools/devtools-browser-extension/package.json Reviewed
packages/tools/changelog-generator-wrapper/package.json Reviewed
packages/test/test-version-utils/package.json Reviewed
packages/test/test-utils/package.json Reviewed
packages/test/test-service-load/package.json Reviewed
packages/test/test-pairwise-generator/package.json Reviewed
packages/test/test-end-to-end-tests/package.json Reviewed
packages/test/test-drivers/package.json Reviewed
packages/test/test-driver-definitions/package.json Reviewed
packages/test/stochastic-test-utils/package.json Reviewed
packages/test/snapshots/package.json Reviewed
packages/test/mocha-test-setup/package.json Reviewed
packages/test/functional-tests/package.json Reviewed
packages/service-clients/tinylicious-client/package.json Reviewed
packages/service-clients/odsp-client/package.json Reviewed
packages/service-clients/end-to-end-tests/odsp-client/package.json Reviewed
packages/service-clients/end-to-end-tests/azure-client/package.json Reviewed
packages/service-clients/azure-client/package.json Reviewed
packages/runtime/test-runtime-utils/package.json Reviewed
packages/runtime/runtime-utils/package.json Reviewed
packages/runtime/runtime-definitions/package.json Reviewed
packages/runtime/id-compressor/package.json Reviewed
packages/runtime/datastore/package.json Reviewed
packages/runtime/datastore-definitions/package.json Reviewed
packages/runtime/container-runtime/package.json Reviewed
packages/runtime/container-runtime-definitions/package.json Reviewed
packages/loader/test-loader-utils/package.json Reviewed
packages/loader/driver-utils/package.json Reviewed
packages/loader/container-loader/package.json Reviewed
packages/framework/undo-redo/package.json Reviewed
packages/framework/type-factory/package.json Reviewed
packages/framework/tree-agent/package.json Reviewed
packages/framework/tree-agent-ses/package.json Reviewed
packages/framework/tree-agent-langchain/package.json Reviewed
packages/framework/synthesize/package.json Reviewed
packages/framework/request-handler/package.json Reviewed
packages/framework/react/package.json Reviewed
packages/framework/quill-react/package.json Reviewed
packages/framework/presence/package.json Reviewed
packages/framework/presence-runtime/package.json Reviewed
packages/framework/presence-definitions/package.json Reviewed
packages/framework/oldest-client-observer/package.json Reviewed
packages/framework/fluid-static/package.json Reviewed
packages/framework/fluid-framework/package.json Reviewed
packages/framework/dds-interceptions/package.json Reviewed
packages/framework/client-logger/fluid-telemetry/package.json Reviewed
packages/framework/client-logger/app-insights-logger/package.json Reviewed
packages/framework/attributor/package.json Reviewed
packages/framework/aqueduct/package.json Reviewed
packages/framework/agent-scheduler/package.json Reviewed
packages/drivers/tinylicious-driver/package.json Reviewed
packages/drivers/routerlicious-urlResolver/package.json Reviewed
packages/drivers/routerlicious-driver/package.json Reviewed
packages/drivers/replay-driver/package.json Reviewed
packages/drivers/odsp-urlResolver/package.json Reviewed
packages/drivers/odsp-driver/package.json Reviewed
packages/drivers/odsp-driver-definitions/package.json Reviewed
packages/drivers/local-driver/package.json Reviewed
packages/drivers/file-driver/package.json Reviewed
packages/drivers/driver-web-cache/package.json Reviewed
packages/drivers/driver-base/package.json Reviewed
packages/drivers/debugger/package.json Reviewed
packages/dds/tree/package.json Reviewed
packages/dds/test-dds-utils/package.json Reviewed
packages/dds/task-manager/package.json Reviewed
packages/dds/shared-summary-block/package.json Reviewed
packages/dds/shared-object-base/package.json Reviewed
packages/dds/sequence/package.json Reviewed
packages/dds/register-collection/package.json Reviewed
packages/dds/pact-map/package.json Reviewed
packages/dds/ordered-collection/package.json Reviewed
packages/dds/merge-tree/package.json Reviewed
packages/dds/matrix/package.json Reviewed
packages/dds/map/package.json Reviewed
packages/dds/legacy-dds/package.json Reviewed
packages/dds/ink/package.json Reviewed
packages/dds/counter/package.json Reviewed
packages/dds/claims/package.json Reviewed
packages/dds/cell/package.json Reviewed
packages/common/driver-definitions/package.json Reviewed
packages/common/core-utils/package.json Reviewed
packages/common/core-interfaces/package.json Reviewed
packages/common/container-definitions/package.json Reviewed
packages/common/client-utils/package.json Reviewed
package.json Critical changes required
fluidBuild.config.cjs Critical changes required
experimental/PropertyDDS/packages/property-properties/package.json Reviewed
experimental/PropertyDDS/packages/property-dds/package.json Reviewed
experimental/PropertyDDS/packages/property-common/package.json Reviewed
experimental/PropertyDDS/packages/property-changeset/package.json Reviewed
experimental/framework/last-edited/package.json Reviewed
experimental/framework/data-objects/package.json Reviewed
experimental/dds/tree/package.json Reviewed
experimental/dds/sequence-deprecated/package.json Reviewed
experimental/dds/ot/sharejs/json1/package.json Reviewed
experimental/dds/ot/ot/package.json Reviewed
examples/view-integration/view-framework-sampler/package.json Reviewed
examples/view-integration/external-views/package.json Reviewed
examples/view-integration/container-views/package.json Reviewed
examples/version-migration/tree-shim/package.json Reviewed
examples/version-migration/separate-container/package.json Reviewed
examples/version-migration/same-container/package.json Reviewed
examples/version-migration/live-schema-upgrade/package.json Reviewed
examples/utils/webpack-fluid-loader/package.json Reviewed
examples/utils/migration-tools/package.json Reviewed
examples/utils/import-testing/package.json Reviewed
examples/utils/example-webpack-integration/package.json Reviewed
examples/utils/example-utils/package.json Reviewed
examples/utils/example-driver/package.json Reviewed
examples/utils/bundle-size-tests/package.json Reviewed
examples/service-clients/odsp-client/shared-tree-demo/package.json Reviewed
examples/service-clients/azure-client/todo-list/package.json Reviewed
examples/service-clients/azure-client/external-controller/package.json Reviewed
examples/external-data/package.json Reviewed
examples/data-objects/webflow/package.json Reviewed
examples/data-objects/todo/package.json Reviewed
examples/data-objects/text-editor/package.json Reviewed
examples/data-objects/table-tree/package.json Reviewed
examples/data-objects/table-document/package.json Reviewed
examples/data-objects/smde/package.json Reviewed
examples/data-objects/prosemirror/package.json Reviewed
examples/data-objects/multiview/triangle-view/package.json Reviewed
examples/data-objects/multiview/slider-coordinate-view/package.json Reviewed
examples/data-objects/multiview/plot-coordinate-view/package.json Reviewed
examples/data-objects/multiview/interface/package.json Reviewed
examples/data-objects/multiview/coordinate-model/package.json Reviewed
examples/data-objects/multiview/container/package.json Reviewed
examples/data-objects/multiview/constellation-view/package.json Reviewed
examples/data-objects/multiview/constellation-model/package.json Reviewed
examples/data-objects/monaco/package.json Reviewed
examples/data-objects/inventory-app/package.json Reviewed
examples/data-objects/codemirror/package.json Reviewed
examples/data-objects/clicker/package.json Reviewed
examples/data-objects/canvas/package.json Reviewed
examples/client-logger/app-insights-logger/package.json Reviewed
examples/benchmarks/tablebench/package.json Reviewed
examples/benchmarks/bubblebench/shared-tree/package.json Reviewed
examples/benchmarks/bubblebench/ot/package.json Reviewed
examples/benchmarks/bubblebench/experimental-tree/package.json Reviewed
examples/benchmarks/bubblebench/common/package.json Reviewed
examples/benchmarks/bubblebench/baseline/package.json Reviewed
examples/apps/tree-comparison/package.json Reviewed
examples/apps/tree-cli-app/package.json Reviewed
examples/apps/task-selection/package.json Reviewed
examples/apps/staging/package.json Reviewed
examples/apps/presence-tracker/package.json Reviewed
examples/apps/diceroller/package.json Reviewed
examples/apps/data-object-grid/package.json Reviewed
examples/apps/contact-collection/package.json Reviewed
examples/apps/collaborative-textarea/package.json Reviewed
examples/apps/claims-example/package.json Reviewed
examples/apps/blobs/package.json Reviewed
azure/packages/azure-service-utils/package.json Reviewed
.claude/skills/ci-readiness-check/tree-api-checks.md Reviewed
Suppressed comments (3)

fluidBuild.config.cjs:162

  • This dependency change leaves build:entrypoints:cjs defined with script: false. Consequently the package build:entrypoints:cjs commands that generate dist entrypoints are skipped, so the new CJS implementation builds do not produce the dist files referenced by require exports. Make this executable for packages that provide the script and keep the no-script implementation fallback separate.
    packages/utils/tool-utils/package.json:49
  • The ESM build script is now named build:esm, but the repository policy still recognizes ESM builds only through build:esnext/tsc:esnext (see build-tools/packages/build-cli/src/library/repoPolicyCheck/npmPackages.ts:1527-1531,1990-1995). flub check policy will therefore stop enforcing the ESM type/module relationship and lib cleanup for packages migrated by this change. Update the policy heuristics as part of the rename.
    packages/utils/tool-utils/package.json:42
  • The CJS implementation is now exposed as build:cjs, but the repository clean-script policy only treats scripts.tsc as producing dist (build-tools/packages/build-cli/src/library/repoPolicyCheck/npmPackages.ts:1986-1988). After this migration, the policy checker and resolver no longer require or add dist for packages using this script. Include build:cjs in the CJS-output heuristic.

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

Comment thread fluidBuild.config.cjs Outdated
Comment thread package.json
@jason-ha
Jason Hartman (jason-ha) marked this pull request as draft August 21, 2026 23:43
Tasks that may have script entries like `build:entrypoints:esm` can not be configured with `script: false` unless the script will exactly depend on the same tasks.
Switch to introducing a `build:package*` alias set and use those instead of `build:entrypoints*` to represent the whole implementation build (or at least the ESM/CJS specified portion).
@jason-ha
Jason Hartman (jason-ha) marked this pull request as ready for review August 22, 2026 00:13
@github-actions

Copy link
Copy Markdown
Contributor

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output

$ start-server-and-test "npm run serve -- --host 127.0.0.1 --no-open" http://127.0.0.1:3000 check-links
1: starting server using command "npm run serve -- --host 127.0.0.1 --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-website@0.0.0 serve
> docusaurus serve --host 127.0.0.1 --no-open

[SUCCESS] Serving "build" directory at: http://127.0.0.1:3000/

> fluid-framework-website@0.0.0 check-links
> linkcheck http://127.0.0.1:3000 --skip-file skipped-urls.txt

Crawling...

Stats:
  338440 links
    2041 destination URLs
    2297 URLs ignored
       0 warnings
       0 errors


@github-actions

Copy link
Copy Markdown
Contributor

Bundle size comparison

Base commit: d34eb0470b29a399a2af7ab59276e09a08ba6f8e
Head commit: 8b61569e6b6eb8361f54ebad8cbdb6c038750685

Pending — Build - client packages is running. Results will appear here when the build completes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: dds: propertydds area: dds: sharedstring area: dds: tree area: dds Issues related to distributed data structures area: dev experience Improving the experience of devs building on top of fluid area: driver Driver related issues area: examples Changes that focus on our examples area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: loader Loader related issues area: odsp-driver area: repo Repo related work area: runtime Runtime related issues area: tests Tests to add, test infrastructure improvements, etc area: tools area: website base: main PRs targeted against main branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants