providers: install snaps and packages via craft-providers API
Metadata
Current evaluation
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).
Resolution: closed resolved
Reason: PR #3933 was approved and merged into main as commit 929a26fd6 "providers: install snaps and packages via craft-providers API", with 100% diff coverage per the Codecov report.
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`?
-----
Install snaps and packages via `craft-providers`.
(CRAFT-1281, CRAFT-1283)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | 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). | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #3933 (457ff26), implementing installation of snaps and packages through the craft-providers API for CRAFT-1281 and CRAFT-1283. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged implementation for installing snaps and packages via the craft-providers API. Approved, passed CI, and increased unit test coverage by 0.46 percent across three changed files. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into main. Implements installing snaps and packages via the craft-providers API, addressing CRAFT-1281 and CRAFT-1283. The change achieved 100% diff coverage and increased overall project coverage by 0.46%. |
Update history
No update history recorded yet.
Related work
-
Related To:
snapcraft#3943
(confidence 80%)
Follow-up PR merged as 2980d145c removed the in-tree Provider classes entirely in favour of the craft-providers interface, superseding the in-tree providers touched here.
-
Related To:
snapcraft#3967
(confidence 45%)
Related later provider change: commit 2a8d07b24 stopped pushing .bashrc to Multipass instances, built on this provider refactor series.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #891 (internal) Install snap via craft-providers API (CRAFT-1277) | charmcraft | merged | Merged PR #891 as commit 456601ff, switching Charmcraft snap installation to the craft-providers API and completing CRAFT-1277. | |
| #71 providers: install rockcraft snap via craft-providers API | rockcraft | merged | Merged as f31183b7, refactoring provider setup to install the Rockcraft snap through the craft-providers API without functional changes. | |
| #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). | |
| #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). | |
| #143 build(deps): bump craft-providers to 1.20.0 | craft-application | merged | Merged PR #143 as commit f0349036, updating craft-providers to 1.20.0 so host-injected snaps also receive their base snap. | |
| #1098 build: update craft-providers | rockcraft | merged | Merged craft-providers update in #1098 (commit bef64dc8) to address recurring snapd watch errors in spread tests. | |
| #3786 providers: update craft-providers | snapcraft | merged | Dependency bump PR snapcraft#3786 (CRAFT-1102) merged into main via 2df6fc6e5, updating the craft-providers pin to 1.3.1 in requirements files after successful manual testing. | |
| #4551 build(deps): bump craft-providers to 1.22.0 | snapcraft | merged | Merged in snapcraft#4551 via commit 7e6149fcf, upgrading craft-providers to 1.22.0 and resolving Launchpad bug 2051567. | |
| #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. | |
| #2174 build_providers: inject snaps when running from a snap | snapcraft | merged | Merged PR #2174 (commit 283ab0bb8) to inject host Snapcraft and base snaps when running from the snapcraft snap, while non-snap runs install them from the store. |