Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build SDKs for the DDC library bundle format #57220

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

srujzs
Copy link
Contributor

@srujzs srujzs commented Dec 16, 2024

In order to support hot reload, we initially planned to use the DDC module format. When that became infeasible, we introduced the library bundle format.

This format can only be emitted when passed as the single module arg to a DDC compile, so this change splits the generation of SDKs into multiple steps.

We also do not support unsound null safety with the new format, so it should never be generated.

When Flutter tools no longer tests for the DDC module format and removes support for it (which I'm tackling separately as well), the generated SDKs for that format can be deleted.

Part of the larger effort to support hot reload: dart-lang/webdev#2516

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides].
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or the PR is [test-exempt]. See [testing the engine] for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the [CLA].
  • All existing and new tests are passing.

In order to support hot reload, we initially planned to use
the DDC module format. When that became infeasible, we introduced
the library bundle format.

This format can only be emitted when passed as the single module
arg to a DDC compile, so this change splits the generation of
SDKs into multiple steps.

We also do not support unsound null safety with the new format,
so it should never be generated.

When Flutter tools no longer tests for the DDC module format and
removes support for it, the generated for that format can be
deleted.
@github-actions github-actions bot added the platform-web Code specifically for the web engine label Dec 16, 2024
@srujzs
Copy link
Contributor Author

srujzs commented Dec 17, 2024

I suppose since we're going forward with the monorepo I'll move this change over there once that's finished. :)

@yjbanov
Copy link
Contributor

yjbanov commented Jan 2, 2025

This PR now needs to be migrated to the flutter/flutter monorepo.

@srujzs
Copy link
Contributor Author

srujzs commented Jan 2, 2025

Yup! Now that we have a monorepo, I'm going to bundle this change in with the framework change that actually uses the artifacts, but that requires a version of DWDS to be published. I'll add you once I have that PR unblocked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
platform-web Code specifically for the web engine
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants