Skip to content

Build times: no compatibility recipes, one recipe per line - #146

Merged
Tobias-Fischer merged 1 commit into
mainfrom
compact-build-timings
Oct 23, 2026
Merged

Tobias-Fischer merged 1 commit into
mainfrom
compact-build-timings

Conversation

@Tobias-Fischer

Copy link
Copy Markdown
Collaborator

shared/build_timings/ was about 880 KiB. About two thirds of the entries were compatibility recipes (ros-jazzy-*, ros-lyrical-*), each about 0.2 s and kept once per distribution.

Changes:

  • Compatibility recipes aren't kept: collect() skips ros-<distro>-* times. vinca_timings() gives every distribution's compatibility recipes ALIAS_SECONDS (0.3 s, the measured median). They are built right after their ros2- package anyway (vinca#179), so their time only adds to that package's, and they need no per-distribution copies.
  • Default for unmeasured recipes: the median of the packages (ros2-*), not of all entries, which the compatibility recipes pulled to almost zero. lyrical's new packages had been packed as if they took no time. This also fixes what humble: rosdistro sync 2026-10-12 #62 fixes, so humble: rosdistro sync 2026-10-12 #62 will be reconciled with it.
  • One recipe per line: "ros2-rclcpp": {"jazzy": 119.7, "lyrical": 100.3},. A changed time is a one-line diff in the weekly update-build-timings PR.

Sizes:

entries size
linux-64 3751 → 1274 201 → 72 KiB
linux-aarch64 3709 → 1260 198 → 71 KiB
osx-64 3282 → 1107 166 → 54 KiB
osx-arm64 3340 → 1136 176 → 62 KiB
win-64 2805 → 946 141 → 46 KiB

Merging: this changes shared/, so merging regenerates the build branches. It's best merged once lyrical's current rebuild runs have finished.

Labelled build:none. All 57 tool tests pass, and rs check passes.

🤖 Claude (AI assistant), on behalf of @Tobias-Fischer

🤖 Generated with Claude Code

The compatibility recipes (ros-<distro>-<name>, about two thirds of the
entries with jazzy's and lyrical's) only repackage and are built right after
their package: collect() no longer keeps their times, and vinca_timings()
gives every distribution's compatibility recipes ALIAS_SECONDS (0.3 s, the
measured median), so no per-distribution copies are needed. Unmeasured
recipes default to the median of the packages (ros2-*) rather than of all
entries, which the compatibility recipes made nearly zero.

The files keep one recipe per line, so a changed time is a one-line diff:
linux-64 201 -> 72 KiB, win-64 141 -> 46 KiB.

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 23, 2026
@Tobias-Fischer
Tobias-Fischer merged commit 3000f79 into main Oct 23, 2026
8 checks passed
@Tobias-Fischer
Tobias-Fischer deleted the compact-build-timings branch October 23, 2026 20:46
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