anaconda / anaconda-project

Tool for encapsulating, running, and reproducing data science projects
https://anaconda-project.readthedocs.io/en/latest/
Other
219 stars 88 forks source link

rework the platform hack for modern conda #274

Closed mcg1969 closed 2 years ago

mcg1969 commented 4 years ago

We can greatly simplify the approach used to compute conda solves for other platforms. For quite a long time, conda has supported the CONDA_SUBDIR environment variable to specify the platform for which to do a solve.

mcg1969 commented 4 years ago

Drat, need to fix the msys2 issues

AlbertDeFusco commented 2 years ago

Ah, ha! I figured out how to get this to work. The CONDA_CHANNELS env var acts like -c on the CLI to provide additional channels. I'll put this in a new PR along with a fix to streaming_popen to support setting env vars without modifying os.environ globally.

> cat ~/.condarc
channels:
  - defaults

> conda search tranquilizer
Loading channels: done
# Name                       Version           Build  Channel             
tranquilizer                   0.5.0            py_0  pkgs/main           
tranquilizer                   0.5.0    pyhd3eb1b0_0  pkgs/main

> conda search -c conda-forge tranquilizer
Loading channels: done
# Name                       Version           Build  Channel             
tranquilizer                   0.3.0            py_0  conda-forge         
tranquilizer                   0.3.1            py_0  conda-forge         
tranquilizer                   0.3.1            py_1  conda-forge         
tranquilizer                   0.3.2            py_0  conda-forge         
tranquilizer                   0.3.3            py_1  conda-forge         
tranquilizer                   0.4.0            py_0  conda-forge         
tranquilizer                   0.4.1            py_0  conda-forge         
tranquilizer                   0.4.2            py_0  conda-forge         
tranquilizer                   0.5.0            py_0  conda-forge         
tranquilizer                   0.5.0            py_0  pkgs/main           
tranquilizer                   0.5.0    pyhd3eb1b0_0  pkgs/main           
tranquilizer                   0.6.0    pyhd8ed1ab_0  conda-forge         
tranquilizer                   0.7.0    pyhd8ed1ab_0  conda-forge 

> CONDA_CHANNELS='defusco' conda search -c conda-forge tranquilizer
Loading channels: done
# Name                       Version           Build  Channel             
tranquilizer                   0.3.0            py_0  conda-forge         
tranquilizer                   0.3.1            py_0  conda-forge         
tranquilizer                   0.3.1            py_1  conda-forge         
tranquilizer                   0.3.2            py_0  conda-forge         
tranquilizer                   0.3.3            py_1  conda-forge         
tranquilizer                   0.4.0            py_0  conda-forge         
tranquilizer                   0.4.1            py_0  conda-forge         
tranquilizer                   0.4.2            py_0  conda-forge         
tranquilizer                   0.5.0            py_0  conda-forge         
tranquilizer                   0.5.0            py_0  pkgs/main           
tranquilizer                   0.5.0    pyhd3eb1b0_0  pkgs/main           
tranquilizer                   0.6.0    pyhd8ed1ab_0  conda-forge         
tranquilizer         0.6.0+10.gc568a61.dirty    pyh39e3cac_0  defusco             
tranquilizer                   0.7.0    pyhd8ed1ab_0  conda-forge
AlbertDeFusco commented 2 years ago

This has been implemented by #352