build providers: environment setup for projects
Metadata
Current evaluation
Merged as snapcraft#2225 in commit 16ef9d3cf, adding Base Provider cloud-data setup, re-execution-aware project loading, and Multipass integration.
Resolution: closed resolved
Reason: Pull request #2225 was merged as commit 16ef9d3cf. It delivered shared provider environment setup and updated project loading and Multipass to use it.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Add a cloud data generator to the Base Provider which can be
used by any provider to setup the environment properly.
Make the appropriate changes to the project loading logic
to know when it is running in a re-executed mode.
Bring the multipass provider up to speed on the base Provider
changes to make use of this functionality to expose this
functionality for project building.
LP: #1782780
LP: #1782782
- [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 tests/unit`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged as snapcraft#2225 in commit 16ef9d3cf, adding Base Provider cloud-data setup, re-execution-aware project loading, and Multipass integration. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged as 16ef9d3cf (#2225), adding Base Provider cloud-data generation, re-execution-aware project loading, and Multipass integration. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged. Adds a cloud data generator to the Base Provider for environment setup and updates project loading logic for re-execution mode. Integrates changes into the multipass provider. Resolves Launchpad issues #1782780 and #1782782. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged after maintainer declined splitting due to tight coupling. Adds a cloud data generator to the Base Provider for environment setup, updates project loading logic for re-execution detection, and synchronizes the multipass provider. |
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 PR #2293 as commit 66060e839, switching Multipass builds to the snapcraft: remote and delegating unsupported-base errors to Multipass. | |
| #1782780 Add cloud user data setup logic to the base build provider | snapcraft (launchpad) | closed | Merged PR #2225 (commit 16ef9d3cf) added project environment setup for build providers. | |
| #2869 build providers: use multipass from stable | snapcraft | merged | Merged in canonical/snapcraft#2869 (commit eb9bd8fbf), switching build providers to install Multipass 1.0 from the stable channel. | |
| #2260 build providers: allow setting ram and disk size | snapcraft | merged | Merged PR snapcraft#2260 (commit 8d9cc5c5a): added Multipass-only build provider RAM/disk size overrides via two env vars, addressing LP bug #1791661. Provider logic later moved to craft-providers. | |
| #1792614 use multipass if set in the environment | snapcraft (launchpad) | closed | Closed as fixed: PR snapcore/snapcraft#2275 (commit 04f8896d9) made SNAPCRAFT_BUILD_ENVIRONMENT/multipass take precedence over the base-derived provider choice. | |
| #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). | |
| #2258 build providers: snapcraft images for multipass | snapcraft | merged | Merged PR #2258 as commit 5ffefbf96, adding Snapcraft build images for Multipass and a Darwin launch workaround for LP #1791821. | |
| #3583 build providers: snapcraft's new base is core20 (CRAFT-544) | snapcraft | merged | Merged PR #3583 via 2b2d7dbcf, replacing build providers' injected core18 base with core20 to match Snapcraft's new base. | |
| #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. | |
| #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). |