build providers: unified provider refactoring for provider setup
Metadata
Current evaluation
Closed unmerged; the proposed unified build-provider setup refactor in #3290 was not adopted.
Resolution: closed stale
Reason: The repository record shows PR #3290 closed with no resolving PR or commit, and the proposed interface refactor was not adopted. No superseding change or maintainer explanation was identified.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Refactoring for unified approach to checking if a provider is ready, and
performing installation.
- Adds 'is_provider_ready()' interface, replacing 'ensure_provider()'.
- Makes 'setup_provider()' responsible for all user interaction to install
and/or configure the provider, and its depdenencies. Adds 'interactive'
parameter to allow for non-interactive installs, though not currently utilized.
- Refactored LXD checks into their own methods, adding a compatibility check to
check the LXD version is 4.0+, and removing the snap install check in favor of
just ensuring the hardcoded /snap/bin/lx[cd] paths are present.
- Moves setup code out of MultipassCommand into the Multipass provider.
- Update lifecycle CLI to utilize new interfaces. When tty is not connected,
and setup is required, exit with error that that build provider is not
installed or configured.
Signed-off-by: Chris Patterson <chris.patterson@canonical.com>
- [ ] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [ ] 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 |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed stale | Closed unmerged; the proposed unified build-provider setup refactor in #3290 was not adopted. | |
| stealth/space-bunny-alpha | — | closed stale | Closed unmerged; no resolving PR or commit was identified. The proposed unified build-provider setup refactor was not adopted. | |
| qwen/qwen3.6-35b-a3b | — | — | Abandoned and closed without merge. Refactored provider setup by introducing is_provider_ready and consolidating installation logic. No reviews were completed and changes were not integrated. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed without merging. The unified provider refactoring was abandoned or superseded by subsequent architectural updates. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #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. | |
| #2275 build providers: use the provider if exported | snapcraft | merged | Merged PR #2275, fixing build-provider selection so an exported provider is used. | |
| #2474 build providers: remove dead code | snapcraft | merged | Merged PR #2474 as commit 4308dd8d3, removing obsolete build-provider methods left over from legacy cleanbuild support. |