providers: use new craft-providers interface
Metadata
Current evaluation
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).
Resolution: closed resolved
Reason: The PR itself was approved and merged into main as commit 2980d145c ("providers: use new craft-providers interface (#3943)"), confirmed in the snapcraft history of snapcraft/providers.py.
Evaluated by: mr-cal-bot
No scores available.
Issue body
- [X] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [X] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [X] Have you successfully run `make lint`?
- [X] Have you successfully run `pytest tests/unit`?
-----
- Remove Provider, LXDProvider, and MultipassProvider classes
- Use the Provider classes from craft-providers
- Move `snapcraft/providers/providers.py` to `snapcraft/providers.py`
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | 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). | |
| stealth/space-bunny-alpha | — | closed resolved | Merged in #3943 as 2980d145c, replacing internal provider classes with craft-providers and moving the provider module to snapcraft/providers.py. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged to main. Replaced internal Provider classes with the craft-providers interface and consolidated the providers module. Approved after passing CI and spread tests. Coverage dropped 0.15% with 100% diff coverage; unrelated test failure tracked in PR #3944. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged changes replacing internal Provider classes with the craft-providers interface and restructuring the providers module. The PR passed tests, with an unrelated spread failure tracked in PR #3944. |
Update history
No update history recorded yet.
Related work
-
Likely Fixed By:
canonical/snapcraft#3944
(confidence 60%)
Mentioned by reviewers as an unrelated spread-test failure (google:ubuntu-18.04-64:tests/spread/electron-builder/no-template) blocking, not part of this change
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #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). | |
| #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. | |
| #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). | |
| #3903 providers: choose legacy default provider from snap config | snapcraft | merged | Merged in snapcore/snapcraft#3903 as 59bc024, adding snapd-configurable LXD or Multipass selection for the snapcraft_legacy default provider. | |
| #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. | |
| #3940 providers: move `get_provider()` to providers.py | snapcraft | merged | Merged PR #3940 by mr-cal moved get_provider() into snapcraft/providers.py (squash commit 2acdd89b6), a CRAFT-1409 refactor mirroring canonical/rockcraft#92, part of a series of provider/lifecycle function moves. | |
| #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. | |
| #473 snap: add configure hook with support for provider (CRAFT-363) | charmcraft | merged | Merged as bf350c68, adding a snap configure hook that reads the provider setting and rejects values other than lxd or multipass. | |
| #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. | |
| #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. |