lxd: refactor Cleanbuilder into Containerbuild and add Project.
Metadata
Current evaluation
Merged. Refactored Cleanbuilder into a Containerbuild base class and introduced a Project class to manage persistent LXD containers for snap builds. Approved after code review and test fixes.
Suggested action: —
No scores available.
Issue body
I refactored the Cleanbuilder class into a new base class, Containerbuild and introduced a new class, Project, which creates and re-uses a persistent container named after the project (snap). The "snap" as well as the argumentless command now prompts the user for a containerized build (which in the future will mount folders from the host into the container instead of building off a tarball).
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Refactored Cleanbuilder into a Containerbuild base class and introduced a Project class to manage persistent LXD containers for snap builds. Approved after code review and test fixes. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a refactoring that extracts Cleanbuilder into a Containerbuild base class and introduces a Project class for persistent container builds. Minor implementation, CLA, and test issues were resolved prior to merge. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged after refactoring Cleanbuilder into Containerbuild and introducing a Project class for persistent container reuse. Resolved external contributor CLA compliance, unit test debugging, and LXD device conflicts prior to integration. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1627 lxd: split container classes into different files | snapcraft | merged | Merged refactoring splitting LXD container classes from lxd.py into separate modules. Improves organization, moves Cleanbuilder methods, de-duplicates env vars, and fixes mocking imports. No functional changes. Approved by two reviewers and passed CI. | |
| #1434 lxd: clean with no parts should only delete | snapcraft | merged | Merged. Updates snapcraft LXD handling so running clean without arguments only deletes container resources instead of executing commands inside them. Approved by one reviewer and merged. | |
| #1644 lxd: fix the push in container builds | snapcraft | merged | Merged pull request fixing LXD container push builds. Approved by one reviewer, the change refactored test cases for better coverage and updated build logic. Review comments highlighted the need for Travis integration and broader testing beyond unit tests. | |
| #1364 lxd: Inject snapcraft and core snaps into the container | snapcraft | merged | Merged. Injects the host's snapcraft and core snaps into LXD containers to ensure build version consistency. Approved by one reviewer, modifying nine files with 360 additions and 46 deletions. | |
| #1519 lxd: use a unique temporary folder | snapcraft | merged | Merged to resolve parallel snapcraft cleanbuild failures by moving the temporary folder initialization to the constructor. Removed the is_snap condition, relocated tests, and passed CI review. Modified 5 files. | |
| #1372 cli: Containerbuild clean | snapcraft | merged | Merged to add a unit test and fix for the SNAPCRAFT_CONTAINER_BUILDS=1 clean command. Approved after reviewer testing issues were addressed and a related bug report was linked. | |
| #1762 lxd: delete container only if parts is empty | snapcraft | merged | Merged fix resolving bug 1734145 by updating LXD container cleanup logic to only delete containers when parts are empty. Approved by one reviewer, passed CI checks, and modified two files. | |
| #328 New command cleanbuild (using lxd) | snapcraft | merged | Merged a new cleanbuild command using LXD for isolated builds. pylxd was removed due to API changes and Python 3 compatibility, and integration tests were skipped. Approved and merged by maintainers. | |
| #2509 build providers: initial support for LXD | snapcraft | merged | Merged initial LXD build provider support for snapcraft, enabling the --use-lxd flag for lifecycle steps and cleaning. Passes CI. Reviewers noted minor dependency and container setup edge cases, which were clarified or deferred. | |
| #1263 lxd: pass through commands into the container | snapcraft | merged | Merged a pull request enabling snapcraft to pass build commands into LXD containers. The change allows remote builds to execute within the container environment, addressing path mounting issues during remote snap creation. Approved by one reviewer, though coverage decreased slightly. |