-
Notifications
You must be signed in to change notification settings - Fork 444
Transitive constraints are not properly considered in multiple output recipes #3308
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
Comments
Likely related, sub-package variants are not expanded in sub-packages which have dependencies on the first sub-package. package:
name: bar_split
version: 1.0.0
outputs:
- name: libbar
requirements:
host:
- hdf5
- name: bar
requirements:
host:
- python
- {{ pin_subpackage('libbar', exact=True) }}
Note that a single |
Hey, I'm facing the same issue. Is there any update on this? This is the reproducer I have:
While building But if I split into 2 different recipes like this:
|
We discussed this earlier in the meeting today. One suggestion was adding the shared dependency explicitly in both cases (as opposed to leaving it implicit). So tried this change to Jonathan's recipe in the OP: diff --git a/meta.yaml b/meta.yaml
index 1dfd597..1fd17bc 100644
--- a/meta.yaml
+++ b/meta.yaml
@@ -12,4 +12,5 @@ outputs:
requirements:
host:
- python
+ - openssl
- {{ pin_subpackage('libfoo', exact=True) }} This seem to build for me. Though dropping Also here's the result of
Maybe this provides more insight as well ideas for workarounds in the interim 🙂 |
It will work if you add this general host to the recipe https://github.com/AnacondaRecipes/modin-feedstock/blob/a9e3362d08c4cdc0601f8d31fd32dd7c3cdfe4d8/recipe/meta.yaml#L14-L19 |
Good to know there is a workaround. Though does it still seem fair to say this isn't working as expected? |
Yeah, it's not working as expected on the build CI systems but not locally. I'm not sure if it is related to the specific platforms because I can build on my osx-arm64. |
Hi there, thank you for your contribution! This issue has been automatically marked as stale because it has not had recent activity. It will be closed automatically if no further activity occurs. If you would like this issue to remain open please:
NOTE: If this issue was closed prematurely, please leave a comment. Thanks! |
Transitive package constraints from a sub-package do not appear to be considered when rendering recipes with multiple outputs. This can result in an unnecessary UnsatisfiableError during the build.
For example for a recipe with two outputs:
Attempting to pin
openssl
to anything but the latest version will result infoo
failing to build. For example with the following CBC.yaml file:The recipe renders as:
Notice that in the second recipe openssl 1.1.1a is in the host section which will conflict with openssl constraint introduced by libfoo 1.0.0 via a run_export.
Building the recipe fails when solving an environment for the build of
foo
:The text was updated successfully, but these errors were encountered: