← Back to issue list

providers: use new craft-providers interface

View original Github issue

Metadata

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

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).
85%
#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.
82%
#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).
78%
#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.
77%
#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.
76%
#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.
75%
#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.
74%
#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.
74%
#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.
73%
#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.
73%