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
Remove temporary desktop plugin dartPluginClass workaround #57497
Comments
Treats 'pluginClass: none' as equivalent to having no 'pluginClass' entry on the desktop platforms, to satisy stable channel plugin validation of Dart-only desktop plugin implementations. See issue for full details. Part of flutter#57497
Treats 'pluginClass: none' as equivalent to having no 'pluginClass' entry on the desktop platforms, to satisy stable channel plugin validation of Dart-only desktop plugin implementations. See issue for full details. Part of #57497
The proposal above was added; this issue now tracks removing the workaround. This is two-phase:
We should likely leave a while between those steps, since the second will break anyone still building with a version of the plugin from before step 1. |
This will require all of the relevant plugins to require 1.20+. That's something that also came up with regard to removing the iOS stubs from all the non-iOS federated plugins. @amirh Is there any existing plan to mass-upgrade the requirements for flutter/plugins? If not, what's the best way to drive that discussion? |
This workaround has not been needed since Flutter 1.20, and all plugins now require at least Flutter 2.0, so it can be safely removed. Part of flutter/flutter#57497
This workaround has not been needed since Flutter 1.20, and all plugins now require at least Flutter 2.0, so it can be safely removed. Part of flutter/flutter#57497
This workaround has not been needed since Flutter 1.20, and all plugins now require at least Flutter 2.0, so it can be safely removed. Part of flutter/flutter#57497
This workaround has not been needed since Flutter 1.20, and all plugins now require at least Flutter 2.0, so it can be safely removed. Part of flutter/flutter#57497
We're no longer using it in flutter/plugins. We should eventually remove the special-casing, but there's no hurry on it and it's a breaking change. |
This workaround has not been needed since Flutter 1.20, and all plugins now require at least Flutter 2.0, so it can be safely removed. Part of flutter/flutter#57497
On 1.18 (current master), desktop plugins can either specify a
pluginClass
for a standard plugin with native code, or adartPluginClass
to allow that platform's implementation of a plugin to be Dart-only. However, the current stable build, 1.17, doesn't have this logic, and requires apluginClass
for all desktop platforms. When building for any platform, all platforms listed in the pubspec are validated, which means that publishing a plugin with:will break the iOS and Android builds of any project that ends up with a dependency on that plugin. That means that for example we can't publish a Dart-only Linux implementation of
path_provider
and endorse it without breaking everyone on stable.To work around this, I propose temporarily adding special handling to the desktop platforms where having
pluginClass: none
is treated the same way as having nopluginClass
field. This will pass validation on 1.17, but be a no-op onmaster
. The workaround would be removed once 1.18 is released to stable.Minor downsides:
The text was updated successfully, but these errors were encountered: