feat(remote-build): new command logic
Metadata
Current evaluation
Merged into main. Introduces a RemoteBuild class to orchestrate remote builds, adds local project directory caching, and implements post-build cache cleanup. Resolves #4324. Approved by three reviewers with passing CI and 97.88% diff coverage.
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`?
-----
- Migrate the command logic used to orchestrate a remote build.
- Some of this code was moved to a new class, `RemoteBuild`
- Store a copy of the project directory in the local cache
- Clean up the cache after a build completes
- Typing and linting updates
Builds on #4390, so "only" the last 8 commits are for this PR (update: #4390 was landed and this PR is rebased onto main). The new remote-build should be functional, so I encourage you to give it try.
Fixes #4324
(CRAFT-1979)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged into main. Introduces a RemoteBuild class to orchestrate remote builds, adds local project directory caching, and implements post-build cache cleanup. Resolves #4324. Approved by three reviewers with passing CI and 97.88% diff coverage. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into main. Implements a new RemoteBuild class to orchestrate remote builds, adds local project directory caching, and handles post-build cache cleanup. Resolves #4324. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into main. Migrates remote build orchestration to a new RemoteBuild class, adds local project directory caching, and implements post-build cleanup. Includes typing and linting updates. Resolves #4324. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #4368 feat(remote-build): add GitRepo class | snapcraft | merged | Merged into main, introducing a GitRepo class for remote builds to resolve #4320. Approved by two reviewers with passing CI and 100% diff coverage. An unrelated spread failure was noted for later investigation. | |
| #1546 feat: remote build command | charmcraft | merged | Merged the remote build command feature. Approved by two reviewers and passing CI, the PR rebases prior work and adds remote build functionality. Follow-up issues were created to resolve related build-id recovery and dependency bugs. | |
| #293 feat(remote-build): allow a user-provided project | craft-application | merged | Merged after two approvals. Enables commands to set a user-provided project for remote builds without additional protections. Changes modify six files (+169/-12). Two unresolved review comments were noted before merge. | |
| #769 feat: add the remote-build command | rockcraft | merged | Merged the remote-build command. Approved by three reviewers, the change adds 86 lines and removes 7 across nine files. Integrated by the maintainer without further comments or CI issues. | |
| #4432 fix(remote-build): improve logging and catch exceptions | snapcraft | merged | Merged pull request improving remote build logging and exception handling. Approved by reviewers, passed CI checks, and resolves issue #4399. | |
| #586 feat: add a 'remote-build' command | craft-application | merged | Merged a 'remote-build' command adapted from Charmcraft to be craft-tool-agnostic. Approved by three reviewers and implemented across six files with 331 additions. | |
| #4385 feat(remote-build): get build id | snapcraft | merged | Merged implementation for remote build ID generation or command-line acceptance, resolving issue #4322. Approved by reviewers, passed CI, and adds logic to handle build IDs automatically or via input. | |
| #2642 remote-build: detect early build errors | snapcraft | merged | Merged. Improved remote build error detection to distinguish between pending builders and actual failures like missing config or timeouts. Approved by reviewer, passed CI, and modified 3 files (+131/-47 lines). Minor import fix applied. | |
| #4370 feat(remote-build): check if project is in a git repository | snapcraft | merged | Merged feature adding git repository detection for remote-build. Falls back to legacy remote-build logic when a project lacks a git repository, resolving issue #4321. Approved by two reviewers and passed CI checks. | |
| #4882 docs: add explanation for remote build | snapcraft | merged | Merged documentation update detailing current and legacy remote builder behaviors. Approved by reviewers and passed CI. Resolves issue #4842 by establishing comprehensive guidance prior to future behavioral changes. |