You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The user created an environment with mamba create -n my_env conda-forge::xz python. As a result, most packages come from defaults, but xz comes from conda-forge.
In a future step, the user installs something else on my_env, without specifying conda-forge as a channel; e.g. conda install pytest
In this situation, libmamba will print a red error message to stderr:
libmamba Selected channel specific (or force-reinstall) job, but package is not available from channel. Solve job will fail.
The message is accurate, because xz might have an update on conda-forge but we can't tell because the user didn't include conda-forge in the channel list. Interestingly, this doesn't lead to an actual error. It's more of a (too loud?) warning.
The question is more along of the lines of: should we actually do this? conda/conda source does mention this in the comments, raising concerns about expired tokens or auth. If we do it, is it going to imply too much of an overhead? Is it really necessary?
The other question is whether the libmamba error message below should be downgraded to a warning instead, to cause less alarming feedback from users.
Looks like the current behavior is that the channel is not reloaded (leading to update/install not fetching this data), and there is no warning about it.
Installing new packages seems to work if there is no conflict with the existing one.
Updates do not fetch more recent data from that channel leading to a potential noop.
Not sure what should be the desired behavior, probably reloading that channel, and including it in the solv data. Atlernatively we should write some message (maybe not through the log).
Let's say we have the following situation:
channels: [defaults]
mamba create -n my_env conda-forge::xz python
. As a result, most packages come fromdefaults
, butxz
comes from conda-forge.my_env
, without specifyingconda-forge
as a channel; e.g.conda install pytest
In this situation, libmamba will print a red error message to stderr:
The message is accurate, because
xz
might have an update onconda-forge
but we can't tell because the user didn't includeconda-forge
in the channel list. Interestingly, this doesn't lead to an actual error. It's more of a (too loud?) warning.We can avoid this message by making sure that the channels returned by
PrefixData
are also included in the repodata download list. See PR forconda-libmamba-solver
here as a potential implementation idea formamba
.The question is more along of the lines of: should we actually do this?
conda/conda
source does mention this in the comments, raising concerns about expired tokens or auth. If we do it, is it going to imply too much of an overhead? Is it really necessary?The other question is whether the libmamba error message below should be downgraded to a warning instead, to cause less alarming feedback from users.
mamba/libmamba/src/core/solver.cpp
Lines 117 to 118 in 32e47ae
Thanks!
The text was updated successfully, but these errors were encountered: