← Back to issue list

providers: introduce multipass support (CRAFT-409)

View original Github issue

Metadata

Project
charmcraft
Number
#491
Type
pull request
State
merged
Author
cjp256
Labels
—
Created
Updated
Closed

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.
76%
#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.
76%
#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).
75%
#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.
74%
#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.
74%
#17 multipass: introduce MultipassProvider craft-providers closed Closed unmerged; MultipassProvider was later added by merged PR #163 in commit fa5a5e7, superseding this abandoned implementation.
73%
#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.
72%
#21 multipass: introduce MultipassProvider craft-providers closed Closed unmerged after prolonged inactivity, with four unresolved review comments. MultipassProvider later landed via #163 (commit fa5a5e7).
72%
#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.
72%
#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.
72%