Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix multi-output dependency detection #28276

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

minrk
Copy link
Member

@minrk minrk commented Nov 19, 2024

collapse_subpackage_nodes only handled outgoing dependencies (not incoming) before deleting nodes so some edges were lost.

by updating edges for both directions, relationships between recipes should be preserved.

for example with the graph:

[recipe-A, recipe-B, output-A, output-B]
output-A -> output-B

it updates to:

[recipe-A, recipe-B, output-A]
output-A -> recipe-B

then deletes the output-A node, implicitly deleting the only edge along with it, losing the relationship between the recipes. This PR updates both sides of the subpackage edges to point to the recipe before deleting a node for a subpackage.

seen in #28225 where two multi-output packages are added with one dependency between them. If the top-level recipe name doesn't match an output, the packages are built in the wrong order because the subpackage node is deleted. This patch fixes the build order in that PR.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR () and found it was in an excellent condition.

collapse_subpackage_nodes only handled outgoing dependencies (not incoming) before deleting nodes
so some edges were lost

by updating edges for both directions, all relationships are preserved
Copy link

Hi! This is the staged-recipes linter and I found some lint.

It looks like some changes were made outside the recipes/ directory. To ensure everything runs smoothly, please make sure that recipes are only added to the recipes/ directory and no other files are changed.

If these changes are intentional (and you aren't submitting a recipe), please add a maintenance label to the PR.

File-specific lints and/or hints:

  • .ci_support/compute_build_graph.py:
    • lints:
      • Do not edit files outside of the recipes/ directory.

Copy link

Hi! This is the staged-recipes linter and your PR looks excellent! 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

2 participants