providers: use new craft-providers interface
Metadata
Current evaluation
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.
Resolution: closed resolved
Reason: The PR itself was merged by maintainer mr-cal into main via merge commit 538aec31 ('Merge pull request #899 from mr-cal/cprov--new-interface'), carrying implementation commit 5e5acb7c 'providers: use new craft-providers interface'. Git history for charmcraft/providers.py confirms 5e5acb7c is the commit that created the new top-level module, completing the CRAFT-1279 work.
Evaluated by: mr-cal-bot
Issue body
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | 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. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged in canonical/charmcraft#899 via 538aec31, replacing internal provider classes with craft-providers and moving providers.py to the package root. Implementation: 5e5acb7c. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged after replacing internal Provider classes with the new craft-providers interface. Refactored by moving providers.py to the package root, removing 1253 lines across 17 files. Resolved CRAFT-1279. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged refactoring that replaces internal Provider, LXDProvider, and MultipassProvider classes with the updated craft-providers library interface. Relocated providers.py to the providers package root. Resolves CRAFT-1279. |
Update history
No update history recorded yet.
Related work
-
Likely Fixed By:
canonical/craft-providers#163
(confidence 92%)
Upstream PR that added the Provider, LXDProvider, and MultipassProvider classes that Charmcraft PR #899 adopted instead of its own implementations.
-
Superseded By:
canonical/charmcraft#484
(confidence 85%)
Earlier Charmcraft PR that reorganized providers into a package with common Provider/LXDProvider classes; #899 removes that internal package and moves the module to the package root.
-
Related To:
canonical/charmcraft#891
(confidence 70%)
Adjacent CRAFT-1277 work in the same series (merge 456601ff) switching snap installation to the craft-providers API, immediately preceding this change.
-
Related To:
canonical/snapcraft#3660
(confidence 55%)
Parallel downstream adoption of the same craft-providers interface in Snapcraft for LXD/Multipass lifecycle execution.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #120 providers: use new craft-providers interface | rockcraft | merged | Merged as 3f887b70: replaced Rockcraft's local provider classes with craft-providers and moved providers.py. | |
| #3943 providers: use new craft-providers interface | snapcraft | merged | Merged into snapcraft main as commit 2980d145c: removed in-tree Provider/LXDProvider/MultipassProvider classes in favour of craft-providers, and moved snapcraft/providers/providers.py to snapcraft/providers.py (+65/-1173). | |
| #484 providers: refactor to better support multiple providers (CRAFT-362) | charmcraft | merged | Merged PR #484 (commit 93982f90, merge 7a1f50fc) by cjp256 converted providers module into a package for CRAFT-362: added common Provider class, LXDProvider subclass and get_provider(); follow-ups moved get_provider() to providers.py and renamed _helpers to _logs. | |
| #3660 providers: integrate craft-providers support | snapcraft | merged | PR #3660 by cmatsuoka integrated craft-providers into Snapcraft, running lifecycle commands in LXD/Multipass instances. Merged into the 7.0 line via merge commit 7c2ac0027 (squash commit 8a06cdbbd). | |
| #898 providers: move `get_provider()` to providers.py | charmcraft | merged | Merged charmcraft#898, moving get_provider() into providers.py for CRAFT-1410 after prerequisite charmcraft#896 landed. | |
| #9 providers: add build provider support (CRAFT-28) | rockcraft | merged | Merged build-provider support via commit be6dec45, integrating craft-providers to run builds on LXD. User messages and provider log retrieval were deferred to follow-up work. | |
| #4192 requirements: bump craft-providers | snapcraft | merged | Merged PR #4192 into main, bumping craft-providers to 1.13.0 in commit 9f3529597. | |
| #402 providers: introduce charmcraft base configuration (CRAFT-261) | charmcraft | merged | Merged in charmcraft#402 via 481525e5, adding craft-providers and a Charmcraft buildd configuration that installs pip, setuptools, and injects the host Charmcraft snap. | |
| #491 providers: introduce multipass support (CRAFT-409) | charmcraft | merged | Multipass support was merged in canonical/charmcraft#491 via merge commit 1b855093, with implementation commit 84132dc1 adding provider selection and tests. | |
| #925 providers: set lxd project to 'charmcraft' | charmcraft | merged | Merged PR #925 in d82b9bb8, fixing the LXD provider regression by using the charmcraft project instead of default. |