← Back to issue list

providers: use new craft-providers interface

View original Github issue

Metadata

Project
charmcraft
Number
#899
Type
pull request
State
merged
Author
mr-cal
Labels
—
Created
Updated
Closed

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

No scores available.

Issue body

- Remove Provider, LXDProvider, and MultipassProvider classes - Use the Provider classes from craft-providers - Move `charmcraft/providers/providers.py` to `charmcraft/providers.py` --- CRAFT-1279

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.
83%
#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).
82%
#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.
80%
#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).
77%
#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.
76%
#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.
75%
#4192 requirements: bump craft-providers snapcraft merged Merged PR #4192 into main, bumping craft-providers to 1.13.0 in commit 9f3529597.
75%
#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.
75%
#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.
74%
#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.
74%