-
-
Notifications
You must be signed in to change notification settings - Fork 284
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
Consider removing vc* "features" #537
Comments
A thousand times yes! I fully support the removal of unnecessary features. Thanks for writing this up. |
Awesome, great to hear that! Thanks Mike and all! |
I'm in favor of this change and the plan to remove the First it would be best to split the requirements:
build:
- {{ compiler("cxx") }}
host:
- python
- cython
run:
- python Second, care needs to be taken so that the vc pinning is not to an exact version, |
Yes, as @jjhelmus mentions, recipes in the future just won't explicitly include vc at all. It's better to let the vs compiler activation package handle it with run_exports. Jonathan's advice for not pinning vc exactly holds in the interim, until we can convert all recipes to depending on the run_exports behavior. |
Thanks. I'm starting a doc with the cb3 move info. Things are scattered in many issues and it is hard to keep track. |
I'd be interested in reading that if there's a link? |
I have a few suggestions for your doc @ocefpaf, I've done some work on two common package build problems:
Before any mass-rebuild commences it would be really good to make sure these things are in place. |
Thanks @mingwandroid! |
The imminent change to
conda-build 3
could be good opportunity to removefrom the docs and packages and only rely on
vc version.*
dependencies. Thosevc
dependencies should then be implicitly added throughconda-build 3
's combination ofcompiler
jinja2 function plusrun_exports
from the new compiler packages. E.g., for some package that uses Cython with C++ extensions, replaceby
[EDIT: Split
build
/host
as per @jjhelmus's comment below.]It does not really make sense to have those
features
-- i.e., expressions of strong preference, but not requirements -- when one already gives hard dependencies on a versionedvc
package.To me, it feels like "features" have been used to express hard dependencies though this is not really one of their capabilities. But I can only speculate on this as the introduction of "features" to conda-forge predates my involvement in the Conda ecosystem. Looking for references in this repository, I found:
Looking at the wiki pages' commit dates, it looks like "features" were introduced to conda-forge a couple of months before the
vc
packages have been created. That would explain why "features" were introduced in the first place, instead of simple/reliable dependencies onvc VERSION.*
.As is, a
vcVERSION
"feature" on a package that also depends onvc VERSION.*
is redundant and additionally causes bad user experience due to differences/inconsistencies inconda
's solver regarding the prioritization of channels/versions and "features" [EDIT] regarding explicitly and implicitly requested packages [/EDIT].(cc @jakirkham, @ocefpaf, @msarahan, @mingwandroid, @mcg1969)
The text was updated successfully, but these errors were encountered: