fix: respect run dependencies on sibling outputs for build ordering - #2488
Open
esteve wants to merge 2 commits into
Open
fix: respect run dependencies on sibling outputs for build ordering#2488esteve wants to merge 2 commits into
esteve wants to merge 2 commits into
Conversation
1 task
esteve
force-pushed
the
fix/topological-sort-plain-run-deps
branch
from
May 11, 2026 08:13
0e8dbf4 to
c653513
Compare
esteve
added a commit
to esteve/robostack-ros-humble
that referenced
this pull request
May 12, 2026
…ev/rattler-build#2488 Signed-off-by: Esteve Fernandez <esteve.fernandez@bonsairobotics.ai>
pb01ka
reviewed
May 12, 2026
pb01ka
left a comment
Contributor
There was a problem hiding this comment.
Overall I found the fix correct and the tests also seem to be meaningful.
The main actionable item from my end is removing the Option<> wrapper from sibling_names since the other path is never executed as of today. Hence, it would make the contract clearer and removes a branch that can never execute.
Signed-off-by: Esteve Fernandez <esteve@apache.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR fixes a regression in the topological sort that was introduced during the v0.58.0 refactor. When multiple recipes are built together, the dependency graph used for ordering builds only considered
pin_subpackagereferences from run dependencies, but ignored plainrun:specs. This caused solver failures when a package needed a plain runtime dependency that hadn't been built yet.The fix
replaces extract_dependency_nameswithextract_dependency_names_with_sibling_context, which also collects plain run/run_constraints dependencies whose names match other outputs in the build set.This issue is causing ROS Humble to fail a full rebuild for the RoboStack project RoboStack/ros-humble#400 (
ros-humble-uncrustify-vendorwhich is a plain run dependency was scheduled to build after its consumerros-humble-ament-uncrustify), with this fix I was able to do a full rebuild of ROS Humble.I found this fix as part of an existing Claude session 780ce80, I don't know what's the policy regarding AI-generated contributions, so I kept the author (Claude) and removed the skip filtering test as it's not part of this fix, but part of 8f5cb03