Skip to content

Release errors: recipe sources checked first, failed recipes last in the log - #46

Merged
aledbf merged 3 commits into
mainfrom
release-errors
Nov 8, 2026
Merged

aledbf merged 3 commits into
mainfrom
release-errors

Conversation

@aledbf

@aledbf aledbf commented Nov 8, 2026

Copy link
Copy Markdown
Collaborator

The last release failed because construct-brand pointed at a deleted branch (#45). It took 25 minutes on the builder to find out, and the error was buried under the kernel's output, so CI showed nothing useful.

  • image packages sources: git ls-remote for every recipe's git-checkout. It catches a missing branch, a missing tag, or a tag that moved off expected-commit (with var-transforms applied). It takes ~4 s for 57 checkouts.
  • It runs in task check (PRs), in task release before launching the builder, and first in release:check, which also covers launches from infra's workflow.
  • task build records a failed recipe in .cache/failed. release:check ends, only on failure and after cache push, with FAILED: recipe <name> (recipes/<name>.log) and the last 30 lines of that recipe's log. infra's workflow shows those lines (companion PR in infra).

Until #45 merges, this PR's check fails on purpose: packages sources reports construct-brand's ui-hill-climb.

🤖 Generated with Claude Code

aledbf and others added 3 commits November 8, 2026 20:47
A fork's branch merged and deleted (brand's ui-hill-climb) failed
melange's clone 25 minutes into a release, its error buried under the
kernel building beside it. git ls-remote finds a missing branch, a
missing tag or a tag moved off its expected commit in seconds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s log

task check, task release and release:check run packages sources first.
A recipe whose build fails is recorded, and release:check ends with
each one and the end of its log, after cache push: infra's release
workflow shows the log's last lines, which were the kernel's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
http.Get's default transport keeps its connections alive past the test,
and TestMain's goleak found their read and write loops on CI (os#46).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@aledbf
aledbf merged commit da065cc into main Nov 8, 2026
5 checks passed
@aledbf
aledbf deleted the release-errors branch November 8, 2026 23:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant