← Back to issue list

providers: refactor clean_project_environments

View original Github issue

Metadata

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

Current evaluation

Merged a refactor to the craft-providers interface, removing get_instance_name() from clean_project_environments() and renaming is_provider_available() to is_provider_installed(). Aligns with rockcraft, passed CI, and increased coverage by 0.13%.

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`? ----- Two changes to the `craft-providers()` interface: 1. Move the snapcraft-specific call `get_instance_name()` out of `clean_project_environments()` 2. Rename `is_provider_available()` to `is_provider_installed()` These changes match what was done for [rockcraft](https://github.com/canonical/rockcraft/blob/5d7ed67646a10e5b35319c12d664df7b1e1a14b9/rockcraft/providers/_provider.py#L33). (CRAFT-1396)

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b Merged a refactor to the craft-providers interface, removing get_instance_name() from clean_project_environments() and renaming is_provider_available() to is_provider_installed(). Aligns with rockcraft, passed CI, and increased coverage by 0.13%.
qwen3.6-35b-a3b-mtp-q6 Merged refactoring of clean_project_environments to extract get_instance_name() and rename is_provider_available() to is_provider_installed(), aligning with rockcraft. Successfully merged into main with 100% diff coverage and a 0.13% overall increase.
qwen3.6-35b-a3b-mtp-q6 Merged into main. Refactored craft-providers by extracting get_instance_name() from clean_project_environments and renaming is_provider_available() to is_provider_installed(), aligning with rockcraft. Coverage increased by 0.13%.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#410 providers: introduce clean_project_environments() (CRAFT-314) charmcraft merged Merged to introduce clean_project_environments(), providing an interface for an upcoming clean command that removes all environments for a given project. Approved by two reviewers, adding 106 lines across two files.
76%
#3932 providers: refactor `launched_environment()` snapcraft merged Merged refactoring of launched_environment() to remove snapcraft-specific logic and align with rockcraft. Implemented standardized base translation for craft-providers. Approved and merged following successful CI checks.
76%
#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.
75%
#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.
74%
#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.
74%
#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.
72%
#74 providers: move get_instance_name() to providers.py rockcraft merged Merged after approval and passing CI. Moved the rockcraft-specific get_instance_name() function to providers.py, changing 8 files. Resolves CRAFT-1350.
72%
#110 providers: move lxd project name out of craft-providers interface rockcraft merged Merged refactoring that moves rockcraft's project name from lxd.py to providers.py in the craft-providers interface. Approved by one reviewer, passed CI, and successfully integrated.
71%
#3434 build providers: clean environment if project directory is changed snapcraft merged Merged into master. Fixes environment cleanup when project directories are relocated or reused. The build provider now tracks the directory path, verifies compatibility, and automatically cleans the environment on mismatch. Approved and passed CI.
70%
#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.
70%