Most notable changes:
- Removal of mamba Python codebase. Now mamba and micromamba share the same C++ codebase
- Support for mirrors
- Support for OCI registries
- Faster repodata parser
- New solver APIs, better libsolv isolation
- Better support of math specs thanks to a new internal specs component.
- Split of python bindings into many modules
Enhancement:
- [libmamba] test:
MatchSpec
edges cases by @jjerphan in #3458 - [libmamba] Compute
root prefix
as mamba install path by @Hind-M in #3447 - [libmamba, micromamba] Support CONDA_DEFAULT_ENV by @SylvainCorlay in #3445
- [all] Remove cctools patch from feedstock in CI by @JohanMabille in #3442
- [micromamba] test: Adapt test_explicit_export_topologically_sorted by @jjerphan in #3377
- [libmamba] test: Comparability and hashability of
PackageInfo
andMatchSpec
by @jjerphan in #3369 - [libmamba] build: Support fmt 11 (follow-up) by @jjerphan in #3371
- [libmamba, micromamba] build: Support fmt 11 by @jjerphan in #3368
- [libmamba] Make more classes hashable and comparable by @jjerphan in #3363
- [libmambapy, libmamba] Replace
Context
withContext::platform
where possible by @jjerphan in #3364 - [libmamba] Update mamba.xsh: support xonsh >= 0.18.0 by @anki-code in #3355
- [libmamba] Remove logs for every package by @Hind-M in #3335
- [libmamba] maint: Remove declaration of
PrefixData::load
by @jjerphan in #3325 - [libmamba] maint: Remove some warnings by @jjerphan in #3320
- [libmamba] maint: Remove
PrefixData::load
by @jjerphan in #3318 - [libmamba, micromamba] OCI/Conda mapping by @Hind-M in #3310
- [libmamba, micromamba] [OCI - Mirrors] Add tests and doc by @Hind-M in #3307
- [libmamba] [OCI Registry] Handle compressed repodata by @Hind-M in #3300
- [libmamba] [CEP-15] Support
base_url
withrepodata_version: 2
usingmamba
parser by @Hind-M in #3282 - [libmamba] Fix OCIMirror use by @Hind-M in #3296
- [all] Add checking typos to pre-commit by @Hind-M in #3278
- [libmambapy, libmamba] Bind text_style and graphic params by @AntoinePrv in #3266
- [libmambapy] Bind VersionPredicate by @AntoinePrv in #3255
- [all] Update pre-commit hooks" by @AntoinePrv in #3252
- [micromamba, libmamba] Refactor os utilities by @AntoinePrv in #3248
- [libmamba] Implemented OCI mirrors by @JohanMabille in #3246
- [libmamba] Passed url_path to request_generators by @JohanMabille in #3245
- [libmambapy, libmamba] Handle regex in build string by @AntoinePrv in #3239
- [micromamba, libmamba] [mamba-content-trust] Add integration test by @Hind-M in #3234
- [libmamba] Release libsolv memory before installation by @AntoinePrv in #3238
- [all] Custom resolve complex MatchSpec in Solver by @AntoinePrv in #3233
- [libmambapy, libmamba] Add MatchSpec::contains_except_channel" by @AntoinePrv in #3231
- [all] [mamba content trust] Enable verifying packages signatures by @Hind-M in #3192
- [libmambapy, libmamba] Refactor MatchSpec::str by @AntoinePrv in #3215
- [all] Subdir renaming by @AntoinePrv in #3214
- [libmambapy, libmamba] Fully bind MatchSpec by @AntoinePrv in #3213
- [libmamba] Add more MatchSpec tests by @AntoinePrv in #3211
- [micromamba, libmamba] Expected in specs parse API by @AntoinePrv in #3207
- [libmamba] Refactor MatchSpec::parse by @AntoinePrv in #3205
- [all] Added HTTP Mirrors by @JohanMabille in #3178
- [all] Use expected for specs parsing by @AntoinePrv in #3201
- [libmamba] Refactor ObjPool to use views in callbacks by @AntoinePrv in #3199
- [libmambapy, libmamba] Add more solver tests and other small features by @AntoinePrv in #3198
- [libmambapy, libmamba] Finalized Solver bindings and add solver doc by @AntoinePrv in #3195
- [libmambapy, libmamba] Add libsolv.Database Bindings and tests by @AntoinePrv in #3186
- [libmamba] Add (some) solver Database tests by @AntoinePrv in #3185
- [libmamba] Make libsolv wrappers into standalone library by @AntoinePrv in #3181
- [all] Rename MPool into solver::libsolv::Database by @AntoinePrv in #3180
- [all] Automate releases (
CHANGELOG.md
updating) by @Hind-M in #3179 - [all] Simplify MPool Interface by @AntoinePrv in #3177
- [all] Clean libsolv use in Transaction by @AntoinePrv in #3171
- [micromamba, libmamba] Rewrite Query with Pool functions (wrapping libsolv) by @AntoinePrv in #3168
- [micromamba] Remove hard coded mamba by @AntoinePrv in #3069
- [libmamba, micromamba] Support multiple env yaml specs by @jchorl in #2993
- [libmamba] Update shell hook comments by @jonashaag in #3051
- [micromamba] Duplicate reposerver to isolate micromamba tests by @AntoinePrv in #3071
- [libmamba, libmambapy] More specs bindings by @AntoinePrv in #3080
- [libmamba, libmambapy] Add VersionSpec::str by @AntoinePrv in #3081
- [all] Some future proofing MatchSpec by @AntoinePrv in #3082
- [libmamba] Reformat string by @AntoinePrv in #3085
- [libmamba] Clean up url_manip by @AntoinePrv in #3086
- [libmamba, libmambapy] Fix VersionSpec free ranges by @AntoinePrv in #3088
- [libmamba] Add parsing utilities by @AntoinePrv in #3090
- [libmamba] Bump MAMBA libsolv file ABI by @AntoinePrv in #3093
- [libmamba, libmambapy] MatchSpec use VersionSpec by @AntoinePrv in #3089
- [libmamba, libmambapy] GlobSpec by @AntoinePrv in #3094
- [libmamba] Add BuildNumberSpec by @AntoinePrv in #3098
- [libmamba] Refactor MatchSpec unlikey data by @AntoinePrv in #3099
- [libmamba, micromamba] Remove micromamba shell init -p by @AntoinePrv in #3092
- [all] Clean PackageInfo interface by @AntoinePrv in #3103
- [libmamba, libmambapy] NoArchType as standalone enum by @AntoinePrv in #3108
- [all] Move PackageInfo in specs:: by @AntoinePrv in #3109
- [libmamba, libmambapy] Change PackageInfo types by @AntoinePrv in #3113
- [libmamba, libmambapy] Add some PackageInfo tests by @AntoinePrv in #3115
- [libmamba, libmambapy] Rename ChannelSpec > UndefinedChannel by @AntoinePrv in #3117
- [libmamba, libmambapy] Add Channel::contains_package by @AntoinePrv in #3121
- [libmamba, libmambapy] Pool channel match by @AntoinePrv in #3122
- [libmamba] Added mirrored channels by @JohanMabille in #3125
- [libmamba, micromamba] Move util_random.hpp > util/random.hpp by @AntoinePrv in #3129
- [micromamba] Refactor test_remove.py to use fixture by @AntoinePrv in #3131
- [libmambapy] Add expected caster to Union by @AntoinePrv in #3135
- [all] MRepo refactor by @AntoinePrv in #3118
- [libmamba, libmambapy] No M by @AntoinePrv in #3137
- [libmamba, micromamba] Explcit transaction duplicate code by @AntoinePrv in #3138
- [libmamba, libmambapy] Solver improvements by @AntoinePrv in #3140
- [libmamba] Sort transaction table entries by @AntoinePrv in #3146
- [all] Solver Request by @AntoinePrv in #3141
- [libmamba] Improve Solution usage by @AntoinePrv in #3148
- [libmamba, libmambapy] Refactor solver flags by @AntoinePrv in #3153
- [libmamba] Moved download related files to dedicated folder by @JohanMabille in #3155
- [libmamba] Remove outdated commented code snippet by @jjerphan in #3160
- [libmamba] Implemented support for mirrors by @JohanMabille in #3157
- [all] Split Solver and Unsolvable by @AntoinePrv in #3156
- [libmamba] Proper sorting of display actions by @AntoinePrv in #3165
- [all] Solver sort deps by @AntoinePrv in #3163
- [libmamba, libmambapy] Bind solver::libsolv::UnSolvable by @AntoinePrv in #3166
- [libmamba, libmambapy] Improve Query API by @AntoinePrv in #3167
- [all] Context: not a singleton by @Klaim in #2615
- [libmamba] Add CondaURL by @AntoinePrv in #2805
- [micromamba] Add env update by @Hind-M in #2827
- [micromamba] Adding locks for cache directories by @rmittal87 in #2811
- [micromamba] Refactor tests by @AntoinePrv in #2829
- [all] No ugly kenum by @AntoinePrv in #2831
- [libmamba, micromamba] Add Nushell activation support by cvanelteren in #2693
- [libmamba] Support $var syntax in .condarc by @jonashaag in #2833
- [libmamba] Handle null and false noarch values by @gabrielsimoes in #2835
- [libmamba] Add CondaURL::pretty_str by @AntoinePrv in #2830
- [libmamba, micromamba] Channel cleanup by @AntoinePrv in #2832
- [libmamba] Authenfitication split user and password by @AntoinePrv in #2849
- [libmamba] Improved static build error message by @JohanMabille in #2850
- [libmamba] Add local channels test by @Hind-M in #2853
- [libmamba, micromamba] Don't force MSVC_RUNTIME by @AntoinePrv in #2861
- [libmamba] Build micromamba with /MD by @AntoinePrv in #2862
- [micromamba] Add comments in micromamba repoquery by @Hind-M in #2863
- [libmamba, micromamba] Fix Posix shell on Windows by @AntoinePrv in #2803
- [libmamba, libmambapy] Further improve micromamba search output by @delsner in #2823
- [libmamba] Minor Channel refactoring by @AntoinePrv in #2852
- [libmamba] path_to_url percent encoding by @AntoinePrv in #2867
- [libmamba] Change libsolv static lib name by @AntoinePrv in #2876
- [libmamba, libmambapy] Download by @JohanMabille in #2844
- [libmamba, micromamba] Use CMake targets for reproc by @AntoinePrv in #2883
- [micromamba] Add mamba tests by @Hind-M in #2877
- [libmamba] Add FindLibsolv.cmake by @AntoinePrv in #2886
- [libmamba] Read repodata.json using nl::json (rerun) by @AntoinePrv in #2753
- [libmamba, micromamba] Filesystem library by @AntoinePrv in #2879
- [libmamba] Header cleanup filesystem follow-up by @AntoinePrv in #2894
- [all] Add multiple queries to repoquery search by @AntoinePrv in #2897
- [all] Add ChannelSpec by @AntoinePrv in #2870
- [micromamba] Make some fixture local by @JohanMabille in #2919
- [libmamba] Print error code if run fails by @jonashaag in #2848
- [all] Added PackageFetcher by @JohanMabille in #2917
- [libmamba] return architecture levels for micromamba by @isuruf in #2921 - [all] Resolve ChannelSpec into a Channel by @AntoinePrv in #2899
- [libmamba] Factorize Win user folder function between files by @AntoinePrv in #2925
- [libmamba, libmambapy] Combine dev environments by @AntoinePrv in #2937
- [libmamba, micromamba] Refactor win encoding conversion by @AntoinePrv in #2939
- [micromamba] Move reposerver tests to micromamba by @AntoinePrv in #2941
- [micromamba] Remove mamba by @AntoinePrv in #2942
- [all] Dev workflow by @AntoinePrv in #2948
- [libmamba, micromamba] Add refactor getenv setenv unsetenv by @AntoinePrv in #2944
- [all] Explicit and smart CMake target by @AntoinePrv in #2935
- [libmamba, micromamba] Rename env functions by @AntoinePrv in #2954
- [libmambapy] Modularize libmambapy by @AntoinePrv in #2960
- [libmamba] Environment map by @AntoinePrv in #2967
- [libmamba] Add envrionment cleaner test fixtures by @AntoinePrv in #2973
- [all] Update dependencies on OSX by @AntoinePrv in #2976
- [all] Channel initialization by @AntoinePrv in #2953
- [libmamba] Add weakening_map by @AntoinePrv in #2981
- [libmamba, micromamba] Refactor env directories by @AntoinePrv in #2983
- [libmamba] Enable new repodata parser by default by @AntoinePrv in #2989
- [libmamba] Allow overriding archspec by @isuruf in #2966
- [libmamba] Add Python-like set operations to flat_set by @AntoinePrv in #2557
- [libmamba, micromamba] Migrate expand/shrink_home by @AntoinePrv in #2990
- [libmamba, micromamba] Refactor env::which by @AntoinePrv in #2997
- [all] Migrate Channel::make_channel to resolve multi channels by @AntoinePrv in #2986
- [all] Move core/channel > specs/channel by @AntoinePrv in #3000
- [libmamba, libmambapy] Remove ChannelContext ctor by @AntoinePrv in #3002
- [libmamba] Improve ChannelContext and Channel by @AntoinePrv in xhttps://github.com//pull/3003
- [all] Remove ChanelContext context capture by @AntoinePrv in #3015
- [libmamba, libmambapy] Bind Channel by @AntoinePrv in #3001
- [libmamba, micromamba] Default to hide credentials by @AntoinePrv in #3017
- [libmamba] Validation QA by @AntoinePrv in #3022
- [libmamba, micromamba] Refactor (some) OpenSSL functions by @AntoinePrv in #3024
- [libmamba] Use std::array<std::byte, ...> by @AntoinePrv in #3037
- [libmambapy] Bind ChannelContext by @AntoinePrv in #3034
- [libmamba, micromamba] Default to conda-forge channel by @AntoinePrv in #3035
- [libamba, libmambapy] Split validate.[ch]pp by @AntoinePrv in #3041
- [libmamba] Remove duplicate function by @AntoinePrv in #3042
- [libmamba, libmambapy] MatchSpec small improvements by @AntoinePrv in #3043
- [all] Plug ChannelSpec in MatchSpec by @AntoinePrv in #3046
- [libmamba] Drop unneeded dependencies by @opoplawski in #3016
- [all] Change MatchSpec::parse to named constructor by @AntoinePrv in #3048
- [libmamba, libmambapy] restore use_default_signal_handler flag for libmambapy by @dholth in #3028
- [micromamba] Added mamba as dynamic build of micromamba by @JohanMabille in #3060
Bug fixes:
- [libmamba, micromamba] fix: Handle extra white-space in
MatchSpec
by @jjerphan in #3456 - [micromamba] Fix
test_env_update_pypi_with_conda_forge
by @Hind-M in #3459 - [libmamba, micromamba] fix: Environment removal confirmation by @jjerphan in #3450
- [micromamba] Fix test in osx by @Hind-M in #3448
- [libmamba, libmambapy] fix: add warning when using defaults by @wolfv in #3434
- [libmamba, micromamba] Add fallback to root prefix by @Hind-M in #3435
- [libmamba] Fix x86_64 to use underscore instead of dash by @traversaro in #3433
- [libmamba, micromamba] Fixed micromamba static build after cctools and ld64 upgrade on conda… by @JohanMabille in #3436
- [libmamba, micromamba] fix: PyPI support for
env update
by @jjerphan in #3419 - [libmamba] Fix output by @Hind-M in #3428
- [all] Update mamba.sh.in script by @SylvainCorlay in #3422
- [libmamba] Execute remove action before install actions by @SylvainCorlay in #3424
- [micromamba] test: Adapt
test_remove_orphaned
unlinks by @jjerphan in #3417 - [micromamba, libmamba] fix: Reduce logging system overhead by @jjerphan in #3416
- [all] Define
etc/profile.d/mamba.sh
and install it by @jjerphan in #3413 - [micromamba] Add posix to supported shells by @jjerphan in #3412
- [all] Replaces instances of -p with --root-prefix in documentation by @SylvainCorlay in #3411
- [libmamba, micromamba] [micromamba] Fix behavior of
env update
(to mimick conda) by @Hind-M in #3396 - [libmamba] Reset the prompt back to default by @cvanelteren in #3392
- [libmamba] Add missing header by @Hind-M in #3389
- [libmamba] Restore previous behavior of
MAMBA_ROOT_PREFIX
by @Hind-M in #3365 - [libmamba] Allow leading lowercase letter in version by @Hind-M in #3361
- [libmamba] Allow spaces in version after operator by @Hind-M in #3358
- [micromamba] Attempt to fix
test_proxy_install
by @Hind-M in #3324 - [micromamba] Fix
test_no_python_pinning
by @Hind-M in #3321 - [libmamba] Fixed restoring the previous signal handler for example in python case (Windows only for now) by @Klaim in #3297
- [all] Split
ContextOptions::enable_logging_and_signal_handling
into 2 different options by @Klaim in #3329 - [libmambapy, libmamba] libmambapy: use
Context
explicitly by @Klaim in #3309 - [micromamba] Fix test_no_python_pinning by @Hind-M in #3319
- [all] Fix release scripts by @Hind-M in #3306
- [libmamba] Hotfix to allow Ctrl+C in python scipts by @Klaim in #3285
- [libmamba] Fix typos in comments by @ryandesign in #3272
- [all] Fix VersionSpec equal and glob by @AntoinePrv in #3269
- [libmamba] Fix pin repr in solver error messages by @AntoinePrv in #3268
- [libmambapy] Add missing pybind header by @AntoinePrv in #3256
- [libmambapy, libmamba] Don't add duplicate .conda and .tar.bz2 packages by @AntoinePrv in #3253
- [all] Use conda-forge feedstock for static builds by @AntoinePrv in #3249
- [micromamba, libmamba] Mamba 2.0 name fixes by @AntoinePrv in #3225
- [all] Make Taskfile.dist.yml Windows-compatible by @carschandler in #3219
- [libmamba] fix(micromamba): anaconda private channels not working by @s22chan in #3220
- [micromamba] Remove unmaintained and broken pytest-lazy-fixture by @AntoinePrv in #3193
- [libmamba] Simple logging fix by @AntoinePrv in #3184
- [libmamba, micromamba] Fix URL enconding in repodata.json by @AntoinePrv in #3076
- [libmamba, micromamba] gracefully handle conflicting names in yaml specs by @jchorl in #3083
- [libmamba] Fix verbose and strange prefix in Powershell by @pwnfan in #3116
- [libmamba] handle other deps in multiple env files by @jchorl in #3096
- [libmambapy] Fix expected caster by @AntoinePrv in #3136
- [libmamba, micromamba] add manually given .tar.bz2 / .conda packages to solver pool by @0xbe7a in #3164
- [libmambapy] Fix 2.0 alpha by @AntoinePrv in #3067
- [libmambapy] fix subs by @AntoinePrv in #2817
- [libmamba, micromamba] Fix linking on Windows when Scripts folder is missing by @dalcinl in #2825
- [libmamba] added support for empty lines in dependency file in txt format by @rmittal87 in #2812
- [libmamba] Fix local channels location by @AntoinePrv in #2851
- [libmamba] Fixed libmamba tests static build by @JohanMabille in #2855
- [micromamba] Fix win test micro.mamba.pm by @AntoinePrv in #2888
- [libmamba, micromamba] Add CI test for local channels by @Hind-M in #2854
- [micromamba] Fixed "micromamba package transmute names files going from .conda -> .tar.bz2 incorrectly" by @mariusvniekerk in #2911
- [libmamba] Nushell hotfix by @cvanelteren #2841
- [libmamba] Added missing dependency in libmambaConfig.cmake.in by @JohanMabille in #2916
- [libmamba] Allow defaults::* spec by @isuruf in #2927
- [libmamba] #2929 by @bruchim-cisco in #2929
- [libmamba] Fix channels with slashes regression by @isuruf in #2926
- [micromamba] Fix micromamba test dependency conda-package-handling by @rominf in #2945
- [libmamba, libmambapy] fix: Parse remote_connect_timeout_secs as a double by @jjerphan in #2949
- [libmamba] Add mirrors by @Hind-M in #2795
- [all] Add cmake-format by @AntoinePrv in #2962
- [micromamba] removed dependency on conda-index by @JohanMabille in #2964
- [libmamba] Fixed move semantics of DownloadAttempt by @JohanMabille in #2963
- [libmamba] Nu 0.87.0 by @cvanelteren in #2984
- [libmamba] fix config precedence for base env by @0xbe7a in #3009
- [libmamba] Fix libmamba cmake version file by @opoplawski in #3013
CI fixes and doc:
- [all] Fix wrong version of miniforge in doc by @Hind-M in #3462
- [all] Remove cctools patch removal in CI by @Hind-M in #3451
- [all] docs: Specify
CMAKE_INSTALL_PREFIX
by @jjerphan in #3438 - [all] docs: Adapt "Solving Package Environments" section by @jjerphan in #3326
- [all] [win-64] Remove workaround by @Hind-M in #3398
- [all] [win-64] Add constraint on fmt by @Hind-M in #3400
- [all] Unpin cryptography, python, and add make to environment-dev.yml by @jaimergp in #3352
- [all] ci: Unpin libcxx <18 by @jjerphan in #3375
- [all] chore(ci): bump github action versions by @corneliusroemer in #3350
- [all] doc(more_concepts.rst): improve clarity by @corneliusroemer in #3357
- [micromamba] Temporarily disabled no_python_pinning test on Windows by @JohanMabille in #3322
- [all] Fix CI failure on win-64 by @Hind-M in #3315
- [micromamba] Test with xtensor-python instead of unmaintained xframe by @JohanMabille in #3286
- [all] Small changelog additions by @AntoinePrv in #3254
- [all] Fixed a spelling mistake in micromamba-installation.rst by @codeblech in #3236
- [all] Typos in dev_environment.rst by @jd-foster in #3235
- [all] Add MatchSpec doc and fix errors by @AntoinePrv in #3224
- [libmambapy] Remove dead mamba.py doc by @AntoinePrv in #3078
- [all] Document specs::Channel by @AntoinePrv in #3077
- [all] Fix --override-channels docs by @jonashaag in #3084
- [all] Add 2.0 changes draft by @AntoinePrv in #3091
- [all] Add Breathe for API documentation by @AntoinePrv in #3087
- [micromamba] Add instructions for gnu coreutils on OSX by @benmoss in #3111
- [all] Warning around manual install and add ref to conda-libmamba by @AntoinePrv in #3119
- [all] Add MacOS DNS issue logging by @AntoinePrv in #3130
- [all] Add CI merge groups by @AntoinePrv in #3068
- [micromamba] Build micromamba win with feedstock by @AntoinePrv in #2859
- [micromamba] Update GitHub Actions steps to open Issues for failed scheduled jobs by @jdblischak in #2884
- [micromamba] Fix Ci by @AntoinePrv in #2889
- [micromamba] Mark Anaconda channels as unsupported by @jonashaag in #2904
- [micromamba] Fix nodefaults in documentation by @jonashaag in #2809
- [micromamba] Improve install instruction by @jonashaag in #2908
- [libmambapy] Refactor CI and libamambapy tests (on Unix) by @AntoinePrv in #2952
- [libmambapy] Refactor CI and libamambapy tests (on Win) by @AntoinePrv in #2955
- [all] Simplify and correct development documention by @AntoinePrv in #2975
- [all] Add install from source instructions by @AntoinePrv in #2977
- [all] update readme install link by @artifical-agent in #2980
- [all] Fail fast except on debug runs by @AntoinePrv in #2985