← Back to issue list

providers: use new craft-providers interface

View original Github issue

Metadata

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

Current evaluation

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.

Suggested action:

No scores available.

Issue body

- [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] Have you successfully run `make lint`? - [X] Have you successfully run `pytest tests/unit`? ----- - Remove Provider, LXDProvider, and MultipassProvider classes - Use the Provider classes from craft-providers - Move `snapcraft/providers/providers.py` to `snapcraft/providers.py`

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b 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.
qwen3.6-35b-a3b-mtp-q6 Merged changes replacing internal Provider classes with the craft-providers interface and restructuring the providers module. The PR passed tests, with an unrelated spread failure tracked in PR #3944.
qwen3.6-35b-a3b-mtp-q6 Merged after replacing internal provider classes with the new craft-providers interface and restructuring provider files. An unrelated spread test failure was tracked in PR #3944. Diff coverage reached 100%.

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.
91%
#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.
90%
#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.
80%
#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.
79%
#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.
78%
#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.
78%
#4192 requirements: bump craft-providers snapcraft merged Bumped craft-providers dependency. PR approved, passed CI, and merged into main. Unrelated test failures were deferred to separate PRs.
77%
#4429 build(deps): bump craft-providers to 1.19.1 (#4421) snapcraft merged Merged bump of craft-providers to 1.19.1. Added spread tests for base: devel and fixed multipass spread tests. Approved with passing CI. Changes were also merged into the hotfix/7.5 branch. Coverage unchanged.
76%
#835 build(deps): use dev craft-providers craft-application closed Superseded by PR #838. The branch tested unreleased craft-providers code but was closed after a maintainer confirmed the changes were implemented in the referenced pull request.
75%
#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.
75%