build providers: unified provider refactoring for provider setup
Metadata
Current evaluation
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.
Suggested action: —
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 |
|---|---|---|---|---|
| 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed without merge activity, indicating the provider setup refactoring was abandoned. The changes proposed unified readiness checks and centralized installation logic across build providers. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2515 build providers: support for provider setup | snapcraft | merged | Merged after approval and passing CI. Implemented provider setup support by relocating checks and initialization logic into provider implementations. Modified ten files (+212/-121 lines) and resolves LP #1821586. | |
| #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. |