Giter VIP home page Giter VIP logo

mamba's Introduction

mamba header image

The Fast Cross-Platform Package Manager

part of mamba-org
Package Manager mamba Package Server quetz Package Builder boa

mamba

Build Status Join the Gitter Chat docs

mamba is a reimplementation of the conda package manager in C++.

  • parallel downloading of repository data and package files using multi-threading
  • libsolv for much faster dependency solving, a state of the art library used in the RPM package manager of Red Hat, Fedora and OpenSUSE
  • core parts of mamba are implemented in C++ for maximum efficiency

At the same time, mamba utilizes the same command line parser, package installation and deinstallation code and transaction verification routines as conda to stay as compatible as possible.

Mamba is part of a bigger ecosystem to make scientific packaging more sustainable. You can read our announcement blog post. The ecosystem also consists of quetz, an open source conda package server and boa, a fast conda package builder.

Installation

Please refer to the mamba and micromamba installation guide in the documentation.

Additional features in Mamba and Micromamba

mamba and micromamba come with features on top of stock conda.

repoquery

To efficiently query repositories and query package dependencies you can use mamba repoquery or micromamba repoquery. See the repoquery documentation for details.

Installing lock files

micromamba can be used to install lock files generated by conda-lock without having to install conda-lock. Simply invoke e.g. micromamba create -n my-env -f conda-lock.yml with an environment lockfile named *-lock.yml or *-lock.yaml.

setup-micromamba (setup-miniconda replacement)

setup-micromamba is a replacement for setup-miniconda that uses micromamba. It can significantly reduce your CI setup time by:

  • Using micromamba, which takes around 1 s to install.
  • Caching package downloads.
  • Caching entire conda environments.

micromamba

micromamba is a small, pure-C++ reimplementation of mamba/conda. It strives to be a full replacement for mamba and conda. As such, it doesn't use any conda code (in fact it doesn't require Python at all).

See the documentation on micromamba for details.

Development installation

Please refer to the instructions given by the official documentation.

Support us

For questions, you can also join us on the QuantStack Chat or on the Conda channel (note that this project is not officially affiliated with conda or Anaconda Inc.).

License

We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.

This software is licensed under the BSD-3-Clause license. See the LICENSE file for details.


Biweekly Dev Meeting

We have videoconference meetings every two weeks where we discuss what we have been working on and get feedback from one another.

Anyone is welcome to attend, if they would like to discuss a topic or just listen in.

mamba's People

Contributors

adament avatar adrianfreundqc avatar adriendelsalle avatar afranchuk avatar antoineprv avatar ashwinvis avatar baszalmstra avatar chrisburr avatar crogoz avatar davidbrochart avatar dhirschfeld avatar hind-m avatar isuruf avatar jaimergp avatar johanmabille avatar johnhany97 avatar jonashaag avatar jvansanten avatar klaim avatar madhur-tandon avatar maresb avatar marimeireles avatar mariusvniekerk avatar martinrenou avatar pavelzw avatar sylvaincorlay avatar timostrunk avatar wenjuno avatar wolfv avatar xhochy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mamba's Issues

Python version change

I don't have a reproducer where python version was upgraded, but here's an example

conda create -p /home/isuru/miniconda3/envs/py37 python=3.7
conda install opbeat -p /home/isuru/miniconda3/envs/py37 # this errors because opbeat need py<37
mamba install opbeat -p /home/isuru/miniconda3/envs/py37 # Downgrades python to 3.6

Correctly clean package / libsolv cache from time to time

Hello,
first, thank for this package, it's way faster than conda and has saved me a lot of time.

The problem that I've found is that, when you want to install a specific version of a package, let's say
mamba install goatools=0.9.9, it fails to find it so isn't able to install it:

Encountered problems while solving.
Problem: nothing provides requested goatools 0.9.9.*

Notice that I'm not using globs in my search. I've found this with multiple packages and most of the time, maybe all of them, is when i want to install the latest version of a package. Of course the package is available in the conda repositories and when I try to do a mamba install package-name, without specifying the version, sometimes it doesn't install the latest one, so I specify the version, that's the reason I've had this specific problem multiple times. I understand that a package cannot be installed because of the requirements, but in these cases, mamba is saying that the package isn't available.

Creating an environment with geo stack problem with python 3.7

Gave mamba a test drive for installing an environment with the geospatial stack (with mamba-0.0.2 just installed). The following command works:

mamba create -n mamba-geo-test python geopandas cartopy ipython

but, it proposes to create an environment with python 3.6, while I expected it to use the latest python 3.7.

If I try to specify that explicitly:

mamba create -n mamba-geo-test python=3.7.* geopandas cartopy ipython

I get an error (for some reason, it tries to install geopandas-0.1.1.0-py27_0). Full output:

$ mamba create -n mamba-geo-test python=3.7.* geopandas cartopy ipython

                  __    __    __    __
                 /  \  /  \  /  \  /  \
                /    \/    \/    \/    \
โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ/  /โ–ˆโ–ˆ/  /โ–ˆโ–ˆ/  /โ–ˆโ–ˆ/  /โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
              /  / \   / \   / \   / \  \____
             /  /   \_/   \_/   \_/   \    o \__,
            / _/                       \_____/  `
            |/
        โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— 
        โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—
        โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘
        โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘
        โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘
        โ•šโ•โ•     โ•šโ•โ•โ•šโ•โ•  โ•šโ•โ•โ•šโ•โ•     โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•  โ•šโ•โ•
                          
        Supported by @QuantStack
    
        Github:  https://github.com/QuantStack/mamba
        Twitter: https://twitter.com/QuantStack

โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ

Getting  https://conda.anaconda.org/conda-forge/linux-64
Getting  https://conda.anaconda.org/conda-forge/noarch
Getting  https://repo.anaconda.com/pkgs/main/linux-64
Getting  https://repo.anaconda.com/pkgs/main/noarch
Getting  https://repo.anaconda.com/pkgs/free/linux-64
Getting  https://repo.anaconda.com/pkgs/free/noarch
Getting  https://repo.anaconda.com/pkgs/r/linux-64
Getting  https://repo.anaconda.com/pkgs/r/noarch


Looking for: ['python 3.7.*', 'geopandas', 'cartopy', 'ipython']


Parsing /home/joris/miniconda3/pkgs/cache/497deca9.json
60778 packages in https://conda.anaconda.org/conda-forge/linux-64
Parsing /home/joris/miniconda3/pkgs/cache/09cdf8bf.json
8956 packages in https://conda.anaconda.org/conda-forge/noarch
Parsing /home/joris/miniconda3/pkgs/cache/47929eba.json
12722 packages in https://repo.anaconda.com/pkgs/main/linux-64
Parsing /home/joris/miniconda3/pkgs/cache/3e39a7aa.json
468 packages in https://repo.anaconda.com/pkgs/main/noarch
Parsing /home/joris/miniconda3/pkgs/cache/98cb6fa3.json
13329 packages in https://repo.anaconda.com/pkgs/free/linux-64
Parsing /home/joris/miniconda3/pkgs/cache/d77296e0.json
29 packages in https://repo.anaconda.com/pkgs/free/noarch
Parsing /home/joris/miniconda3/pkgs/cache/2ce54b42.json
5057 packages in https://repo.anaconda.com/pkgs/r/linux-64
Parsing /home/joris/miniconda3/pkgs/cache/4ea078d6.json
1 packages in https://repo.anaconda.com/pkgs/r/noarch
Allowing downgrade: 1
Creating the solver...
Job: (python >= 3.7 with python < 3.8)
Job: geopandas
Job: cartopy
Job: ipython

Encountered 1 problems.

Problem: nothing provides (gdal >= 1.11.4.0 with gdal < 1.11.4.9999) needed by geopandas-0.1.1.0-py27_0.<NULL>

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/home/joris/miniconda3/lib/python3.7/site-packages/conda/exceptions.py", line 1002, in __call__
        return func(*args, **kwargs)
      File "/home/joris/miniconda3/lib/python3.7/site-packages/mamba/mamba.py", line 250, in _wrapped_main
        exit_code = do_call(args, p)
      File "/home/joris/miniconda3/lib/python3.7/site-packages/mamba/mamba.py", line 231, in do_call
        exit_code = create(args, parser)
      File "/home/joris/miniconda3/lib/python3.7/site-packages/mamba/mamba.py", line 207, in create
        install(args, parser, 'create')
      File "/home/joris/miniconda3/lib/python3.7/site-packages/mamba/mamba.py", line 152, in install
        to_link, to_unlink = api.solve(channel_json, installed_json_f.name, specs, strict_priority)
    RuntimeError: Encountered problems while solving.

`$ /home/joris/miniconda3/bin/mamba create -n mamba-geo-test python=3.7.* geopandas cartopy ipython`

  environment variables:
                 CIO_TEST=<not set>
        CONDA_DEFAULT_ENV=base
                CONDA_EXE=/home/joris/miniconda3/bin/conda
             CONDA_PREFIX=/home/joris/miniconda3
    CONDA_PROMPT_MODIFIER=(base)
         CONDA_PYTHON_EXE=/home/joris/miniconda3/bin/python
               CONDA_ROOT=/home/joris/miniconda3
              CONDA_SHLVL=1
            DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
           MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
                  MANPATH=/opt/OpenPrinting-Gutenprint/man:/opt/OpenPrinting-
                          Gutenprint/man:/usr/local/man:/usr/local/share/man:/usr/share/man
                     PATH=/home/joris/miniconda3/bin:/home/joris/miniconda3/condabin:/opt/OpenPr
                          inting-Gutenprint/sbin:/opt/OpenPrinting-Gutenprint/bin:/usr/local/sbi
                          n:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/g
                          ames:/snap/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>
            XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
         XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0

     active environment : base
    active env location : /home/joris/miniconda3
            shell level : 1
       user config file : /home/joris/.condarc
 populated config files : /home/joris/miniconda3/.condarc
                          /home/joris/.condarc
          conda version : 4.6.8
    conda-build version : 3.17.8
         python version : 3.7.1.final.0
       base environment : /home/joris/miniconda3  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/joris/miniconda3/pkgs
                          /home/joris/.conda/pkgs
       envs directories : /home/joris/miniconda3/envs
                          /home/joris/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.8 requests/2.21.0 CPython/3.7.1 Linux/4.4.0-143-generic ubuntu/16.04.6 glibc/2.23
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False


An unexpected error has occurred. Conda has prepared the above report.

If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers?

But in any case, it is much faster! (also in failing :))

properly update all dependencies during update

When attempting to update conda-smithy with mamba, it only considers conda-smithy itself for update and not all dependencies of conda-smithy, since the dependency specs are still valid.

Dependency specification unsupported? mamba install blas=*=openblas

This project is awesome! Thank you for working on this! It is a BIG DEAL I think! โค๏ธ Anyhow, while trying it out I ended up with an error so here comes a report about that error.

It seems to me that mamba cannot manage installing a package where dependencies are specified like here: mamba install blas=*=openblas, this is possible with conda though. When I ran mamba --version I got output about conda 4.6.14. Mamba was installed today.

$ mamba install blas=*=openblas
                  __    __    __    __
                 /  \  /  \  /  \  /  \
                /    \/    \/    \/    \
โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ/  /โ–ˆโ–ˆ/  /โ–ˆโ–ˆ/  /โ–ˆโ–ˆ/  /โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
              /  / \   / \   / \   / \  \____
             /  /   \_/   \_/   \_/   \    o \__,
            / _/                       \_____/  `
            |/
        โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—
        โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—
        โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘
        โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘
        โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘
        โ•šโ•โ•     โ•šโ•โ•โ•šโ•โ•  โ•šโ•โ•โ•šโ•โ•     โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•  โ•šโ•โ•

        Supported by @QuantStack

        GitHub:  https://github.com/QuantStack/mamba
        Twitter: https://twitter.com/QuantStack

โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ

Getting  https://conda.anaconda.org/conda-forge/linux-64
Getting  https://conda.anaconda.org/conda-forge/noarch
Getting  https://repo.anaconda.com/pkgs/main/linux-64
Getting  https://repo.anaconda.com/pkgs/main/noarch
Getting  https://repo.anaconda.com/pkgs/free/noarch
Getting  https://repo.anaconda.com/pkgs/free/linux-64
Getting  https://repo.anaconda.com/pkgs/r/linux-64
Getting  https://repo.anaconda.com/pkgs/r/noarch

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/opt/conda/lib/python3.6/site-packages/conda/exceptions.py", line 1003, in __call__
        return func(*args, **kwargs)
      File "/opt/conda/lib/python3.6/site-packages/mamba/mamba.py", line 353, in _wrapped_main
        exit_code = do_call(args, p)
      File "/opt/conda/lib/python3.6/site-packages/mamba/mamba.py", line 332, in do_call
        exit_code = install(args, parser, 'install')
      File "/opt/conda/lib/python3.6/site-packages/mamba/mamba.py", line 237, in install
        mamba_solve_specs = [s.conda_build_form() for s in specs]
      File "/opt/conda/lib/python3.6/site-packages/mamba/mamba.py", line 237, in <listcomp>
        mamba_solve_specs = [s.conda_build_form() for s in specs]
      File "/opt/conda/lib/python3.6/site-packages/conda/models/match_spec.py", line 360, in conda_build_form
        assert version
    AssertionError

`$ /opt/conda/bin/mamba install blas=*=openblas`

  environment variables:
                 CIO_TEST=<not set>
                CONDA_DIR=/opt/conda
               CONDA_ROOT=/opt/conda
                     PATH=/home/jovyan/.local/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:
                          /usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/rstudio-server/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>

     active environment : None
       user config file : /home/jovyan/.condarc
 populated config files : /opt/conda/.condarc
          conda version : 4.6.14
    conda-build version : not installed
         python version : 3.6.7.final.0
       base environment : /opt/conda  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /opt/conda/pkgs
                          /home/jovyan/.conda/pkgs
       envs directories : /opt/conda/envs
                          /home/jovyan/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.14 requests/2.22.0 CPython/3.6.7 Linux/4.14.94+ ubuntu/18.04.2 glibc/2.27
                UID:GID : 1000:100
             netrc file : None
           offline mode : False


An unexpected error has occurred. Conda has prepared the above report.

Incorrect solution found for ROOT+Python 3

When using mamba to create an environment for root on macOS it chooses an old root build for Python 3. The latest build is chosen for Python 2 and conda always behaves as I expect (eventually... ๐ŸŒ).

Example

mamba create --name test-env python=2.7 root --dry-run

Chooses: root conda-forge/osx-64::root-6.16.00-py27_blas_openblash6de8b3b_7

mamba create --name test-env python=3.7 root --dry-run

Chooses: root conda-forge/osx-64::root-6.16.00-py37_blas_openblash77af0b3_4

mamba thinks my Python requirement is not fulfilled

I have Python 3.7.6:

Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

but when I want to install a package with mamba install package_name, I get the following error:

13914 packages in https://repo.anaconda.com/pkgs/main/win-64
0 packages in https://repo.anaconda.com/pkgs/msys2/noarch
471 packages in https://repo.anaconda.com/pkgs/msys2/win-64
1150 packages in https://repo.anaconda.com/pkgs/main/noarch
4224 packages in https://repo.anaconda.com/pkgs/r/win-64
5023 packages in https://repo.anaconda.com/pkgs/r/noarch
Encountered problems while solving.
Problem: package mamba-0.1.0-py37h1ad3211_2 requires python >=3.7,<3.8.0a0, but
none of the providers can be installed

This happens not only with a single package.

Make sure environment creation (with installation) works

@jorisvandenbossche observed the following:

Actually, up to now I only looked at what mamba proposed, but now trying to actually create the environment, I get an error for the example above:

...
Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: failed
ERROR conda.core.link:_execute(568): An error occurred while installing package 'conda-forge::attrs-19.1.0-py_0'.
FileNotFoundError(2, "No such file or directory: '/home/joris/miniconda3/envs/mamba-geo-test/bin/python3.7'")
Attempting to roll back.

Rolling back transaction: done

[Errno 2] No such file or directory: '/home/joris/miniconda3/envs/mamba-geo-test/bin/python3.7': '/home/joris/miniconda3/envs/mamba-geo-test/bin/python3.7'

And the rolling back also didn't fully succeed, as the envs/mamba-geo-test dir still has a conda-meta subdir with the file asn1crypto-0.24.0-py37_1003.json in it.

Doing the same with conda properly creates the environment.

Throws an "Illegal Instruction: 4" error when looking for packages

Platform: macOS 10.13.6 High Sierra
Anaconda Python 3.7

Attempting to execute any update or install command, such as mamba update mamba -c conda-forge throws an error right after the Looking for: ['package'].

In bash this is Illegal instruction: 4
In zsh this is illegal hardware instruction

Incorrect python used in entrypoint?

On win64 I installed mamba into a new py37 environment but it looks like the mamba.exe is looking for some random hard-coded python rather that the one in C:\Miniconda3\envs\mamba:

 ฮป  mamba Fatal error in launcher: Unable to create process using '"c:\bld\mamba_1553594356374\_h_env\python.exe"  "C:\Miniconda3\envs\mamba\Scripts\mamba.exe" '

Note: I don't have a C:\bld folder on my computer

Add only-deps mode

For dev installations where you want only the dependencies of some package.

[win64] Error then segfault

I'm getting the below error:

ฮป  conda create -n tmp732 python=3.7 numpy pandas --dry-run
<snip>
Getting  https://repo.anaconda.com/pkgs/main/win-64
Getting  https://repo.anaconda.com/pkgs/main/noarch
Getting  https://repo.anaconda.com/pkgs/free/win-64
Getting  https://repo.anaconda.com/pkgs/free/noarch
Getting  https://repo.anaconda.com/pkgs/r/win-64
Getting  https://repo.anaconda.com/pkgs/r/noarch
Getting  https://repo.anaconda.com/pkgs/msys2/win-64
Getting  https://repo.anaconda.com/pkgs/msys2/noarch
Getting  https://conda.anaconda.org/conda-forge/win-64
Exception in thread Thread-3:
Traceback (most recent call last):
  File "C:\Miniconda3\envs\mamba\lib\threading.py", line 917, in _bootstrap_inner
    self.run()
  File "C:\Miniconda3\envs\mamba\lib\threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Miniconda3\envs\mamba\lib\multiprocessing\pool.py", line 470, in _handle_results
    task = get()
  File "C:\Miniconda3\envs\mamba\lib\multiprocessing\connection.py", line 251, in recv
    return _ForkingPickler.loads(buf.getbuffer())
TypeError: __init__() missing 4 required positional arguments: 'url', 'status_code', 'reason', and 'elapsed_time'

...after which python then segfaults.

I'm on win64 with mamba installed in a py37 env.

Add use_index_cache behavior

index cache only tells conda to use the cache even if it has expired. Therefore the current logic needs to be adjusted.

Ran some basic tests

mamba create -n test2 'python>=3.6,<3.7'

Fails with error
Getting  https://conda.anaconda.org/conda-forge/linux-64
Getting  https://conda.anaconda.org/conda-forge/noarch
Getting  https://repo.anaconda.com/pkgs/main/linux-64
Getting  https://repo.anaconda.com/pkgs/main/noarch
Getting  https://repo.anaconda.com/pkgs/free/linux-64
Getting  https://repo.anaconda.com/pkgs/free/noarch
Getting  https://repo.anaconda.com/pkgs/r/linux-64
Getting  https://repo.anaconda.com/pkgs/r/noarch


Looking for: ["python[version='>=3.6,<3.7']"]


Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/497deca9.json
60674 packages in https://conda.anaconda.org/conda-forge/linux-64
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/09cdf8bf.json
8923 packages in https://conda.anaconda.org/conda-forge/noarch
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/47929eba.json
12722 packages in https://repo.anaconda.com/pkgs/main/linux-64
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/3e39a7aa.json
468 packages in https://repo.anaconda.com/pkgs/main/noarch
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/98cb6fa3.json
13329 packages in https://repo.anaconda.com/pkgs/free/linux-64
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/d77296e0.json
29 packages in https://repo.anaconda.com/pkgs/free/noarch
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/2ce54b42.json
5057 packages in https://repo.anaconda.com/pkgs/r/linux-64
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/4ea078d6.json
1 packages in https://repo.anaconda.com/pkgs/r/noarch
Allowing downgrade: 1
Creating the solver...
Job: (python[version >= ='>=3.6.0.0 with python[version < ='>=3.6.0.9999 with python[version < 3.7'])

Encountered 1 problems.

Problem: package (python[version >= ='>=3.6.0.0 with python[version < ='>=3.6.0.9999 with python[version < 3.7']) does not exist
Traceback (most recent call last):
  File "/home/mvanniekerk/miniconda3/envs/mamba/bin/mamba", line 174, in <module>
    sys.exit(main())
  File "/home/mvanniekerk/miniconda3/envs/mamba/bin/mamba", line 133, in main
    to_link, to_unlink = api.solve(channel_json, installed_json_f.name, specs_seperated, strict_priority)
RuntimeError: Encountered problems while solving.

mamba create -n m_test2 'python=3.6'

Runs successfully, but installs 3.6.0 instead of 3.6.7 (latest conda-forge) or 3.6.8 (latest pkgs/main)
Getting  https://conda.anaconda.org/conda-forge/linux-64
Getting  https://conda.anaconda.org/conda-forge/noarch
Getting  https://repo.anaconda.com/pkgs/main/linux-64
Getting  https://repo.anaconda.com/pkgs/main/noarch
Getting  https://repo.anaconda.com/pkgs/free/linux-64
Getting  https://repo.anaconda.com/pkgs/free/noarch
Getting  https://repo.anaconda.com/pkgs/r/linux-64
Getting  https://repo.anaconda.com/pkgs/r/noarch


Looking for: ['python=3.6']


Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/497deca9.json
60674 packages in https://conda.anaconda.org/conda-forge/linux-64
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/09cdf8bf.json
8923 packages in https://conda.anaconda.org/conda-forge/noarch
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/47929eba.json
12722 packages in https://repo.anaconda.com/pkgs/main/linux-64
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/3e39a7aa.json
468 packages in https://repo.anaconda.com/pkgs/main/noarch
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/98cb6fa3.json
13329 packages in https://repo.anaconda.com/pkgs/free/linux-64
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/d77296e0.json
29 packages in https://repo.anaconda.com/pkgs/free/noarch
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/2ce54b42.json
5057 packages in https://repo.anaconda.com/pkgs/r/linux-64
Parsing /home/mvanniekerk/miniconda3/envs/mamba/pkgs/cache/4ea078d6.json
1 packages in https://repo.anaconda.com/pkgs/r/noarch
Allowing downgrade: 1
Creating the solver...
Job: (python >= =3.6.0.0 with python < =3.6.0.9999)

Encountered 0 problems.

10 installed packages:
  - ca-certificates-2019.3.9.0-hecc5488_0.<NULL>
  - libgcc-ng-8.2.0.1-hdf63c60_1.<NULL>
  - ncurses-5.9.0.10-10.<NULL>
  - openssl-1.0.2r.0-h14c3975_0.<NULL>
  - python-3.6.0.2-2.<NULL>
  - readline-6.2.0.2-2.<NULL>
  - sqlite-3.13.0.1-1.<NULL>
  - tk-8.5.19.2-2.<NULL>
  - xz-5.2.4.1001-h14c3975_1001.<NULL>
  - zlib-1.2.11.1004-h14c3975_1004.<NULL>

Solution: 


## Package Plan ##

  environment location: /home/mvanniekerk/miniconda3/envs/mamba/envs/m_test2

  added / updated specs:
    - python=3.6


The following NEW packages will be INSTALLED:

  ca-certificates    conda-forge/linux-64::ca-certificates-2019.3.9-hecc5488_0
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-8.2.0-hdf63c60_1
  ncurses            conda-forge/linux-64::ncurses-5.9-10
  openssl            conda-forge/linux-64::openssl-1.0.2r-h14c3975_0
  python             conda-forge/linux-64::python-3.6.0-2
  readline           pkgs/free/linux-64::readline-6.2-2
  sqlite             conda-forge/linux-64::sqlite-3.13.0-1
  tk                 conda-forge/linux-64::tk-8.5.19-2
  xz                 conda-forge/linux-64::xz-5.2.4-h14c3975_1001
  zlib               conda-forge/linux-64::zlib-1.2.11-h14c3975_1004


Proceed ([y]/n)? y

Preparing transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate m_test2
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Feature request: add support for conda build

A common case where I run into issues where the mamba conflict resolution is super useful is when trying to diagnose issues with conda build. However, for now I have to translate a conda recipe into a mamba create or mamba install command. It would be great if it would be possible to call mamba build, which would then use mamba any time dependencies have to be installed (and deferring to conda for the rest). Feel free to close if this is not technically possible though!

Add CI

It would be useful to add some CI to run tests.

If we go with Circle CI, we can adapt e.g. this .circleci/config.yml file after removing everything related to python (and rust nightly) from there.

I can make a PR once we agree on which CI service to use.

Installing in non root env messes up -n

conda create -n mamba mamba
conda install mamba
conda create -n py37 python=3.7
mamba install opbeat -n py37

Gives

EnvironmentLocationNotFound: Not a conda environment: /home/isuru/miniconda3/envs/mamba/envs/py37

Update install from source instructions?

After merging PR #44 CMakeLists.txt is not longer present and running cmake throws an error:

CMake Error: The source directory "~/src/mamba/include" does not appear to contain CMakeLists.txt.

Document feature parity (or lack thereof)

Quick question:

is there a quick reference of which commands from conda are or aren't supported? Or a version who's API is the baseline? I'd guess that 4.7.x stuff might not be included yet?

Side note: has there been any discussion yet with the conda peeps about upstreaming this? Or do you first want to prove more exhaustively that it works? I really like the idea, I'm just a bit wary of further and further splintering of the build tool ecosystem.

Remove oversized banner

Some people apparently don't smirk every time they see the awesome banner :)

So we'll get rid of it for something more grown-up-looking.

conda --quiet argument is not so quiet

conda install -yq produces minimal output. mamba install -yq appears to ignore the 'quiet' argument. It would be nice for mamba to be able to also do quiet installations.

Add support for uninstall

Currently, mamba uninstall whatever doesn't work. Need to find out what to pass to libsolv to do it!

never works! Throws Cannot use strict priority all the time

I did not manage to install a single package with mamba!
For instance If I say:

mamba install -c conda-forge dvc

I get:


Looking for: ['dvc']

Cannot use strict priority with mamba!

And ALL the packages I tried to install give the same error.
My OS is latest Linux Mint. I use the mamba version 0.1.0 from conda-forge
I also have flexible channel priorities so it is strange why it complains about strict priority

Error creating environment from YML file

Trying to install Qiime 2.0 [https://qiime2.org] as from package instructions, but replacing "conda" with "mamba":

wget https://data.qiime2.org/distro/core/qiime2-2019.4-py36-linux-conda.yml
mamba env create -n qiime2-2019.4 --file qiime2-2019.4-py36-linux-conda.yml

will not work:

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/home/ubuntu/miniconda3/lib/python3.6/site-packages/conda/exceptions.py", line 1003, in __call__
        return func(*args, **kwargs)
      File "/home/ubuntu/miniconda3/lib/python3.6/site-packages/conda_env/cli/main.py", line 73, in do_call
        exit_code = getattr(module, func_name)(args, parser)
      File "/home/ubuntu/miniconda3/lib/python3.6/site-packages/conda_env/cli/main_create.py", line 101, in execute
        installer.install(prefix, pkg_specs, args, env)
      File "/home/ubuntu/miniconda3/lib/python3.6/site-packages/mamba/mamba_env.py", line 59, in mamba_install
        mamba_solve_specs, False, False)
    TypeError: solve(): incompatible function arguments. The following argument types are supported:
        1. (arg0: List[Tuple[str, str, int]], arg1: str, arg2: List[str], arg3: List[Tuple[int, int]], arg4: int, arg5: bool, arg6: bool) -> Tuple[List[Tuple[str, str, str]], List[Tuple[str, str]]]

    Invoked with: [('https://conda.anaconda.org/bioconda/noarch', '/home/ubuntu/miniconda3/pkgs/cache/2a957770.json', 12), ('https://repo.anaconda.com/pkgs/r/linux-64', '/home/ubuntu/miniconda3/pkgs/cache/2ce54b42.json', 9), ('https://conda.anaconda.org/conda-forge/noarch', '/home/ubuntu/miniconda3/pkgs/cache/09cdf8bf.json', 13), ('https://conda.anaconda.org/bioconda/linux-64', '/home/ubuntu/miniconda3/pkgs/cache/ffeee55f.json', 12), ('https://conda.anaconda.org/conda-forge/linux-64', '/home/ubuntu/miniconda3/pkgs/cache/497deca9.json', 13), ('https://repo.anaconda.com/pkgs/main/noarch', '/home/ubuntu/miniconda3/pkgs/cache/3e39a7aa.json', 11), ('https://repo.anaconda.com/pkgs/r/noarch', '/home/ubuntu/miniconda3/pkgs/cache/   {{ ...CUT... }} ', 'xorg-xextproto 7.3.0.*', 'xorg-xproto 7.0.31.*', 'xz 5.2.4.*', 'yaml 0.1.7.*', 'zeromq 4.3.1.*', 'zlib 1.2.11.*'], False, False

`$ /home/ubuntu/miniconda3/bin/mamba create -n qiime2-2019.4 --file qiime2-2019.4-py36-linux-conda.yml`

  environment variables:
                 CIO_TEST=<not set>
  CONDA_AUTO_UPDATE_CONDA=false
               CONDA_ROOT=/home/ubuntu/miniconda3
                 INFOPATH=/home/linuxbrew/.linuxbrew/share/info:
          LD_LIBRARY_PATH=:/usr/local/lib/
                  MANPATH=/home/linuxbrew/.linuxbrew/share/man:
               MODULEPATH=/etc/environment-modules/modules:/usr/share/modules/versions:/usr/Modu
                          les/$MODULE_VERSION/modulefiles:/usr/share/modules/modulefiles
                     PATH=/home/ubuntu/miniconda3/bin:/mnt/galaxy/tools/bin:/usr/lib/postgresql/
                          9.5/bin:/home/ubuntu/bin:/home/ubuntu/.local/bin:/home/ubuntu/minicond
                          a3/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:
                          /mnt/galaxy/tools/bin:/usr/lib/postgresql/9.5/bin:/usr/local/sbin:/usr
                          /local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/
                          snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/
                          bin:/usr/lib/jvm/java-8-oracle/jre/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>

     active environment : None
       user config file : /home/ubuntu/.condarc
 populated config files : /home/ubuntu/.condarc
          conda version : 4.6.14
    conda-build version : not installed
         python version : 3.6.7.final.0
       base environment : /home/ubuntu/miniconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/bioconda/linux-64
                          https://conda.anaconda.org/bioconda/noarch
          package cache : /home/ubuntu/miniconda3/pkgs
                          /home/ubuntu/.conda/pkgs
       envs directories : /home/ubuntu/miniconda3/envs
                          /home/ubuntu/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.14 requests/2.18.4 CPython/3.6.7 Linux/4.4.0-134-generic ubuntu/16.04.3 glibc/2.23
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False


An unexpected error has occurred. Conda has prepared the above report.

I assume this is expected, but just wanted to supply an example of this kind of issues.

crash on "inconsistant" envs

While running a conda-install on our cluster I come across an "inconsistent env" (I didn't knew it was a thing):

The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:

  - defaults/linux-64::mkl-service==1.1.2=py37h90e4bf4_5
  - defaults/linux-64::bottleneck==1.2.1=py37h035aef0_1
  - defaults/linux-64::h5py==2.8.0=py37h989c5e5_3
  - defaults/linux-64::bkcharts==0.2=py37_0
  - defaults/linux-64::pytables==3.4.4=py37ha205bf6_0
  - defaults/linux-64::blaze==0.11.3=py37_0
  - defaults/linux-64::anaconda==5.3.1=py37_0

... then conda normal "trying to solve" and maybe install stuff

I thought "Hey, how does mamba handle that ?", so I tried (installing anything does that):

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "~/anaconda3/lib/python3.6/site-packages/conda/exceptions.py", line 1003, in __call__
        return func(*args, **kwargs)
      File "~/anaconda3/lib/python3.6/site-packages/mamba/mamba.py", line 353, in _wrapped_main
        exit_code = do_call(args, p)
      File "~anaconda3/lib/python3.6/site-packages/mamba/mamba.py", line 332, in do_call
        exit_code = install(args, parser, 'install')
      File "~/anaconda3/lib/python3.6/site-packages/mamba/mamba.py", line 246, in install
        to_link, to_unlink = api.solve(channel_json, installed_json_f.name, mamba_solve_specs, isupdate, strict_priority)
    RuntimeError: Encountered problems while solving.

And well it crashed...so just letting you now.

It's a really small corner case, so feel free to close if you do not really care.

Make sure that pypy mutex works

It seems that we need to make sure that the pypy mutex exclusion works correctly.

Right now, installing numpy is possible in a pypy env while it's not possible with conda.

Make sure that track_features are deprioritized

Annoyingly, not everything seems to use mutexes in conda at this point ..
libclang has two versions: default and hcc where hcc adds a track feature that should be ranked lower than default in the default mode.

mamba should explicitly depend on conda 4.6+

Running --version fails:

+ conda --version
Traceback (most recent call last):
  File "/root/.local/bin/conda", line 8, in <module>
    from mamba.mamba import main
  File "/srv/conda/lib/python3.7/site-packages/mamba/mamba.py", line 23, in <module>
    from conda.base.constants import ChannelPriority
ImportError: cannot import name 'ChannelPriority' from 'conda.base.constants' (/srv/conda/lib/python3.7/site-packages/conda/base/constants.py)

Future of mamba

There has been the word out that you talked with Anaconda about how the mamba changes could be used in conda itself instead of having mamba on-top. What has been the outcome of this? Will we see still a future mamba that patches some speedups on top or is all work going into conda?

Mamba solver is ignored when using `mamba env update`

First, I'd like to say that Mamba is an awesome initiative, I've tried mamba 0.0.7, and it worked very well with mamba install and mamba create, sometimes making the solver 15x faster, with no other apparent differences from the results of conda commands!

conda env update is an important feature, we depend on it to update our environments from environment.yml files, especially because of the --prune flag, that guarantees that the env is an exact match of the spec defined in environment.yml (removing extra packages). I've tried to use mamba env update, but it seems to have no effect in the performance this case (looks like it's using conda solver).

Crash when building env

Hi,

I decided to try out mamba, but I get the following when I try to create an env.

(base) $ mamba env create -n osegra -f environment.yml
Getting  scilifelab-lts linux-64
Getting  scilifelab-lts noarch
Getting  conda-forge linux-64
Getting  conda-forge noarch
Getting  bioconda linux-64
Getting  bioconda noarch
Getting  pkgs/main linux-64
Getting  pkgs/main noarch
Getting  pkgs/r linux-64
Getting  pkgs/r noarch


Looking for: ['lts-workflows', 'bamtools', 'bedtools', 'biopython', 'multiqc', 'picard', 'pyyaml', 'yamlloader', 'rsem', 'star', 'ucsc-gtftogenepred', 'perl', 'r-rmarkdown', 'r-yaml', 'r-gplots', 'r-optparse', 'r-vioplot', 'subread', 'bioconductor-org.hs.eg.db', 'bioconductor-sc3', 'bioconductor-scran', 'snakemake-minimal', 'bioconductor-scater', 'bioconductor-biomart', 'r-mvoutlier', 'r-rmarkdown', 'r-rtsne', 'jupyter', 'r-irkernel', 'r-formatr']


8317 packages in https://conda.anaconda.org/bioconda/noarch
27095 packages in https://conda.anaconda.org/bioconda/linux-64
16944 packages in https://conda.anaconda.org/conda-forge/noarch
74033 packages in https://conda.anaconda.org/conda-forge/linux-64
842 packages in https://repo.anaconda.com/pkgs/main/noarch
5893 packages in https://repo.anaconda.com/pkgs/r/linux-64
14232 packages in https://repo.anaconda.com/pkgs/main/linux-64
3536 packages in https://repo.anaconda.com/pkgs/r/noarch
0 packages in https://conda.anaconda.org/scilifelab-lts/noarch
26 packages in https://conda.anaconda.org/scilifelab-lts/linux-64

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/home/khkk378/miniconda3/lib/python3.7/site-packages/conda/exceptions.py", line 1074, in __call__
        return func(*args, **kwargs)
      File "/home/khkk378/miniconda3/lib/python3.7/site-packages/conda_env/cli/main.py", line 78, in do_call
        exit_code = getattr(module, func_name)(args, parser)
      File "/home/khkk378/miniconda3/lib/python3.7/site-packages/conda_env/cli/main_create.py", line 102, in execute
        result[installer_type] = installer.install(prefix, pkg_specs, args, env)
      File "/home/khkk378/miniconda3/lib/python3.7/site-packages/mamba/mamba_env.py", line 108, in mamba_install
        update_specs  = specs
    TypeError: __new__() missing 1 required positional argument: 'neutered_specs'

`$ /home/khkk378/miniconda3/bin/mamba create -n osegra -f environment.yml`

  environment variables:
                 CIO_TEST=<not set>
  CONDA_AUTO_UPDATE_CONDA=false
        CONDA_DEFAULT_ENV=base
                CONDA_EXE=/home/khkk378/miniconda3/bin/conda
             CONDA_PREFIX=/home/khkk378/miniconda3
    CONDA_PROMPT_MODIFIER=(base)
         CONDA_PYTHON_EXE=/home/khkk378/miniconda3/bin/python
               CONDA_ROOT=/home/khkk378/miniconda3
              CONDA_SHLVL=1
                FTP_PROXY=<set>
              HTTPS_PROXY=<set>
               HTTP_PROXY=<set>
                  MANPATH=/usr/share/lmod/lmod/share/man:
               MODULEPATH=/opt/scp/modules/all:/usr/share/modulefiles/Linux:/usr/share/modulefil
                          es/Core:/usr/share/lmod/lmod/modulefiles/Core
                 NO_PROXY=<set>
                     PATH=/home/khkk378/miniconda3/bin:/home/khkk378/miniconda3/condabin:/usr/li
                          b64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/
                          ibutils/bin:/opt/dell/srvadmin/bin:/home/khkk378/miniconda3/bin:/home/
                          khkk378/.local/bin:/home/khkk378/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>
                ftp_proxy=<set>
               http_proxy=<set>
              https_proxy=<set>
                 no_proxy=<set>

     active environment : base
    active env location : /home/khkk378/miniconda3
            shell level : 1
       user config file : /home/khkk378/.condarc
 populated config files : /home/khkk378/.condarc
          conda version : 4.7.12
    conda-build version : not installed
         python version : 3.7.3.final.0
       virtual packages :
       base environment : /home/khkk378/miniconda3  (writable)
           channel URLs : https://conda.anaconda.org/bioconda/linux-64
                          https://conda.anaconda.org/bioconda/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/khkk378/miniconda3/pkgs
                          /home/khkk378/.conda/pkgs
       envs directories : /home/khkk378/miniconda3/envs
                          /home/khkk378/.conda/envs
               platform : linux-64
             user-agent : conda/4.7.12 requests/2.22.0 CPython/3.7.3 Linux/3.10.0-957.27.2.el7.x86_64 centos/7.6.1810 glibc/2.17
                UID:GID : 33392639:408929969
             netrc file : /home/khkk378/.netrc
           offline mode : False


An unexpected error has occurred. Conda has prepared the above report.

Decide on the libsolv wrapper

We need to decide how to call libsolv from Rust. As you mentionned @wolfv , the alternatives are,

  1. https://github.com/bkircher/libsolv-rs
  2. https://github.com/ignatenkobrain/libsolv-rs
  3. Write a new wrapper

So far as far as I understand uou went with 1?

That sounds good. Rather than vendoring that code maybe it could be worth forking that repo and adding it as a dependency in Cargo.toml,

solv = { git = "https://github.com/<user>/libsolv-rs", branch = "<some-branch>" }

That would make the separation between the wrapper and this package more clear, while still alowing to make changes to the libsolv-rs fork.

mamba broke my conda installation

## Package Plan ##

  environment location: /home/isuru/miniconda3

  added / updated specs:
    - pyopencl=2019.1


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    cython-0.29.12             |   py37he1b5a44_0         2.2 MB  conda-forge
    more-itertools-7.1.0       |             py_0          46 KB  conda-forge
    pyopencl-2019.1            |   py37h9de70de_0         649 KB  conda-forge
    pyrsistent-0.15.3          |   py37h516909a_0          89 KB  conda-forge
    pytest-5.0.1               |           py37_0         347 KB  conda-forge
    ruamel.yaml-0.15.98        |   py37h516909a_0         325 KB  conda-forge
    ------------------------------------------------------------
                                           Total:         3.6 MB

The following NEW packages will be INSTALLED:

  pyopencl           conda-forge/linux-64::pyopencl-2019.1-py37h9de70de_0
  wheel              conda-forge/linux-64::wheel-0.33.4-py37_0

The following packages will be UPDATED:

  cython                             0.29.11-py36he1b5a44_0 --> 0.29.12-py37he1b5a44_0
  more-itertools     conda-forge/linux-64::more-itertools-~ --> conda-forge/noarch::more-itertools-7.1.0-py_0
  pillow                               6.0.0-py36he7afcd5_0 --> 6.1.0-py37he7afcd5_0
  pyrsistent                          0.15.2-py36h516909a_0 --> 0.15.3-py37h516909a_0
  pytest                                       5.0.0-py36_0 --> 5.0.1-py37_0
  python                                3.6.7-h381d211_1004 --> 3.7.3-h33d41f4_1
  readline                                7.0-hf8c457e_1001 --> 8.0-hf8c457e_0
  ruamel.yaml                        0.15.96-py36h516909a_0 --> 0.15.98-py37h516909a_0

The following packages will be DOWNGRADED:

  conda-build                                 3.18.6-py36_0 --> 3.17.8-py37_1

Updated python from 3.6 to 3.7 without updating conda

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.