This is a small little web application to behave like a conda channel but with user-specified constraints.
By doing this you can add a small conda channel that has a limited number of packages.
There is a hosted version of metachannel provided at https://metachannel.conda-forge.org
This is a channel that contains pandas, ipython and scikit-learn (and all of their dependencies), and nothing else.
Recommended usage with conda-forge
Presently metachannel is best used when creating new environments. For example
conda create --override-channels \ -c https://metachannel.conda-forge.org/defaults,conda-forge/pandas \ 'pandas>=0.24'
This will function similarly to
strict channel priority in conda, except it will fuse the
channels remotely and constrain the list of packages to be those that pandas requires to
Adding this to the constraint clause will filter out outdated builds from the graph. This is typically what most users actually want to run.
$ conda search --override-channels \ -c https://metachannel.conda-forge.org/conda-forge/python \ 'python=3.6.1' python 3.6.1 0 conda-forge/python python 3.6.1 1 conda-forge/python python 3.6.1 2 conda-forge/python python 3.6.1 3 conda-forge/python $ conda search --override-channels \ -c http://<HOSTNAME>/conda-forge/python,--max-build-no 'python=3.6.1' python 3.6.1 3 conda-forge/python,--max-build-no
You can fuse two or more channels together.
This will function like a composite of these two channels. Packages that exist in channel
supercede those in channel
A for ALL versions (just like strict channel priority).
Channels that contain non-urlsafe characters need to be url-escaped
$ conda search --override-channels -c https://metachannel.conda-forge.org/conda-forge,conda-forge%2Flabel%2Fgcc7/--max-build-no 'pandas' pandas 0.23.4 py27h1702cab_1000 conda-forge,conda-forge%2Flabel%2Fgcc7/--max-build-no pandas 0.23.4 py36h1702cab_1000 conda-forge,conda-forge%2Flabel%2Fgcc7/--max-build-no pandas 0.23.4 py37h1702cab_1000 conda-forge,conda-forge%2Flabel%2Fgcc7/--max-build-no
conda-metachannel has the ability to apply package blacklists. These need to be present as
$ conda search --override-channels -c https://metachannel.conda-forge.org/conda-forge/--blacklist=abi python
The default blacklist that ships with conda-metachannel is one that removes all potential abi incompatible packages resulting from the compiler switchover from conda-forge.