← Back to issue list

fix(remote): error early for invalid platform usage

View original Github issue

Metadata

Project
snapcraft
Number
#5351
Type
pull request
State
merged
Author
mr-cal
Labels
—
Created
Updated
Closed

Current evaluation

PR #5351 merged as commit 0c224fc7d, adding an early, friendlier error when --build-for is used with shorthand project platforms instead of failing at Launchpad. Fixes #5270 (CRAFT-4186); restriction later lifted by #5687.

Resolution: closed resolved

Reason: The PR was merged into snapcraft main as commit 0c224fc7d ('fix(remote): error early for invalid platform usage (#5351)'), adding early validation that rejects --build-for combined with shorthand platforms entries and closing #5270. The workaround was later removed in #5687 (aa2d9ef0d) once Launchpad's upstream bug was resolved.

Evaluated by: mr-cal-bot

No scores available.

Issue body

- [x] Have you followed the [guidelines for contributing](https://github.com/canonical/snapcraft/blob/main/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 `make test`? --- Raises an early error if `--build-for` is used in combination with shorthand `platforms` entries in the project file. Launchpad fails with an unfriendly error, so Snapcraft now fails early with a friendlier error. This is designed so that it can be quickly removed once the upstream bug in Launchpad is resolved. Remote build spread test: https://github.com/canonical/snapcraft/actions/runs/14045570296/job/39326652643 Fixes #5270 (CRAFT-4186)

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved PR #5351 merged as commit 0c224fc7d, adding an early, friendlier error when --build-for is used with shorthand project platforms instead of failing at Launchpad. Fixes #5270 (CRAFT-4186); restriction later lifted by #5687.
stealth/space-bunny-alpha — closed resolved Merged PR #5351 added early validation to reject --build-for combined with shorthand project platforms, resolving #5270 with a clearer error before remote-build submission.
qwen/qwen3.6-35b-a3b — — Merged a fix that raises an early error when --build-for conflicts with shorthand platform entries, preventing unfriendly Launchpad failures. The change passed CI checks and received approvals, resolving issue #5270.
qwen3.6-35b-a3b-mtp-q6 — — Merged a fix adding early validation to fail gracefully when --build-for conflicts with shorthand platforms entries, preventing unfriendly Launchpad errors. Resolves #5270.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: snapcraft#5270 (confidence 97%)

    Issue titled 'Check for invalid recipes in remote-builds'; the PR body states 'Fixes #5270' and that issue is now closed.

  • Superseded By: snapcraft#5687 (confidence 88%)

    Commit aa2d9ef0d 'feat(remote): allow using shorthand platforms with --build-for' removed the temporary early error once the upstream Launchpad bug was fixed, as the PR description anticipated.

  • Related To: snapcraft#6090 (confidence 55%)

    Later commit 527ff6d2c improves the remote-build legacy error for --build-for usage, continuing the same error-handling area.

Related issues

Issue Project State Summary Similarity
#5687 feat(remote): allow using shorthand platforms with --build-for snapcraft merged Merged PR #5687 (commit aa2d9ef0d), enabling --build-for with shorthand platform declarations after Launchpad removed the underlying restrictions.
80%
#4858 remote build: platform definitions cannot be parsed by Launchpad snapcraft closed Launchpad parsing was addressed upstream, and merged PR canonical/snapcraft#4994 (5cd480725) fixed remote-build handling of --platform and --build-for.
74%
#6090 feat(remote-build/legacy): improve error when building with --build-for snapcraft merged Merged PR #6090 improved legacy remote-builder errors for core20, clarifying that --build-for requires shorthand architectures because of Launchpad limitations. It addresses #5817 and supersedes #5819.
74%
#4881 remote build: fails if `--platform` or `--build-for` are passed with no `platforms` or `architectures` defined snapcraft closed Closed without implementation after CRAFT-3070 recorded the intended scope; no resolving PR or commit was linked.
73%
#5216 feat(remotebuild)!: filter build-plan with --build-for, drop --platform snapcraft merged Merged as commit 359a364cb (CRAFT-3277): `remote-build` now filters the build plan with `--build-for`, `--platform` was removed, and Launchpad errors are caught instead of surfacing as internal errors. Ships in snapcraft 8.7; closes #4992.
72%
#84 fix: do not strip base from platform names craft-platforms merged Merged PR #84 via commit 7680af2: shorthand platform names now retain their base, preventing duplicate BuildInfo names required by craft-application.
72%
#633 fix: improve `platforms.<platform>.build-on` validation rockcraft closed Closed unmerged as redundant: PR canonical/rockcraft#567 had already improved build-on validation by adopting craft-application's default BuildPlanner.
72%
#6453 fix(remote-build): error with a resolution when '--platform' is used snapcraft closed PR #6453 proposed clearer remote-build --platform guidance pointing to --build-for, but was closed unmerged after no review; issue #5387 remains open.
72%
#2642 remote-build: detect early build errors snapcraft merged Merged PR #2642 by cjp256: remote-build now detects early Launchpad build errors (e.g. missing snapcraft.yaml) instead of misreporting a busy builder; landed as commit 73fd95e86.
71%
#5265 fix(remotebuild): don't fail when cross-compiling snapcraft merged Merged PR #5265 fixed remote cross-compilation by sending build-on architectures to Launchpad; commit f94da8f13 closed #4996.
71%