build_providers: new build provider using multipass
Metadata
Current evaluation
Merged pull request introducing the build_providers package and MVP multipass integration for snapcraft. Approved by two reviewers despite reported naming inconsistencies and a launch crash, accepted as initial implementation.
Suggested action: —
No scores available.
Issue body
build_providers is a new package to handle different providers snapcraft
can use to create a snap.
In addition to the scaffolding, an implementation to handle
multipass is provided. This is the MVP for multipass integration.
- [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] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)?
- [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh unit`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged pull request introducing the build_providers package and MVP multipass integration for snapcraft. Approved by two reviewers despite reported naming inconsistencies and a launch crash, accepted as initial implementation. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Introduces the build_providers package and MVP multipass integration for snapcraft. Despite reviewer reports of naming inconsistencies and a launch crash during testing, the implementation was accepted and merged. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Introduces the build_providers package and initial multipass integration for snapcraft. Despite reviewer notes on naming inconsistencies and a launch crash during testing, the changes were accepted and merged. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2293 build providers: use the new snapcraft: remote for multipass | snapcraft | merged | Merged into master. Updates the multipass build provider to use the new snapcraft: remote, removing static base mappings and delegating error handling to multipass. Approved by reviewers and passed CI. | |
| #2869 build providers: use multipass from stable | snapcraft | merged | Merged update to consume Multipass 1.0 from the stable channel for build providers. Approved by one reviewer, modifying four files with minimal changes. | |
| #2174 build_providers: inject snaps when running from a snap | snapcraft | merged | Merged. Updates build providers to inject snapcraft and its base from the host when running inside the snapcraft snap, ensuring parity with non-snap environments. Approved by reviewer and passed CI checks. | |
| #2258 build providers: snapcraft images for multipass | snapcraft | merged | Implemented snapcraft build images for multipass environments with a Darwin workaround. Merged after reviewer approval and passing CI checks, adding 239 lines across 7 files to resolve LP #1791821. | |
| #491 providers: introduce multipass support (CRAFT-409) | charmcraft | merged | Merged. Adds Multipass provider support with detection via env var, snap config, or platform default. Updates execute_run() to use pathlib.Path and adds tests. Approved by two reviewers, passed CI, and modified 10 files. | |
| #3381 multipass build provider: check if instance exists before deleting | snapcraft | merged | Merged a Snapcraft fix adding an existence check before deleting Multipass instances, preventing errors when missing. Addresses LP #1904774. Reviewers suggested extra features and warnings, but the core fix was approved and merged. | |
| #2511 build providers: modify the _run signature | snapcraft | merged | Merged changes modifying the _run signature in build providers to return output. Updates the Multipass implementation to wrap execute calls. Approved by reviewer and passed CI checks. | |
| #4938 build(deps): bump craft-providers to 1.25.0 | snapcraft | closed | Approved and CI-passing changes to bump craft-providers to 1.25.0 were delayed for Multipass compatibility. The request was closed and superseded by pull request #5006. | |
| #2267 build providers: refresh packages on bring up | snapcraft | merged | Merged. Added packaging repository refresh tasks to the BaseProvider bring-up logic, consolidating Multipass provider functionality. Approved and passed CI. A related container environment issue remains unresolved. | |
| #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. |