← Back to issue list

cli: add support for parallel remote builds

View original Github issue

Metadata

Project
snapcraft
Number
#3554
Type
pull request
State
merged
Author
kyrofa
Labels
—
Created
Updated
Closed

Current evaluation

Merged #3554 in commit c26fc107a, adding project-state hashes and selectable build IDs so multiple remote builds can run and be tracked in parallel.

Resolution: closed resolved

Reason: PR canonical/snapcraft#3554 was merged through merge commit a16fffe76. Its implementation added parallel remote-build support with state-based identifiers and build-ID tracking.

Evaluated by: mr-cal-bot

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 `./runtests.sh static`? - [x] Have you successfully run `./runtests.sh tests/unit`? ----- Currently, when spinning up a remote build, snapcraft calculates a hash of the path for the project being built, and uses that as a unique identifier for the build. This artificially limits the number of builds that can be happening for a given project to 1, which really limits the usefulness of remote builds. Instead of calculating a hash for the project directory, calculate a hash that represents the _state_ of the project, such that changing any file in the working tree (e.g. switching git branches) changes the hash. This allows multiple builds for different versions of a given project to be running at the same time. Of course, this introduces the complication of needing to track such builds. Expose the concept of a "build ID" to the user and allow them to specify it for every remote-build command, so they can check the status of or recover particular builds by providing the relevant build ID.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged #3554 in commit c26fc107a, adding project-state hashes and selectable build IDs so multiple remote builds can run and be tracked in parallel.
stealth/space-bunny-alpha — closed resolved Merged in canonical/snapcraft#3554, enabling parallel remote builds with project-state hashes and user-selectable build IDs for tracking and recovery.
stealth/space-bunny-alpha — closed resolved Merged PR #3554 (commit c26fc107a, merge a16fffe76), adding parallel remote builds via project-state hashes and user-selectable build IDs.
qwen/qwen3.6-35b-a3b — — Merged to master. Enables parallel remote builds in snapcraft CLI by hashing project state instead of the directory path, allowing concurrent builds. Introduces a user-specifiable build ID for tracking and recovery.
qwen3.6-35b-a3b-mtp-q6 — — Merged into master. Replaces project path hashing with state-based hashing to enable concurrent remote builds. Introduces a user-specified build ID for tracking and recovery. Codecov reports a minor 0.04% coverage decrease.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#2500 cli: add remote build snapcraft merged Merged PR #2500 added a CLI remote-build command that submits source trees to Launchpad and retrieves built snaps or error logs.
71%
#4324 remote-build: new command logic snapcraft closed Remote-build logic was replaced by merged PR #4395 (commit 2e0647594), adding isolated per-build cache worktrees, cleanup, and generated build IDs.
70%
#3553 cli: make remote-build more user-friendly snapcraft merged Merged in #3553 via 8649cedd6: --recover now reports when no build exists, the public-data prompt only appears for new builds, and tests cover the behavior.
70%