providers: introduce multipass support (CRAFT-409)
Metadata
Current evaluation
Multipass support was merged in canonical/charmcraft#491 via merge commit 1b855093, with implementation commit 84132dc1 adding provider selection and tests.
Resolution: closed resolved
Reason: PR #491 was merged into Charmcraft as commit 1b855093. It added Multipass launching alongside LXD, Linux provider selection, and unit and smoke tests.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Add support for Multipass similar to LXD.
To determine provider on linux:
- check CHARMCRAFT_PROVIDER environment variable if in
developer mode.
- check snap configuration if running as snap.
- fall back to platform default.
Update execute_run() to use cwd=pathlib.Path(x) interface.
Add unit tests and a smoke test for Linux & Multipass.
Signed-off-by: Chris Patterson <chris.patterson@canonical.com>
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Multipass support was merged in canonical/charmcraft#491 via merge commit 1b855093, with implementation commit 84132dc1 adding provider selection and tests. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged in charmcraft PR #491: added Multipass provider support, provider selection through CHARMCRAFT_PROVIDER, snap config or platform defaults, and Linux/Multipass tests. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged. Adds Multipass provider support with detection via env var, snap config, or platform default. Updates execute_run() to use pathlib.Path and adds tests. Approved by two reviewers, passed CI, and modified 10 files. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Introduces Multipass provider support with detection via environment variables, snap configuration, and platform fallback. Updates execute_run() to use pathlib.Path and adds Linux and Multipass tests. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #9 multipass: introduce Multipass and MultipassError | craft-providers | merged | PR #9 by cjp256 merged into craft-providers (commit e418497), adding a Multipass class wrapping the multipass CLI plus MultipassError, unit/integration tests (test_todo dropped), and pytest-subprocess in requirements-dev. | |
| #838 Permission issues when using multipass provider | charmcraft | closed | Multipass transfer permissions were fixed in Charmcraft 2.4.0+ via craft-providers PR #269 (commit 49c1a63), resolving the /root transfer failure. | |
| #308 [WIP] providers: experimental craft-provider support | charmcraft | closed | Closed unmerged as WIP; Multipass provider support was later delivered by merged #491 (implementation 84132dc1, merge 1b855093). | |
| #899 providers: use new craft-providers interface | charmcraft | merged | Merged PR #899 (merge commit 538aec31, implementation 5e5acb7c): removed Charmcraft's own Provider/LXDProvider/MultipassProvider classes in favour of craft-providers', and moved charmcraft/providers/providers.py to charmcraft/providers.py. Resolves CRAFT-1279. | |
| #42 multipass: is_supported_version() interface and require >=1.7 | craft-providers | merged | Merged in craft-providers#42 via ce6356d; commit 1166096 added Multipass.is_supported_version() and raised the minimum supported version to 1.7. | |
| #17 multipass: introduce MultipassProvider | craft-providers | closed | Closed unmerged; MultipassProvider was later added by merged PR #163 in commit fa5a5e7, superseding this abandoned implementation. | |
| #75 multipass: introduce ensure_multipass_is_ready() (CRAFT-438) | craft-providers | merged | Merged PR #75 added ensure_multipass_is_ready() to verify Multipass installation and version support; merge commit 1f1ddce. | |
| #21 multipass: introduce MultipassProvider | craft-providers | closed | Closed unmerged after prolonged inactivity, with four unresolved review comments. MultipassProvider later landed via #163 (commit fa5a5e7). | |
| #1796303 Check version of multipass | snapcraft (launchpad) | closed | Added a Multipass minimum-version check via canonical/craft-providers#42, requiring Multipass 1.7+; merged as ce6356d. | |
| #628 Check Multipass version for 24.04 VMs | craft-providers | closed | Implemented a Multipass >=1.14.1 requirement for Noble/24.04 launches in commit a977369 and released it in craft-providers 1.24.2 and 2.0.1. |