providers: add build provider support (CRAFT-28)
Metadata
Current evaluation
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.
Suggested action: —
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 |
|---|---|---|---|---|
| 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged integration of rockcraft with craft-providers to run build providers on LXD instances. Glue code is ported from Charmcraft with LXD execution hardcoded, deferring user messages and log retrieval to follow-up updates. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #3660 providers: integrate craft-providers support | snapcraft | merged | 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. | |
| #110 providers: move lxd project name out of craft-providers interface | rockcraft | merged | Merged refactoring that moves rockcraft's project name from lxd.py to providers.py in the craft-providers interface. Approved by one reviewer, passed CI, and successfully integrated. | |
| #1370 build(deps): bump craft-providers to 1.19.2 | charmcraft | merged | Merged after three approvals and passing CI. Bumps craft-providers to 1.19.2, fixing LXD instance startup failures by updating the base compatibility tag from base-v2 to base-v3 and requiring a disk device in the default LXD profile. | |
| #137 build(deps): bump craft-providers to 1.19.2 | craft-application | merged | Merged dependency update to craft-providers 1.19.2. Resolves LXD instance startup failures by migrating the base compatibility tag from v2 to v3. Approved by reviewers, passed CI, and merged with no coverage impact. | |
| #206 requirements: update craft-providers to 1.8.0 | rockcraft | merged | Merged update to craft-providers 1.8.0. Adds auto-cleaning for interrupted build instances, LXD image remote support, and updated base compatibility tags. Approved by two reviewers and passed CI. | |
| #2647 build providers: catch LXD socket error | snapcraft | merged | Merged to catch LXD socket errors in build providers, resolving SNAPCRAFT-WA. Approved by reviewer, passed CI checks, and integrated with a 14-line addition and 6-line deletion across three files. Minor test coverage decrease noted but did not block merge. | |
| #403 build(deps): bump craft-providers to 1.19.2 | rockcraft | merged | Merged bumping craft-providers to 1.19.2. Fixes LXD startup failures from base tag changes and enforces disk device requirements in the default LXD profile. Approved by two reviewers with passing CI. | |
| #4437 build(deps): bump craft-providers to 1.19.2 | snapcraft | merged | Merged update bumping craft-providers to 1.19.2. Resolves LXD instance startup failures by updating the base compatibility tag from base-v2 to base-v3. Approved by reviewers and passed CI. | |
| #4438 build(deps): bump craft-providers to 1.19.2 | snapcraft | merged | Merged dependency update bumping craft-providers to 1.19.2. Fixes LXD instance startup failures for instances created with 1.16.0 by updating the base compatibility tag to base-v3. Approved by two reviewers and passed CI. | |
| #484 providers: refactor to better support multiple providers (CRAFT-362) | charmcraft | merged | Merged following two approvals and passing CI. Refactored the providers module into a package introducing a common Provider interface and LXDProvider subclass to accommodate future providers like Multipass. No behavioral changes. Minor naming adjustments applied during review. |