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

Package enviornment pulling in old dependencies #10862

Open
rob-p opened this issue Sep 7, 2018 · 4 comments
Open

Package enviornment pulling in old dependencies #10862

rob-p opened this issue Sep 7, 2018 · 4 comments

Comments

@rob-p
Copy link
Contributor

rob-p commented Sep 7, 2018

I had a user report this in the salmon repository, but it seems more related to bioconda and the current packaging. I don't know what might cause this, so any suggests are welcome! The original report is copied below (and due to @bounlu, who I am tagging here):


ok, this is not really a bug but I think it needs attention.

i am using anaconda environment for many tools and keep it updated as much as possible with the conda update --all command. but the bottleneck is salmon, which has very old dependencies, and it's a dilemma either to update salmon from 0.8.1 (pretty old buggy version) to the latest one (0.11.3) and downgrade a bunch of other important packages, or vice versa.

Describe the bug
a bug is a species of animal kingdom, a small insect (just kidding)

To Reproduce
Steps and data to reproduce the behavior:

$ conda update salmon
Solving environment: done

## Package Plan ##

  environment location: /home/software/anaconda2

  added / updated specs: 
    - salmon


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    salmon-0.11.3              |       h86b0361_2         2.9 MB  bioconda
    blas-1.0                   |              mkl           6 KB
    numpy-1.14.3               |   py27h28100ab_1          41 KB
    ------------------------------------------------------------
                                           Total:         3.0 MB

The following packages will be UPDATED:

    jemalloc:     4.5.0-0                               bioconda    --> 5.1.0-hfc679d8_0      conda-forge
    libgcc-ng:    7.2.0-hdf63c60_3                      conda-forge --> 8.2.0-hdf63c60_1                 
    libstdcxx-ng: 7.2.0-hdf63c60_3                      conda-forge --> 8.2.0-hdf63c60_1                 
    salmon:       0.8.1-0                               bioconda    --> 0.11.3-h86b0361_2     bioconda   

The following packages will be DOWNGRADED:

    blas:         1.1-openblas                          conda-forge --> 1.0-mkl                          
    fastqc:       0.11.7-5                              bioconda    --> 0.11.6-2              bioconda   
    gsl:          2.4-blas_openblash47a8a8e_1           conda-forge [blas_openblas] --> 2.1-2                 conda-forge
    numpy:        1.15.1-py27_blas_openblashd3ea46f_1   conda-forge [blas_openblas] --> 1.14.3-py27h28100ab_1            
    openjdk:      8.0.144-zulu8.23.0.3_2                conda-forge --> 8.0.121-1                        
    scikit-learn: 0.19.2-py27_blas_openblasha84fab4_201 conda-forge [blas_openblas] --> 0.19.1-py27hedc7406_0            
    scipy:        1.1.0-py27_blas_openblash7943236_201  conda-forge [blas_openblas] --> 1.1.0-py27hd20e5f9_0

Expected behavior
salmon should be updated to the latest version without the requirement of downgrading of its dependencies.

Linux nscc04 2.6.32-696.30.1.el6.x86_64 #1 SMP Fri May 18 11:50:44 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux

@bgruening
Copy link
Member

This looks for me like the update is preferring defaults or conda-forge. Can you make sure that conda-forge has priority?

@PertuyF
Copy link
Contributor

PertuyF commented Sep 7, 2018

Just to mention, I saw a similar behaviour a few times. I my case it was always related to the command updating numpy, and preferring mkl feature over openblas. Despite my .condarc specifying:

channel_priority: True
channels:
  - bioconda
  - conda-forge
  - defaults

Most of the time I got it solved using something like conda install <package> blas=*==openblas instead of conda update <package> as a workaround. But of course finding where it comes from would be better.

@rob-p
Copy link
Contributor Author

rob-p commented Sep 8, 2018

Tagging @bounlu to see if trying any of this helps in his case.

@PertuyF
Copy link
Contributor

PertuyF commented Sep 11, 2018

Looks like it could be related to features (see discussion here about similar issue with openjdk).
If you specify pinned_packages in a .condarc you will be able to avoid switching from bioconda/conda-forge to defaults.

For instance, referring to my last example, the following file allows to restrict blas to conda-forge channel, thus enforcing numpy to use the feature openblas from this channel.

pinned_packages:
  - conda-forge::blas

Could it be a solution with minor side-effects?

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

No branches or pull requests

3 participants