-
-
Notifications
You must be signed in to change notification settings - Fork 35
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
Rebuild 5.x for new compiler infrastructure #40
Conversation
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 ( |
aeec972
to
9f6336b
Compare
Hum, it seems that the |
You'll have to do something like conda-forge/llvmdev-feedstock@c6a6904#diff-8926f6e7808be490ec92ac38016ab868 |
9f6336b
to
33c7245
Compare
I think the remaining question is how exactly to compose the build string:
|
f6e414b
to
fa8b0c0
Compare
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 ( |
cc @msarahan the last commit implement the variant selection for
|
Seems right. I hope it works. Let me know if it does not.
…On Mon, Oct 29, 2018, 10:07 Sylvain Corlay ***@***.***> wrote:
cc @msarahan <https://github.com/msarahan> the last commit implement the
variant selection for clangdev.
-
The clangdev recipe has a new outputs section with a clang_variant
mutex package.
Non-default version of clang_variant track the non_default_clang
feature (which does not really exist and used to weigh down non-default
variants of the package, allowing the default variant to take precedence
unless required explicitly).
outputs:
# Mutex package to keep only one variant of clangdev in a given environment.
#
# Non-default variants track the "non_default_clang" feature.
# This is used to weigh down non-default variants of the package, allowing
# the default variant to take precedence unless required explicitly.
- name: clang_variant
version: 1.0
build:
string: {{ clang_variant }}{% if clang_variant != "default" %}
track_features:
- non_default_clang{% endif %}
-
The clangdev recipe does not have a specific build string.
-
It has a runtime dependency on clang_variant * {{ clang_variant }}.
-
cling will select the variant by having a host dependency section
including
- clangdev
- clang_variant * {{ cling }}
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#40 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AACV-b6Ncua4jtc_9N62xMwFc6wvfMOwks5upwuYgaJpZM4X8n42>
.
|
Thanks, does not seem to work quite yet. Maybe I need to add an entry to
|
bd20388
to
0c44bc4
Compare
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 ( I do have some suggestions for making it better though... For recipe:
|
0c44bc4
to
8df9562
Compare
477907f
to
afbb547
Compare
afbb547
to
954f25a
Compare
96b0862
to
f8831eb
Compare
@isuruf this seems to work well. It is the first time I make use of subpackages and mutex packages. I know that you are interested in cling for the symengine demos, and this is the last PR to merge before we tackle build per se. |
string: {{ clang_variant }} | ||
{% if clang_variant != "default" %} | ||
track_features: | ||
- non_default_clang |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be possible to not use track_features
here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In fact there is no such feature, and no package has a features
section.
This was suggested by @msarahan on gitter. The track_features
statement is just meant to weigh down the cling variant so that it is not installed by default.
This is used e.g. in the default channel for the selection of openblas vs mkl:
https://github.com/AnacondaRecipes/openblas-feedstock/blob/master/recipe/meta.yaml#L136
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, this "unmatched" track_features
approach is now our best approach for specifying a variant preference. Because it doesn't have an accompanying features
it avoids the messiness.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How do you anticipate selecting the non-default variant? By pinning clang_variant=*=cling
? My recommendation is to create a metapackage that depends on clang_variant=*=cling
that users can install. That's a cleaner user experience than pinning, in my view.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking of cling itself doing clang_variant=*=cling
in its runtime dependencies. I can't think of a situation where we would want this variant and not cling.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, this "unmatched" track_features approach is now our best approach for specifying a variant preference. Because it doesn't have an accompanying features it avoids the messiness.
Since features are meant to disappear, it could be interesting to replace the unmatched track_features
approach with some other functionally equivalent low_precedence: true
thingy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...or better yet precedence: <some number>
😉
Would you have time to look this one over, @mcg1969? This is a new attempt at handling selection between two |
@@ -1,8 +1,7 @@ | |||
{% set version = "5.0.0" %} | |||
{% set sha256 = "019f23c2192df793ac746595e94a403908749f8e0c484b403476d2611dd20970" %} | |||
|
|||
{% set clang_variant = os.environ.get('CLANG_VARIANT', 'default') %} | |||
{% set build_number = "0" %} | |||
{% set build_number = "1000" %} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm surprised this is still happening. What benefit does it still offer?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The build_number = "1000"
statement is for the new compilers rebuild of conda-forge.
Unlike clang 6.x and 7.x, this makes two variants for the clangdev package:
however, this should not use build features at all, and the "cling" flavor should be selected through the build string.