cli: make remote-build more user-friendly
Metadata
Current evaluation
Merged improvements to remote-build CLI. Aligns --recover with --status, suppresses unnecessary public data prompts when checking status, and adds tests. Approved and merged.
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 `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh tests/unit`?
-----
Remote build currently has a few papercuts.
First of all, if there is no outstanding build, `--recover` literally means nothing: it just spins up another build as if it wasn't supplied at all, which in my experience is never what is desired. It also means there is a disconnect between how `--recover` and `--status` works. Fix that by making `--recover` function more like `--status`, and simply say that there are no builds. Harmony!
Second, one is _always_ prompted about how data being sent to the remote builders is publicly available, even when using options that don't send any meaningful data to the builders, like `--status` and (now) `--recover`. Fix that by no longer using Click to prompt, and prompting only when actually spinning up a new build.
Finally, add tests confirming this behavior.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged improvements to remote-build CLI. Aligns --recover with --status, suppresses unnecessary public data prompts when checking status, and adds tests. Approved and merged. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged CLI enhancements for remote-build. Updated --recover to mirror --status behavior when no builds exist, removed redundant public data prompts for non-build commands, and added tests. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Improved remote-build CLI by fixing --recover to report no builds instead of starting a new one, suppressing unnecessary public data warnings for --status and --recover, and adding tests. Completed after a test re-run. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2768 remote-build: autorecovery | snapcraft | merged | Merged the remote-build autorecovery feature. Related changes were extracted to PR #2772. After addressing comments and rebasing, the branch was approved and merged, modifying three files (+278/-234). | |
| #2798 cli: improve the remote-build upload messaging | snapcraft | merged | Merged changes improving CLI remote-build upload messaging. The update replaces public with publicly available to clarify artifact visibility. Approved by reviewer, passed CI, and integrated with minimal code changes. | |
| #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. | |
| #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. | |
| #3919 cli: move remote build out of legacy | snapcraft | merged | Merged into main as PR #3919. Moved CLI remote build logic out of legacy, exported --build-for, hidden --build-on, and fixed emitter stopping during prompts. Approved and passed CI checks. | |
| #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. | |
| #2837 remote-build: gpg-signing and usability fixes | snapcraft | merged | Merged changes disabling GPG signing for git commits to fix remote-build failures. Improves error messaging and commit formatting. Approved by reviewer, passed CI, and integrated into the codebase. | |
| #623 fix: remove --status from remote-build overview | craft-application | merged | Removed the non-existent --status argument from the remote-build overview text, resolving #620 and CRAFT-4028. Merged following three approvals and passing CI checks, with the branch retargeted to main. | |
| #2590 remote build: add option to skip public upload question | snapcraft | merged | Merged. Introduces a flag to skip the public upload confirmation prompt during remote builds, supporting non-interactive environments. Approved by two reviewers, passed CI, and includes tty-aware prompts with error handling. | |
| #2825 remote-build: remove need to specify user | snapcraft | merged | Merged after two approvals and CI. Removes remote build user specification, adds automatic login on init, fixes AcceptPublicUploadError, and deletes unused _waiting from LaunchpadClient across five files. |