Stop the release job choking on new editions #70

Merged
TheDarkWizard merged 1 commit from release-body-from-file into main 2026-07-14 23:58:39 +00:00

Last night's Generate Release run (#1331) failed with curl: Argument list too long. The ten new WM editions had no previous day's tag, so the changelog treated each as all-added and emitted ~2,400 package rows per edition, over 10,000 rows total. That pushed the release body past the kernel's 128KiB per-argument limit, and the inline --data "$payload" meant curl could not even exec.

Two changes:

  • changelog.py now summarizes a brand-new edition in one line ("New edition in this build, shipping N packages.") instead of dumping its full package set. The major packages table still renders, and normal diffs are untouched.
  • The create-release step writes the JSON payload to a file and sends it with --data-binary @payload.json, so body size can never hit the argv limit again (POST and the same-day PATCH path both).

Verified changelog.py against synthetic data (existing edition with a diff plus a new edition with an empty prev list) and exercised the jq-to-file plus curl path with a 1MB body.

Last night's Generate Release run (#1331) failed with curl: Argument list too long. The ten new WM editions had no previous day's tag, so the changelog treated each as all-added and emitted ~2,400 package rows per edition, over 10,000 rows total. That pushed the release body past the kernel's 128KiB per-argument limit, and the inline --data "$payload" meant curl could not even exec. Two changes: - changelog.py now summarizes a brand-new edition in one line ("New edition in this build, shipping N packages.") instead of dumping its full package set. The major packages table still renders, and normal diffs are untouched. - The create-release step writes the JSON payload to a file and sends it with --data-binary @payload.json, so body size can never hit the argv limit again (POST and the same-day PATCH path both). Verified changelog.py against synthetic data (existing edition with a diff plus a new edition with an empty prev list) and exercised the jq-to-file plus curl path with a 1MB body.
Stop the release job choking on new editions
Some checks failed
PR Rebase Hint / Post rebase command (pull_request) Successful in 4s
bluebuild / Check if a rebuild is needed (pull_request) Successful in 4s
bluebuild / Generate Release (pull_request) Has been cancelled
bluebuild / Release (pull_request) Has been cancelled
0e5ecb1e02
Yesterday's ten WM editions had no previous tag, so the changelog listed
every package they ship as added (~2,400 rows each) and the release body
grew past the kernel's 128KiB per-argument cap, killing curl with
'Argument list too long' before the API call even started.

Summarize brand-new editions in one line instead of dumping their whole
package set, and send the API payload from a file with --data-binary so
the body size can never break the exec again.
Sign in to join this conversation.
No description provided.