Description
Currently enabling the custom-devices feature will only take effect on master channel:
flutter/packages/flutter_tools/lib/src/features.dart
Lines 192 to 199 in 9d59532
While I can understand this is to make sure people don't forget it's not a "stable" feature, it's leading to a lot of problems for the users:
The users are often users of custom embedders, like ivi-homescreen, the sony embedder or flutter-pi. Actually toyota seems to be using it quite a lot. In a custom-embedder scenario, you're often using custom engine builds. And because building the flutter engine is a bit resource-intensive, most people are only doing it for stable:
- toyota is only building the engine for stable engine commits: https://github.com/meta-flutter/flutter_embedded/actions/runs/2778835802
- sony is only building the engine for stable: https://github.com/sony/flutter-embedded-linux/releases
- I too, only build for stable: https://github.com/ardera/flutter-engine-binaries-for-arm
So most people actually want to use custom-devices with the stable channel, which the SDK doesn't allow though. This requires weird workarounds, like going into the SDK dir and checking out the stable SDK commit directly, or checking out the remote branch (origin/stable
).
Basically everytime I introduce the feature to someone I have to tell them to use the workaround. Toyota has a script lying around that does nothing else but patch the SDK sources to make it possible to enable the feature on stable.
I'd like to propose we change that and allow the feature to be enabled on any channel. If you're worried that people perceive it as a "stable" feature, we can add some messages like "(this feature is in alpha right now!)" when enabling it. Or we can just say it's stable now