Skip to content

Dwds build runner tests - #2879

Merged
biggs0125 merged 5 commits into
dart-lang:mainfrom
biggs0125:dwds-build-runner-tests
Oct 16, 2026
Merged

biggs0125 merged 5 commits into
dart-lang:mainfrom
biggs0125:dwds-build-runner-tests

Conversation

@biggs0125

@biggs0125 biggs0125 commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

DWDS and dwds_test_common now live in the Dart SDK, which runs the shared integration test scenarios from package:dwds_test_common/integration with the frontend server. This adds an unpublished package that runs the same scenarios against apps built by build_runner (via the build daemon), so the webdev copies of dwds and dwds_test_common can be deleted.

  • dwds_webdev_integration_test depends on dwds and dwds_test_common from the Dart SDK's main branch through git dependency overrides.
  • BuildDaemonTestContext is the build_runner counterpart of the SDK's FrontendServerTestContext.
  • test/integration/build_daemon/ contains wrappers for every build daemon configuration that webdev's dwds tests ran (AMD and DDC library bundle), following the structure of the SDK's frontend_server wrappers. The webdev-only ProxyServerAssetReader tests and the AMD ExpressionCompilerService test are also included.
  • Run the package's tests with the same CI configuration dwds had (presubmit shards and extension tests on Linux and Windows on the Dart dev channel, plus the weekly beta cron), minus the dwds-only ensure_version_test, and its daily tests in the daily testing workflow.

How to review

This PR is split into 4 commits to make the review easier. Each commit message describes the changes in that step, so reviewing commit by commit is the easiest way to follow it:

  1. Move dwds build daemon tests to dwds_webdev_integration_test: moves files only, with no content changes.
  2. Add dwds_webdev_integration_test to run DWDS tests in build daemon mode: the test changes, shown as diffs against the moved files.
  3. Delete dwds and dwds_test_common
  4. Update CI and repo configs for dwds_webdev_integration_test

The intermediate commits don't build on their own; only the final state is expected to pass CI.

@github-actions github-actions Bot added package:webdev package:dwds type-infra A repository infrastructure change or enhancement labels Oct 14, 2026
@biggs0125
biggs0125 requested review from Markzipan and jyameo October 14, 2026 20:38
@biggs0125
biggs0125 force-pushed the dwds-build-runner-tests branch 2 times, most recently from 7d7e847 to 0f98d92 Compare October 15, 2026 05:26
DWDS and dwds_test_common now live in the Dart SDK (pkg/dwds and
pkg/dwds_test_common) and will be published from there.

This commit only moves files so that the follow-up commit shows how each
build_runner test changed. It moves the dwds files that have a
counterpart in the new dwds_webdev_integration_test package (package
config files, the test context, and the build daemon test wrappers) to
their new locations, unchanged.

The tree doesn't build at this commit; see the next commits.
This commit contains three changes:

1. Update all the tests to use the dwds_test_common shared test harness.
2. Migrate the dwds pubspec to the pubspec for the new unpublished
   package dwds_webdev_integration_test.
3. Add a README explaining this package/directory.
@biggs0125
biggs0125 force-pushed the dwds-build-runner-tests branch from 2641903 to ad46fd7 Compare October 15, 2026 15:11

@jyameo jyameo 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.

lgtm! Thanks @biggs0125

DWDS and dwds_test_common now live in the Dart SDK (pkg/dwds and
pkg/dwds_test_common) and will be published from there. Their build
daemon tests were moved to dwds_webdev_integration_test in the previous
commits.

- Delete the rest of dwds/ and dwds_test_common/.
- webdev: depend on dwds_test_common only through the existing git
  override, and copy the `_webdev_smoke` fixture from the resolved
  package into a temp directory for the e2e and TLS tests.
- webdev: since the `_webdev_smoke` fixture's SDK constraint is now
  owned by the Dart SDK, check that it allows every SDK webdev supports
  instead of requiring an exact match with webdev's constraint.
- Point the README at the Dart SDK's copy of dwds.
- Run dwds_webdev_integration_test's tests on presubmit and in the
  weekly beta cron, using the same CI configuration dwds had (minus the
  dwds-only ensure_version_test), and its `daily` tests in the daily
  testing workflow.
- Remove the dwds_test_common jobs, the dwds steps from the daily
  testing workflow, and the DWDS-only Dart Code Metrics workflow.
- Give the daily testing workflow read-only `contents` permissions.
- Update the labeler globs (also fixing the stale debug extension path).
- Regenerate the mono_repo outputs (dart.yml and tool/ci.sh).

@Markzipan Markzipan 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.

Woohoo!!

@biggs0125
biggs0125 force-pushed the dwds-build-runner-tests branch from ad46fd7 to 6d07b86 Compare October 15, 2026 23:00
@biggs0125
biggs0125 merged commit d1fa715 into dart-lang:main Oct 16, 2026
35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package:dwds package:webdev publish-ignore-warnings type-infra A repository infrastructure change or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants