Repository navigation
Description
Flutter packages should not have "private" APIs other than those that are prefixed with underscores. Every file in a Flutter package should be exported. ("Private" files can still be imported so they are still actually public APIs; by not exporting them explicitly we are tricking ourselves into thinking of them as private APIs which may lead to poor design.)
We currently have violations of this in at least some of our packages. We also have cases like flutter-team-archive/plugins#6155 where we just forget to export something and have to fix it later.
We could address both issues by having a repo tool command that would validate that for every Dart file in lib/src/ there is a transitive include route from at least one top-level lib/ file. (We need to check all of them to handle deliberate cases of not using the primary export like https://github.com/flutter/plugins/blob/ca63d964d9fdfff9be36533ea4248d0d0ca28fd0/packages/url_launcher/url_launcher/lib/url_launcher_string.dart.) It should probably ignore anything with any import qualifiers (show/hide) since those violate the spirit of the style rule.
Activity