Skip to content

Conversation

@Markzipan
Copy link
Contributor

@Markzipan Markzipan commented Dec 6, 2025

This module system - in conjunction with the Frontend Server - supports web hot reload. This is part of an effort to deprecate DDC's older module systems.

Notable updates:

  • Plumbing a ddc-library-bundle flag through several builders.
  • Copied/modified DDC tests
  • Updated bootstrapper logic for the new module system.
  • Updated some conflations between webHotReload and the new module system. These should be consistent now.

@Markzipan Markzipan requested a review from davidmorgan December 6, 2025 02:13
@github-actions
Copy link

github-actions bot commented Dec 6, 2025

Package publishing

Package Version Status Publish tag (post-merge)
package:build 4.0.3 already published at pub.dev
package:build_config 1.2.0 already published at pub.dev
package:build_daemon 4.1.1 already published at pub.dev
package:build_modules 5.1.5 ready to publish build_modules-v5.1.5
package:build_runner 2.11.0-wip WIP (no publish necessary)
package:build_test 3.5.5-wip WIP (no publish necessary)
package:build_web_compilers 4.4.6 (error) pubspec version (4.4.6) and changelog (4.4.7) don't agree
package:scratch_space 1.2.0 already published at pub.dev

Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.

@github-actions
Copy link

github-actions bot commented Dec 6, 2025

PR Health

Changelog Entry ✔️
Package Changed Files

Changes to files need to be accounted for in their respective changelogs.

This check can be disabled by tagging the PR with skip-changelog-check.

@Markzipan Markzipan requested a review from bkonyi December 8, 2025 17:40
Copy link
Contributor

@davidmorgan davidmorgan left a comment

Choose a reason for hiding this comment

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

Looks good, thanks!

bool emitDebugSymbols,
bool canaryFeatures,
bool ddcModules,
bool ddcLibraryBundle,
Copy link
Contributor

Choose a reason for hiding this comment

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

Optional, entirely up to you: this many adjacent positional bools makes me nervous, how about switching them to named?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes please! I'd love to get to a place where we only use positional arguments for simple functions with one or two parameters and then default to using required named everywhere else, but obviously we don't have to do this all at once 😄

);
});
});
group('regression tests', () {
Copy link
Contributor

Choose a reason for hiding this comment

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

Super nitpicky optional nitpick: blank line here to give the group a bit of breathing space? :)

@@ -1,3 +1,7 @@
## 5.1.5

- Adding support for DDC's Library Bundle module system.
Copy link
Contributor

Choose a reason for hiding this comment

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

Please use the direct form, "Add support for ...", or just "Support DDC's ..." would also work.

@@ -1,5 +1,7 @@
## 4.4.6
## 4.4.7
- Adding support for DDC's Library Bundle module system.
Copy link
Contributor

Choose a reason for hiding this comment

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

Please use the direct form "Add support for DDC's ..." or just "Support DDC's ...".

Not sure if this is a complete change or part of the work? If it's complete then maybe it's worth saying a bit more about the feature from the user's point of view, if you don't plan to release then the version should be 4.4.7-wip please :)

Copy link
Contributor

@bkonyi bkonyi left a comment

Choose a reason for hiding this comment

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

LGTM!

bool emitDebugSymbols,
bool canaryFeatures,
bool ddcModules,
bool ddcLibraryBundle,
Copy link
Contributor

Choose a reason for hiding this comment

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

Yes please! I'd love to get to a place where we only use positional arguments for simple functions with one or two parameters and then default to using required named everywhere else, but obviously we don't have to do this all at once 😄

/// Whether or not to emit DDC entrypoints that support web hot reload.
///
/// Web hot reload is only supported for DDC's Library Bundle module system.
/// Only supported for DDC's Library Bundle module system.
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we have any checks to enforce this? Or does useWebHotReload == true just do nothing if we're not using the new module system?

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.

3 participants