Skip to content

Update foundation library to export internal #170563

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

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

Conversation

loic-sharma
Copy link
Member

@loic-sharma loic-sharma commented Jun 13, 2025

In the Flutter framework, only the foundation library is allowed to import package:meta. If other parts of the Flutter framework want to use package:meta, they must do so through the foundation library by exporting the desired package:meta member. This requirement is enforced through dev/bots/analyze.dart here.

This exports the internal attribute so that it can be used by the Flutter framework. This change was split off from #168437 as it might cause problems in google3 if there is code that imports both package:meta/meta.dart and package:flutter/foundation.dart.

I will get a test exemption.

Part of: #167668

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@loic-sharma loic-sharma requested a review from justinmc June 13, 2025 00:15
@github-actions github-actions bot added the framework flutter/packages/flutter repository. See also f: labels. label Jun 13, 2025
@loic-sharma loic-sharma marked this pull request as ready for review June 13, 2025 00:24
@loic-sharma
Copy link
Member Author

loic-sharma commented Jun 13, 2025

go_router will need to be updated before this can land: flutter/packages#9434

Copy link
Contributor

@justinmc justinmc left a comment

Choose a reason for hiding this comment

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

LGTM 👍

Could you explain in more detail why this has to be exported? I guess that since debugEnabledFeatureFlags will be marked as internal in your other PR, users that import debugEnabledFeatureFlags need to also import internal?

@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@loic-sharma
Copy link
Member Author

loic-sharma commented Jun 13, 2025

@justinmc Good question! I added this to the PR description:

In the Flutter framework, only the foundation library is allowed to import package:meta. If other parts of the Flutter framework want to use package:meta, they must do so through the foundation library by exporting the desired package:meta member from the foundation library. This requirement is enforced through dev/bots/analyze.dart here.

It's not very clear to me why the Flutter framework has this package:meta restriction though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants