providers: integrate craft-providers support
Metadata
Current evaluation
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).
Resolution: closed resolved
Reason: The pull request was approved and merged into snapcraft/7.0, recorded as merge commit 7c2ac0027 ("Merge pull request #3660 from cmatsuoka/craft-626/integrate-craft-providers") with underlying commit 8a06cdbbd "providers: integrate craft-providers support". The feature shipped in Snapcraft 7.0 and remains in the codebase today.
Evaluated by: mr-cal-bot
Issue body
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | 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). | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #3660 (7c2ac0027), adding craft-providers support to run lifecycle commands in LXD or Multipass. Multipass image support was deferred until base-devel implementation. | |
| qwen/qwen3.6-35b-a3b | — | — | Integrated craft-providers support to run lifecycle commands in LXD or Multipass build providers. Merged with 1338 additions and 41 deletions across 22 files, adapting Charmcraft's implementation after reviewer approval. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into snapcraft/7.0. Integrated craft-providers support to execute lifecycle commands via LXD or Multipass. Co-authored with Chris Patterson. Successfully merged despite a reported code coverage decrease. |
Update history
No update history recorded yet.
Related work
-
Related To:
snapcore/snapcraft#3943
(confidence 80%)
Follow-up commit 2980d145c 'providers: use new craft-providers interface' refines the provider layer introduced by #3660.
-
Related To:
snapcore/snapcraft#4086
(confidence 70%)
Commit 75ca7f1c3 'requirements: update craft-providers to 1.10.0 (#4086)' is one of many dependency bumps continuing this integration.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #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). | |
| #4032 requirements: update craft-providers to 1.7.2 | snapcraft | merged | Merged as commit 9ab9a75dc: bumped the craft-providers pin to 1.7.2 in requirements files, so LXD instances for core22 snaps check the id map, avoiding cross-user errors like git "dubious ownership detected". | |
| #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. | |
| #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. | |
| #3969 requirements: update craft-providers to v1.6.1 | snapcraft | merged | Merged PR #3969 (commit f378ec38b) bumped craft-providers to v1.6.1 in requirements, fixing Multipass errors writing outside the user's home dir and unblocking Snapcraft 7.2.0 testing. | |
| #3933 providers: install snaps and packages via craft-providers API | snapcraft | merged | Merged PR #3933 (commit 929a26fd6) reworked snapcraft/providers to install snaps and packages via the craft-providers API instead of bespoke code (CRAFT-1281, CRAFT-1283). | |
| #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. | |
| #4938 build(deps): bump craft-providers to 1.25.0 | snapcraft | closed | PR closed unmerged and superseded by canonical/snapcraft#5006 (merged as commit 96140ad2a), which bumped craft-providers to 1.24.2 and required Multipass >=1.14.1 for core24 builds instead of 1.25.0. | |
| #709 Upstream snap hooks | craft-providers | closed | Centralized upstream snap hooks in craft-providers via merged PR #710 (commit 5bbaf39), shipping in 2.2.0 as reusable LXD cleanup utilities. | |
| #2249 build providers: provide support to shell in | snapcraft | merged | Merged PR #2249 (commit 9f5640b17) adding a shell() method to snapcraft build providers, enabling interactive 'shell into' the Multipass/LXD build instance. |