canonical / multipass

Multipass orchestrates virtual Ubuntu instances
https://multipass.run
GNU General Public License v3.0
7.51k stars 632 forks source link

Flutter submodule #3538

Closed andrei-toterman closed 2 weeks ago

andrei-toterman commented 1 month ago

This PR adds git submodules for Flutter and the Dart protoc plugin. Before this, we relied on Flutter and Dart to be manually installed and available in the PATH in order to build the GUI. We also required a specific version of Flutter, which might've created a conflict if another version of Flutter was already installed on the system. Now we can handle all of that inside our project. Of course, this PR also updates the build scripts in order to use those submodules.

codecov[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 88.81%. Comparing base (62c4fc6) to head (0ea7246).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #3538 +/- ## ========================================== - Coverage 88.82% 88.81% -0.01% ========================================== Files 253 253 Lines 14121 14121 ========================================== - Hits 12543 12542 -1 - Misses 1578 1579 +1 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

georgeliao commented 2 weeks ago

Hi @andrei-toterman Excellent work, it looks good to me. I just have some minor comments.

Besides this, I have tried to build multipass.gui target on ubuntu 24.04 and I have found myself needing to install libkeybinder-3.0-dev, libgtkmm-3.0-dev, and libayatana-appindicator3-dev. My question here is that do we have a complete list of apt packages multipass.gui build (the flutter and dart tool chain) depends on? Later on, maybe we can have a section in multipass readme for building multipass.gui so we can added the apt install <fluter dependency list> there to clarify the building steps.

andrei-toterman commented 2 weeks ago

Hey, @georgeliao! Indeed, there are some dependencies needed for our GUI. But they were added to the debian/control file in an earlier PR, so the existing build instruction of running mk-build-deps -s sudo -i would take care of them as well.

georgeliao commented 2 weeks ago

@andrei-toterman I see, then that is even better. Thanks for clarifying.