fix: Correct
repodata_record.jsonmetadata for installations using explicit specifications (#4110)Co-authored-by: Ben Mares maresb@users.noreply.github.com Co-authored-by: Cursor Agent cursoragent@cursor.com Co-authored-by: Julien Jerphanion git@jjerphan.xyz
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802032778号
Mamba: The Fast Cross-Platform Package Manager
mamba
mambais a reimplementation of the conda package manager in C++.mambaare implemented in C++ for maximum efficiencyAt the same time,
mambautilizes the same command line parser, package installation and deinstallation code and transaction verification routines ascondato stay as compatible as possible.mambais part of the conda-forge ecosystem, which also consists ofquetz, an open sourcecondapackage server.You can read our announcement blog post.
micromamba
micromambais the statically linked version ofmamba.It can be installed as a standalone executable without any dependencies, making it a perfect fit for CI/CD pipelines and containerized environments.
See the documentation on
micromambafor details.mambav.s.micromambamambahas to be preferred when:libmambapyorlibmambais used by other software in the same environment.micromambahas to be preferred when:Installation
Please refer to the mamba and micromamba installation guide in the documentation.
Additional features in Mamba and Micromamba
mambaandmicromambacome with features on top of stockconda.repoqueryTo efficiently query repositories and query package dependencies you can use
mamba repoqueryormicromamba repoquery.See the repoquery documentation for details.
Installing lock files
micromambacan be used to install lock files generated by conda-lock without having to installconda-lock.Simply invoke
micromamba createwith the-foption, providing an environment lockfile whose name ends with-lock.ymlor-lock.yaml; for instance: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:
micromamba, which takes around 1 s to install.condaenvironments.Differences with
condaWhile
mambaandmicromambaare generally a drop-in replacement forcondathere are some differences:mambaandmicromambanormalizeMatchSpecstrings to the simplest form, whereascondause a more verbose form This can lead to slight differences in the output ofconda env exportandmamba env export.Development installation
Please refer to the instructions given by the official documentation.
API and ABI stability
The Mamba project uses semantic versioning of the form
MAJOR.MINOR.PATCH. While we try to keep things stable for users, we also need to make breaking changes to improve Mamba and reduce technical debt. Future versions of Mamba may give stronger guarantees.libmamba(C++)We are not aware of consumers of the C++ API, so we give ourselves room for improvements. For
libmamba, the term backward compatible is understood as follows:detailsub-namespaces. The observed behavior will be the same, except for bugs (disappearing, hopefully) and performance. When declarations are deprecated but not removed and still functional, we consider it also backward compatible, as only the observed behavior during compilation changes.With this in mind,
libmambaoffers the following guarantees:PATCHreleases are API and ABI backward compatible;MINORreleases are API compatible for declarations inmamba/api, They can break API elsewhere and ABI anywhere;MAJORreleases make no guarantees.libmambapy(Python)For
libmambapy, the term API backward compatible implies that your Python code will work the same for a newer version oflibmambapyas long as you did not use any declaration understood to be private, for instance accessed with a name starting with an_. The observed behavior will be the same, except for bugs (disappearing, hopefully) and performance. When declarations are deprecated but not removed and still functional, we consider it also backward compatible, as the behavior is only observable when activating PythonDeprecationWarning, which is usually only activated in development.With this in mind,
libmambapyoffers the following guarantees:PATCHreleases are API backward compatible;MINORreleases are API backward compatible;MAJORreleases make no guarantees.mambaandmicromamba(executables)For executables, the term backward compatible applies to programmable inputs and outputs and means that your code (including shell scripts) will work with newer versions of the executable without modifications. Programmable inputs/outputs include executable name, command line arguments, configuration files, environment variables, JSON command line outputs, and files created. It excludes human-readable output and error messages, and thus deprecation warnings written in the human-readable output.
With this in mind,
mambaandmicromambaoffer the following guarantees:PATCHreleases are backward compatible;MINORreleases are backward compatible;MAJORreleases make no guarantees.Support us
Only
mambaandmicromamba2.0 and later are supported and are actively developed.The
1.xbranch is only maintained for addressing security issues such as CVEs.For questions, you can also join us on the Conda Zulip (note that this project is not officially affiliated with
condaor 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.