providers: use new craft-providers interface
Metadata
Current evaluation
Merged after review and CI approval. Replaced custom Provider classes with the new craft-providers interface, relocated providers.py, and refactored 17 files. Reduced codebase by over 1200 lines, resolving CRAFT-1349.
Suggested action: —
No scores available.
Issue body
- [X] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
- Remove Provider, LXDProvider, and MultipassProvider classes
- Use the Provider classes from craft-providers
- Move `rockcraft/providers/providers.py` to `rockcraft/providers.py`
(CRAFT-1349)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after review and CI approval. Replaced custom Provider classes with the new craft-providers interface, relocated providers.py, and refactored 17 files. Reduced codebase by over 1200 lines, resolving CRAFT-1349. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Replaced custom Provider classes with the new craft-providers interface and reorganized the providers module per CRAFT-1349. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Refactored provider module to use the new craft-providers interface, removing legacy Provider, LXDProvider, and MultipassProvider classes and relocating providers.py. Resolves CRAFT-1349. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #899 providers: use new craft-providers interface | charmcraft | merged | Merged after replacing internal Provider classes with the new craft-providers interface. Refactored by moving providers.py to the package root, removing 1253 lines across 17 files. Resolved CRAFT-1279. | |
| #3943 providers: use new craft-providers interface | snapcraft | merged | Merged to main. Replaced internal Provider classes with the craft-providers interface and consolidated the providers module. Approved after passing CI and spread tests. Coverage dropped 0.15% with 100% diff coverage; unrelated test failure tracked in PR #3944. | |
| #92 providers: refactor get_provider() | rockcraft | merged | Merged after approval and passing CI. Refactored and moved get_provider() from _get_provider.py to providers.py across seven files, reducing code by 25 lines. Resolves CRAFT-1375. | |
| #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. | |
| #898 providers: move `get_provider()` to providers.py | charmcraft | merged | Merged after approval. Moved the get_provider() function to providers.py as part of CRAFT-1410. The refactoring touched 10 files, adding 178 lines and removing 226, and was previously blocked by PR 896. | |
| #24 requirements: update craft-providers | rockcraft | merged | Merged update to craft-providers 1.2.0, significantly improving warm-start performance for build instances. Approved by one reviewer, passed CI checks, and changed three files. | |
| #3786 providers: update craft-providers | snapcraft | merged | Merged to main. Updates the craft-providers dependency to version 1.3.1. The change passed lint, unit tests, and manual verification. Coverage remained unchanged, and the update received maintainer approval prior to merging. | |
| #86 providers: use ProviderError from craft-providers | rockcraft | merged | Merged adoption of ProviderError from craft-providers. Replaced custom error handling with centralized exceptions, added error catching, and included comprehensive tests. Approved and passed CI. | |
| #896 providers: move `is_base_available()` to providers.py | charmcraft | merged | Merged after approval. Moved the charmcraft-specific is_base_available() function from the craft-providers interface to providers.py to separate concerns. The change affects 8 files, adding 149 lines and removing 201. | |
| #4020 requirements: update craft-providers to 1.7.1 | snapcraft | merged | Merged update to bump the craft-providers dependency to version 1.7.1. Approved by two reviewers, passed CI checks, and maintained existing code coverage across two files. |