Skip to content

build: streamline by removing unneeded build deps#25733

Merged
tylerbutler merged 4 commits intomicrosoft:mainfrom
tylerbutler:build-graph-streamline
Oct 23, 2025
Merged

build: streamline by removing unneeded build deps#25733
tylerbutler merged 4 commits intomicrosoft:mainfrom
tylerbutler:build-graph-streamline

Conversation

@tylerbutler
Copy link
Member

@tylerbutler tylerbutler commented Oct 22, 2025

The api-extractor tasks should not block compilation. They are already run as part of lint, so this change just removes the unneeded deps.

@github-actions github-actions bot added the base: main PRs targeted against main branch label Oct 22, 2025
@tylerbutler tylerbutler marked this pull request as ready for review October 22, 2025 22:02
Copilot AI review requested due to automatic review settings October 22, 2025 22:02
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

This PR streamlines the build process by removing redundant API extraction dependencies from the build pipeline, since API validation is already handled through the lint process.

Key Changes:

  • Removed build:api-reports and build:docs from the main build task dependencies
  • Removed api dependency from the compile task
  • Removed API extractor tasks from test build dependencies (build:test, build:test:cjs, build:test:esm)

"lint",
"build:api-reports",
"build:docs",
// API validation happens through lint → check:exports → api
Copy link
Contributor

Choose a reason for hiding this comment

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

It seems odd to me that the lint step would need/run the API extractor steps that generate the API reports. I get the export checks being a part of lint, but I don't think the report generation steps belong there. Seems like they should be a dependency of build and not of lint.

Copy link
Contributor

Choose a reason for hiding this comment

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

Removing it here seems like a hack to make it skipped when we run with --nolint by making everything that depends on it part of lint.

Removing it from compile below should be sufficient to relax the build dependency order and remove it from --task compile builds.

Leaving it here might be better.

Copy link
Contributor

Choose a reason for hiding this comment

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

We should make out compile CI task run just the compile step, then have a separate job (in parallel with tests) that run everything else, which from this.

That suggests maybe there is some logical grouping includes all of "check:format", "lint", "build:api-reports", "build:docs", "build:manifest", "build:readme".

I could see grouping "check:format" into lint, and the rest into "build:docs" if we wanted less top level categories here.

Copy link
Member Author

Choose a reason for hiding this comment

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

We should make out compile CI task run just the compile step, then have a separate job (in parallel with tests) that run everything else, which from this.

That suggests maybe there is some logical grouping includes all of "check:format", "lint", "build:api-reports", "build:docs", "build:manifest", "build:readme".

I could see grouping "check:format" into lint, and the rest into "build:docs" if we wanted less top level categories here.

If we're talking task naming and grouping overall, I suggest using this PR that has some concrete all-up proposals: #25730 (comment)

Copy link
Member Author

Choose a reason for hiding this comment

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

It seems odd to me that the lint step would need/run the API extractor steps that generate the API reports. I get the export checks being a part of lint, but I don't think the report generation steps belong there. Seems like they should be a dependency of build and not of lint.

Fixed in latest.

Copy link
Contributor

@Josmithr Josmithr left a comment

Choose a reason for hiding this comment

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

Thanks for doing this!!

@tylerbutler tylerbutler merged commit ee07c75 into microsoft:main Oct 23, 2025
46 checks passed
@tylerbutler tylerbutler deleted the build-graph-streamline branch October 23, 2025 17:27
@jason-ha
Copy link
Contributor

jason-ha commented Jan 3, 2026

This is incorrect. api-extractor reports should not block compilation but the API entrypoint files (which are under the api umbrella) are required.

jason-ha added a commit to jason-ha/FluidFramework that referenced this pull request Jan 3, 2026
This partially reverts "build: streamline by removing unneeded build deps (microsoft#25733)" (commit ee07c75).

It lets "compile" task only depend on ancestor "api" and preserves the commented out line removal.

To make the build more efficient, API entrypoint generation should be made distinct from api-extractor reports.
jason-ha added a commit that referenced this pull request Jan 5, 2026
This partially reverts "build: streamline by removing unneeded build
deps (#25733)" (commit ee07c75).

It lets "compile" task only depend on ancestor "api" and preserves the
commented out line removal.

To make the build more efficient, API entrypoint generation should be
made distinct from api-extractor reports.
anthony-murphy-agent pushed a commit to anthony-murphy-agent/FluidFramework that referenced this pull request Jan 14, 2026
anthony-murphy-agent pushed a commit to anthony-murphy-agent/FluidFramework that referenced this pull request Jan 14, 2026
This partially reverts "build: streamline by removing unneeded build
deps (microsoft#25733)" (commit ee07c75).

It lets "compile" task only depend on ancestor "api" and preserves the
commented out line removal.

To make the build more efficient, API entrypoint generation should be
made distinct from api-extractor reports.
jason-ha added a commit to jason-ha/FluidFramework that referenced this pull request Feb 18, 2026
…rosoft#25733)"

This reverts commit ee07c75 except for a comment removal.

Adds note of why "api" should be a part of "compile".
jason-ha added a commit that referenced this pull request Feb 18, 2026
)" (#26479)

This reverts commit ee07c75 except for
a comment removal. That commit was previously partially reverted by
46c21a3.

Adds note of why "api" should be a part of "compile".
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

base: main PRs targeted against main branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants