Update conda channel order to sync with Bioconda#4409
Update conda channel order to sync with Bioconda#4409jmchilton merged 3 commits intogalaxyproject:devfrom
Conversation
|
@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 |
|
xref. galaxyproject/planemo#715 |
|
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. |
|
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. |
|
@jmchilton Should we add a warning at Galaxy startup if the configured channel order is not the one in |
|
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 |
|
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 galaxy/lib/galaxy/tools/deps/conda_util.py Lines 504 to 506 in 98292a0 Please let me know if you have reservations. |
|
I think that is the best approach @nsoranzo, no need to manipulate and conflict with users' |
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.
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
c802cbe to
cdbac05
Compare
Also:
_ensure_conda_context()function and makeconda_contextargument mandatory in functions/methods.This should help making sure the correct context (e.g. channels) is used for all Conda operations.
is_target_available()function.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 inconda_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.