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

conda wants to remove feature when adding new packages #5850

Open
msarahan opened this issue Aug 18, 2017 · 3 comments
Open

conda wants to remove feature when adding new packages #5850

msarahan opened this issue Aug 18, 2017 · 3 comments
Labels
source::community catch-all for issues filed by community members type::task indicates a change that doesn't pertain to the code itself, e.g. updating CI/CQ, rebuilding package
Milestone

Comments

@msarahan
Copy link
Contributor

@doutriaux1 commented on Fri Aug 18 2017

I'm installing the vtk-cdat pacakge and I want the mesalib feature
all is fine:

doutriaux1@crunchy:[vcs]:[clickMaps]:[16953]> conda install -c uvcdat/label/nightly -c conda-forge -c uvcdat vtk-cdat mesalib
Fetching package metadata ...............
Solving package specifications: .

Package plan for installation in environment /export/doutriaux1/miniconda2/envs/nightly-mesa:

The following packages will be UPDATED:

    vtk-cdat: 7.1.0.2.10.2017.08.07.09.35.1c03d1d03b1c12d99dd090ba4c5ca078e2d9612f-py27_mesalibh388f45a_0 uvcdat/label/nightly [mesalib] --> 7.1.0.2.12-py27_mesalibh6bab67e_0 uvcdat/label/nightly [mesalib]

Proceed ([y]/n)? y

vtk-cdat-7.1.0 100% |######################################################################################################################################| Time: 0:00:03   9.71 MB/s

Now I want to add the cdms2 package in that environment, cdms2 has nothing to do with vtk-cdat whatsoever

doutriaux1@crunchy:[vcs]:[clickMaps]:[16954]> conda install -c uvcdat/label/nightly -c conda-forge -c uvcdat cdms2
Fetching package metadata ...............
Solving package specifications: .

Package plan for installation in environment /export/doutriaux1/miniconda2/envs/nightly-mesa:

The following packages will be UPDATED:

    vtk-cdat: 7.1.0.2.12-py27_mesalibh6bab67e_0 uvcdat/label/nightly [mesalib] --> 7.1.0.2.12-py27hd6333ce_0 uvcdat/label/nightly

The following packages will be DOWNGRADED:

    mesalib:  17.1.4-3                          conda-forge          --> 7.6.1-2                   uvcdat              

Proceed ([y]/n)? n

Why does conda decide to drop the mesalib feature

Now the following will work:

doutriaux1@crunchy:[vcs]:[clickMaps]:[16955]> conda install -c uvcdat/label/nightly -c conda-forge -c uvcdat cdms2 mesalib
Fetching package metadata ...............
Solving package specifications: .

# All requested packages already installed.
# packages in environment at /export/doutriaux1/miniconda2/envs/nightly-mesa:
#
cdms2                     2.10.2017.07.05.13.14.297b09f867ec041b8bc8b4826fae7b8a3bc75884     np112py27_0    uvcdat/label/nightly
mesalib                   17.1.4                        3    conda-forge

@msarahan commented on Fri Aug 18 2017

This issue is a conda question, not a conda-build question. I'm moving this issue to the conda tracker. I'll answer it there.

@msarahan
Copy link
Contributor Author

This is how conda works. It's not something that conda-build controls. One of conda's optimization parameters is minimization of the number of features. If there is a way to achieve an environment that means dropping the feature, conda will do so. If you list both mesalib and cdms2, then conda has no choice to drop the feature.

Arguably, it's a bug that conda chooses to drop a feature that is installed by some earlier step. I think conda 4.4 will address this, as it keeps track of things that were manually installed vs. installed as dependencies.

@doutriaux1
Copy link

@msarahan thanks for reposting in the correct repo, apologies, too many tabs opened 😉
I agree nothing to do with conda-build.

I would still argue it's a bug I'm adding a package to an environment cdms2 does not have anything to do with VTK now adding cdms2 breaks my environment. I'm not sure it's appropriate here to drop the mesalib feature, I could see this happening if cdms2 was coming both with and without the feature.

My argument here is that if we distribute a "yml" of our software to users and they later add non related packages to it then this will break the user's original environment and most likely the user will come back to us complaining our software is "broken"

@kalefranz kalefranz added this to the 4.4.0 milestone Aug 18, 2017
@kalefranz kalefranz added source::community catch-all for issues filed by community members type:new-test labels Aug 18, 2017
@kalefranz
Copy link
Contributor

I think 4.4 should handle this appropriately, but it's a great scenario to make a test case out of.

@kalefranz kalefranz modified the milestones: 4.4.0, 4.4.1 Nov 27, 2017
@kalefranz kalefranz modified the milestones: 4.4.1, 4.4 Dec 21, 2017
@kenodegard kenodegard added type::task indicates a change that doesn't pertain to the code itself, e.g. updating CI/CQ, rebuilding package and removed type::new-test labels Jan 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
source::community catch-all for issues filed by community members type::task indicates a change that doesn't pertain to the code itself, e.g. updating CI/CQ, rebuilding package
Projects
None yet
Development

No branches or pull requests

4 participants