← Back to issue list

providers: use new craft-providers interface

View original Github issue

Metadata

Project
charmcraft
Number
#899
Type
pull request
State
merged
Author
mr-cal
Labels
Created
Updated
Closed

Current evaluation

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.

Suggested action:

No scores available.

Issue body

- Remove Provider, LXDProvider, and MultipassProvider classes - Use the Provider classes from craft-providers - Move `charmcraft/providers/providers.py` to `charmcraft/providers.py` --- CRAFT-1279

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b 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.
qwen3.6-35b-a3b-mtp-q6 Merged refactoring that replaces internal Provider, LXDProvider, and MultipassProvider classes with the updated craft-providers library interface. Relocated providers.py to the providers package root. Resolves CRAFT-1279.
qwen3.6-35b-a3b-mtp-q6 Merged: replaced internal Provider, LXDProvider, and MultipassProvider classes with the craft-providers library interface. Refactored by moving charmcraft/providers/providers.py to charmcraft/providers.py per CRAFT-1279.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#120 providers: use new craft-providers interface rockcraft merged 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.
96%
#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.
90%
#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.
82%
#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.
78%
#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.
78%
#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.
74%
#3660 providers: integrate craft-providers support snapcraft merged Integrated craft-providers support to run lifecycle commands in LXD or Multipass build providers. Merged with 1338 additions and 41 deletions across 22 files, adapting Charmcraft's implementation after reviewer approval.
74%
#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.
73%
#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.
73%
#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.
73%