feat(remote-build): check base before executing
Metadata
Current evaluation
Merged after reviewer approval and passing CI. Adds base validation before remote-build execution, raising errors for unsupported bases and enabling fallback for core20/core22. Resolves #4318.
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`?
-----
Check the base of the project before executing remote-build.
Behavior:
- unknown bases: `SnapcraftError`
- `core` and `core18`: `MaintenanceError`
- `core20` and `core22`: may use fallback remote-build behavior
- `devel` (and `core24` when ready): cannot use fallback-remote build behavior
Fixes #4318
(CRAFT-1972)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after reviewer approval and passing CI. Adds base validation before remote-build execution, raising errors for unsupported bases and enabling fallback for core20/core22. Resolves #4318. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into main, adding base validation before remote-build execution. Resolves #4318 by enforcing strict error handling or fallback logic per base. Achieved 100% diff coverage. Commit message adjusted per reviewer feedback. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into main. Implements base validation before remote-build execution, applying specific error handling or fallback logic per base. Fixes #4318. Increases code coverage by 0.04%. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #4396 fix(remote-build): warn instead of error when using unsupported bases | snapcraft | merged | Merged into main after approval and CI. Changed remote builds to warn instead of error on unsupported bases, resolving #4357. Diff coverage is 88.88% with a minor overall decrease. | |
| #4353 feat(remote-build): check SNAPCRAFT_REMOTE_BUILD_STRATEGY envvar | snapcraft | merged | Merged implementation of SNAPCRAFT_REMOTE_BUILD_STRATEGY environment variable to control remote build fallback for core22 and older bases. Approved by two reviewers, passed CI, and achieved 100% diff coverage. Resolves #4319. | |
| #850 feat: add check for unsupported bases | craft-application | merged | Merged a feature implementing a check for unsupported bases, introducing the --allow-unsupported-base flag to bypass restrictions. Approved by three reviewers with all CI checks passing. | |
| #598 feat: allow for multi-base builds | craft-application | merged | Merged to enable multi-base builds by allowing bases in the platforms entry. Approved by three reviewers, passed CI, and resolves issue #569. Modified four files with 46 additions and 28 deletions. | |
| #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. | |
| #4395 feat(remote-build): new command logic | snapcraft | merged | 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. |