providers: integrate craft-providers support
Metadata
Current evaluation
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.
Suggested action: —
No scores available.
Issue body
Run lifecycle commands inside a build provider using lxd or multipass.
Craft-providers glue code based on Chris Patterson's implementation for
Charmcraft. Note: multipass images for multipass will be fixed when base
devel is implemented.
Co-authored-by: Chris Patterson <chris.patterson@canonical.com>
Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>
- [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/)?
- [ ] Have you successfully run `./runtests.sh static`?
- [ ] Have you successfully run `./runtests.sh tests/unit`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into snapcraft/7.0. Integrated craft-providers support to execute lifecycle commands via LXD or Multipass. Co-authored with Chris Patterson. Successfully merged despite a reported code coverage decrease. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into snapcraft/7.0, integrating craft-providers to run lifecycle commands in LXD or Multipass build providers. Successfully merged despite a Codecov-reported coverage decrease. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #9 providers: add build provider support (CRAFT-28) | rockcraft | merged | 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. | |
| #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. | |
| #198 requirements: update craft-providers to 1.7.2 | rockcraft | merged | Merged an update to the craft-providers dependency, upgrading it to version 1.7.2. The change incorporates LXD performance improvements, id map validation, and base instance caching. Approved by two reviewers, passed CI checks, and modified three files. | |
| #925 providers: set lxd project to 'charmcraft' | charmcraft | merged | Merged a fix setting the LXD project to 'charmcraft' instead of 'default', resolving a regression from the craft-providers migration. Approved by one reviewer, the change updates two files with a +10/-4 diff. | |
| #504 providers: improve error handling (CRAFT-472) | charmcraft | merged | Improved error handling for provider-generated exceptions by adding try/except blocks for LXD and Multipass, chaining exceptions, and adding test coverage. Merged after approval and passing CI checks. | |
| #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. | |
| #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. | |
| #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. | |
| #4244 requirements: update craft-providers to 1.10.1 | snapcraft | merged | Merged update to craft-providers 1.10.1, resolving #4181. Changes include setting LXD hostnames, updating the Multipass Lunar image to stable, and pinning urllib3 below version 2. Approved by one reviewer and passed CI checks. | |
| #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. |