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

Update conda channel order to sync with Bioconda #4409

Merged
merged 3 commits into from Aug 15, 2017

Conversation

Projects
None yet
4 participants
@nsoranzo
Copy link
Member

commented Aug 10, 2017

Also:

  • Remove _ensure_conda_context() function and make conda_context argument mandatory in functions/methods.
    This should help making sure the correct context (e.g. channels) is used for all Conda operations.
  • Remove unused is_target_available() function.
  • Override channel list on the command line instead of modifying condarc.
    The way we were modifying condarc in the ensure_channels_configured() method was broken because we were appending the missing channels at the end, so the final order may not be the one specified in conda_ensure_channels .
    Also not modifying the user condarc is a much better approach and overriding the channel list on the command line will make debugging easier.
@bgruening
Copy link
Member

left a comment

@nsoranzo thanks for doing this! It is somewhere on my todo list.

I think we also need to update planemo and galaxy-lib.
Do we want to leave this open until we have PRs for above mentioned PRs as well?

@nsoranzo

This comment has been minimized.

Copy link
Member Author

commented Aug 10, 2017

@bgruening Any idea why this integration test fails? https://jenkins.galaxyproject.org/job/docker-integration/1349/testReport/junit/integration.test_resolvers/CondaResolutionIntegrationTestCase/test_legacy_r_mapping/?auto_refresh=false

It seems it's mixing r-base from conda-forge with the broken readline-6.2-2 from the defaults channel instead of readline-6.2-0 from conda-forge.

@nsoranzo

This comment has been minimized.

Copy link
Member Author

commented Aug 10, 2017

xref. galaxyproject/planemo#715
I think that galaxy-lib will be updated when the changes from this galaxy repository are merged in it.

@bgruening

This comment has been minimized.

Copy link
Member

commented Aug 10, 2017

It looks like most of the packages are coming from default - this is wired. Most of them, if not all, should come from conda-forge.

@jmchilton

This comment has been minimized.

Copy link
Member

commented Aug 11, 2017

I'll take care of planemo and galaxy-lib after we merge this - but that test failure is scary. I think I pulled that example from an actual tool that needed the merge Conda installs.

@nsoranzo

This comment has been minimized.

Copy link
Member Author

commented Aug 11, 2017

@jmchilton Should we add a warning at Galaxy startup if the configured channel order is not the one in conda_ensure_channels ?

@nsoranzo

This comment has been minimized.

Copy link
Member Author

commented Aug 11, 2017

I think the issue is that the galaxy.tools.deps.conda_util.CondaContext.ensure_channels_configured() method appends the configured channels at the end, which by default is the defaults channel. So defaults remains the highest priority channel instead of being the lowest.

@nsoranzo

This comment has been minimized.

Copy link
Member Author

commented Aug 13, 2017

My plan to fix the problem here is to remove ensure_channels_configured(), load_condarc() and save_condarc() and instead override the channel list on the command line as in

search_cmd.append("--override-channels")
for channel in channels_override:
search_cmd.extend(["--channel", channel])

Please let me know if you have reservations.

@mvdbeek

This comment has been minimized.

Copy link
Member

commented Aug 13, 2017

I think that is the best approach @nsoranzo, no need to manipulate and conflict with users' .condarc

nsoranzo added some commits Aug 10, 2017

Remove _ensure_conda_context() function
and make conda_context argument mandatory in functions/methods.
This should help making sure the correct context (e.g. channels)
is used for all Conda operations.

Also remove unused is_target_available() function.
Override channel list on the command line instead of modifying condarc
The way we were modifying condarc in the ensure_channels_configured()
method was broken because we were appending the missing channels at the
end, so the final order may not be the one specified in
conda_ensure_channels .

Also:
- not modifying the user condarc is a much better approach
- overriding the channel list on the command line will make debugging
  easier

@nsoranzo nsoranzo force-pushed the nsoranzo:fix_conda_channel_order branch from c802cbe to cdbac05 Aug 14, 2017

@nsoranzo nsoranzo referenced this pull request Aug 14, 2017

Merged

Fix use of conda_context #716

@jmchilton jmchilton merged commit 44548f8 into galaxyproject:dev Aug 15, 2017

5 checks passed

api test Build finished. 281 tests run, 0 skipped, 0 failed.
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
framework test Build finished. 153 tests run, 0 skipped, 0 failed.
Details
integration test Build finished. 44 tests run, 0 skipped, 0 failed.
Details
toolshed test Build finished. 579 tests run, 0 skipped, 0 failed.
Details

@nsoranzo nsoranzo deleted the nsoranzo:fix_conda_channel_order branch Aug 15, 2017

jmchilton added a commit that referenced this pull request Oct 2, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.