Skip to content

Build times include the uploads - #148

Merged
Tobias-Fischer merged 1 commit into
mainfrom
timings-with-upload
Oct 24, 2026
Merged

Tobias-Fischer merged 1 commit into
mainfrom
timings-with-upload

Conversation

@Tobias-Fischer

Copy link
Copy Markdown
Collaborator

The build jobs are packed by each recipe's measured build time (#139), but the uploads that follow the builds weren't measured. They aren't small:

  • lyrical uploads to prefix.dev and anaconda.org, with attestations, at about 9.6 s per package;
  • jazzy uploads to anaconda.org only, at 2.2 s per package.

So vinca packed lyrical's jobs as if a large part of their time were free. That's one reason lyrical's Linux rebuild only got about 45% faster, against roughly 60% for humble's.

Changes:

  • rs <distro> upload records each package's upload time in the job's build_timings.jsonl (marked "upload": true), only on GitHub Actions and only when the upload succeeded.
  • update-build-timings adds the upload times to the recipe's build time from the same run.
  • A compatibility package (ros-<distro>-<name>) still gets ALIAS_SECONDS, but its upload counts for ros2-<name>, which vinca always builds right before it in the same job.

The timing files keep their format. The times already in them are build-only, and they gain the uploads as recipes are rebuilt. Tests: test_build_timings.py covers both upload kinds, and all 57 tool tests pass.

When merging: this changes tools/, so the merge regenerates every distribution's build branches and cancels any build-branch runs in progress (currently humble's rebuild). Best merged after those finish.

🤖 Generated with Claude Code

rs <distro> upload records how long each package's upload took in the build
job's journal, next to its build time, and update-build-timings adds it to the
recipe's time. A compatibility package's upload counts for its ros2- package,
which it is built right after.

Uploads aren't small next to the builds: lyrical's (prefix.dev and anaconda.org,
with attestations) take about 9.6 s per package against jazzy's 2.2 s
(anaconda.org only), so vinca packed lyrical's jobs as if a large part of their
time were free.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Tobias-Fischer Tobias-Fischer added the build:none PR build: build no packages, only run the checks (tooling, CI or docs changes) label Oct 24, 2026
@Tobias-Fischer
Tobias-Fischer merged commit a6dcf34 into main Oct 24, 2026
8 checks passed
@Tobias-Fischer
Tobias-Fischer deleted the timings-with-upload branch October 24, 2026 04:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build:none PR build: build no packages, only run the checks (tooling, CI or docs changes)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant