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

Change Conda channel order #3237

Merged
merged 6 commits into from
Dec 12, 2016
Merged

Change Conda channel order #3237

merged 6 commits into from
Dec 12, 2016

Conversation

bgruening
Copy link
Member

After some discussions with conda-forge we agreed on this channel order for now. The r channel will go away at some point as we will try to get all packages from r into conda-forge.

I think this PR needs to be backported.

@lecorguille
Copy link
Member

👍

@galaxybot galaxybot added this to the 17.01 milestone Dec 1, 2016
@@ -203,7 +203,8 @@ paste.app_factory = galaxy.web.buildapp:app_factory
# Pass debug flag to conda commands.
#conda_debug = False
# conda channels to enable by default (http://conda.pydata.org/docs/custom-channels.html)
#conda_ensure_channels = conda-forge,r,bioconda,iuc
# the recommended channel order is the one from BioConda (https://github.com/bioconda/bioconda-recipes/blob/master/config.yml#L8)
#conda_ensure_channels = bioconda,r,defaults,conda-forge,iuc
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't iuc channel supposed to be used (also) to fix problems with packages in other channels? If we put it last, it's not very useful. It should probably be first, no?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This really depends on what we want to use this channel for. My Intension was to put in old recipes, that are outdated and we don't want to have in bioconda, or some ugly hacks (but for new recipes). Not replacing/overwriting recipes from other channels.

Up for discussion I suppose.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If iuc is only for old recipes, its position shouldn't matter, but if we are ever going to need to use it for some "ugly hack" it needs to be first.

Has any one else opinions here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am +1 on having a channel we directly control as the first entry here. Can we create a new one for this purposes?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand the desire to have like an IUC override channel for hacks. I don't think we need it yet though and it probably shouldn't hold up this PR. Can we create a low priority issue for that and continue with this correction?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@martenson Do you mean an additional one? I think one "Galaxy" channel should be enough and iuc is mostly unused.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jmchilton @bgruening I don't think there is a rush to merge this or the need to backport it since channel order in Conda 3.19.3 matters only if 2 packages have the same version and build numbers. This changed in Conda 4.1.0, see http://conda.pydata.org/docs/channels.html

Copy link
Member

@martenson martenson Dec 6, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nsoranzo Does putting iuc first have any unwanted effects?
@jmchilton this targets 17.01 - no rush, right?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@martenson iuc channel seems to have 3 packages, all in a version different from what's available in bioconda.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I honestly don't know. You guys decide.

@martenson
Copy link
Member

👍

@nsoranzo nsoranzo merged commit ad8d48c into dev Dec 12, 2016
@@ -31,7 +31,7 @@

DEFAULT_BASE_PATH_DIRECTORY = "_conda"
DEFAULT_CONDARC_OVERRIDE = "_condarc"
DEFAULT_ENSURE_CHANNELS = "conda-forge,r,bioconda,iuc"
DEFAULT_ENSURE_CHANNELS = "iuc,bioconda,r,defaults,conda-forge"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for being late to the game, but is it possible that this list should be reversed?
It appears that currently conda-forge takes the lowest priority.
Admittedly this is a bit confusing, but it appears that galaxyproject/tools-devteam#375 fails because bioconda takes the highest priority, while conda-forge should be highest. This also explains passing tests in bioconda but failing when we try to use them in galaxy.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to stick to the bioconda channel order and this was changed to give bioconda the opportunity to overwrite conda-forge. I don't agree with this move but it was decided this way and I think Galaxy should follow it. https://github.com/bioconda/bioconda-recipes/blob/master/config.yml#L11

Copy link
Member

@mvdbeek mvdbeek Jan 3, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to stick to the bioconda channel order

absolutely. but I don't think we do, given that for example for perl-gd the import tests pass (because the dependencies are pulled in from conda-forge, I presume). I don't completely understand the details yet, but to me it looks like galaxy is not respecting the channel order. Changing the order in planemo with --conda_channels has no effect whatsoever.

Copy link
Member

@mvdbeek mvdbeek Jan 3, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's possible that there are two issues:

  • For whatever reason the bioconda build system doesn't do what it's supposed to (either false positive test on the import test, or it does actually have conda-forge at a higher priority ... difficult to tell with the limited test output)
  • We're unable to change channel priority with planemo conda_install --conda_channels ...
    So I guess @nsoranzo is right to pin perl-gd to a higher libgd build number

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've noticed similar issues in my development environment when changing the channel order to pull in recipes I'm developing and uploading here https://anaconda.org/gregvonkuster/, but not related to planemo or galaxy.

The issue I've encountered is that if a package/version is is available in one of "iuc,bioconda,r,defaults,condo-forge", and I add an altered recipe for the package using the same version to my anaconda channel and update my channels to be "gregvonkuster,iuc,bioconda,r,defaults,condo-forge", the altered recipe is not pulled from my channel. Instead, the package is pulled from its original channel using the unchanged recipe.

This is all done from the command line without using planemo or galaxy. It seems that conda somehow is not accounting for my channel order.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When adding channels using conda config --add they should be added in reverse (from low to high priority). How are you adding these channels @gregvonkuster?
@mvdbeek do you have updated your bioconda-utils installation, is everything up to date?

Copy link
Member

@mvdbeek mvdbeek Jan 3, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't used bioconda utils for this ... everything is done by travis, so that's whatever travis is using.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that the condarc is hard code in Planemo and even if you specify all the channel to change the order, Planemo just add those that are missing

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm running on Linux and using .condarc. I'm still running miniconda2, version 4.2.13. I have not tried the conda config --add channels approach, so I'll try it and see if it makes a difference. Thanks!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Edit: it's within Galaxy

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

Successfully merging this pull request may close these issues.

8 participants