providers: add build provider support (CRAFT-28)
Metadata
Current evaluation
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.
Resolution: closed resolved
Reason: PR canonical/rockcraft#9 was approved and merged as commit be6dec45, adding the requested craft-providers integration with LXD as the execution provider.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Integrate rockcraft with craft-providers to run build providers on lxd instances.
Notes:
* This (rather lage) PR includes craft-providers glue code ported from Charmcraft.
* Some user messages such as "Launching provider" to be added in follow-up PR (may depend on craft-cli adjustment).
* Provider log file retrieval to be added in follow-up PR (may depend on craft-cli adjustment).
* Execution currently hardwired to use the lxd provider.
Co-authored-by: Chris Patterson <chris.patterson@canonical.com>
Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | 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. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged rockcraft#9 via be6dec45, adding craft-providers integration to run builds on LXD. User messages and log retrieval were deferred to follow-up work. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged integration of rockcraft with craft-providers to run build providers on LXD instances. The change ports Charmcraft glue code, hardwires execution to LXD, and defers user messages and log retrieval to follow-up PRs. Approved and passed CI. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Integrated rockcraft with craft-providers to run build providers on LXD instances. Merged with glue code ported from Charmcraft, currently hardwired to LXD, while user messaging and log retrieval are deferred to follow-up updates. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #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. | |
| #4437 build(deps): bump craft-providers to 1.19.2 | snapcraft | merged | Merged as commit 7f03ece0b, updating craft-providers to 1.19.2 and its base-v3 LXD compatibility fix; equivalent update #4438 landed as 3ddaf758b. | |
| #1370 build(deps): bump craft-providers to 1.19.2 | charmcraft | merged | Merged PR #1370 in commit 543b5957, bumping craft-providers to 1.19.2; its base-v3 compatibility tag fixes startup failures for LXD instances created by 1.16.0. | |
| #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). | |
| #2515 build providers: support for provider setup | snapcraft | merged | Merged PR #2515 as e4a578823, moving build-provider checks and setup into provider implementations and resolving LP #1821586. | |
| #2509 build providers: initial support for LXD | snapcraft | merged | Merged PR #2509 (commit 067024732) adding initial LXD build-provider support: `snapcraft --use-lxd` runs all lifecycle steps and clean inside an LXD container. Released via beta/lxd channel; LP bug #1805221 closed. | |
| #5247 build(deps): bump craft-providers to 2.2.0, finalize 8.6.2 changelog | snapcraft | merged | Merged PR #5247 as commit 10abc58cb, updating craft-providers to 2.2.0 to fix the LXD setup race and finalizing the 8.6.2 changelog. | |
| #4462 build(deps): bump craft-providers to 1.20.1 | snapcraft | merged | Merged as commit 7bd0d3a38, bumping craft-providers to 1.20.1 to fix LXD base-instance setup failures ("Instance setup failed") introduced in1.16.0 by auto-cleaning improperly set-up base instances. | |
| #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. | |
| #1019 build: update craft-providers | rockcraft | merged | Merged PR canonical/rockcraft#1019 (commit 841f7432, "build: update craft-providers"), a 3-line dependency bump to craft-providers that fixed "EOL devel" base errors in spread tests; snap-tests failures were confirmed expected. |