Skip to content

Releases: conda/conda-libmamba-solver

25.11.0

25 Nov 11:00
2abc8f7

Choose a tag to compare

✨ Special Announcement ✨

This release includes preliminary support for fetching CEP 16 sharded repodata, a substantially more efficient way of distributing the necessary metadata to install packages in your environments.

You can try it by:

  • Enabling it in your settings with conda config --set plugins.use_sharded_repodata true
  • Setting this environment variable: CONDA_PLUGINS_USE_SHARDED_REPODATA=1

Note that sharded repodata requires that the target channels expose the necessary metadata too, so it will only work with CEP-16-ready deployments. conda-libmamba-solver will fallback to traditional (monolithic) repodata if not available, so you can mix sharded and non-sharded channels without problems.

Enhancements

  • Add experimental support for CEP 16 sharded repodata. Enable it with conda config --set plugins.use_sharded_repodata true or CONDA_PLUGINS_USE_SHARDED_REPODATA=1. (#684, #695, #696, #715 via #722, #730, #748, #736, #756, #762)
    • When sharded repodata is enabled, the solver checks every channel for an index,
      repodata_shards.msgpack.zst, and re-checks every 7 days if not found. It builds a subset of
      repodata by recursively traversing the dependencies of all installed and requested packages,
      using shards to fetch only the package metadata that could possibly be part of the solution from
      each channel. This smaller amount of package metadata is sent to the solver. Sharded repodata can
      save a significant amount of bandwith, memory, and parse time when installing packages.
    • Cache shards in a sqlite database in ${CONDA_PREFIX}/pkgs/cache/repodata_shards.db.
    • This implementation does not use shards for conda search or other repodata uses that do not
      include a solve.
  • Add support for CEP 17 python_site_packages_path. (#560 via #628)
  • Add new messaging for when conda is outdated, environment is frozen, and conda-self is installed. (#753 via #766)
  • Add a codspeed benchmarking GitHub action and a few benchmarks. (#754 via #755)

Bug fixes

  • Constrain the torchvision version in test_pytorch_gpu. (#659 via #661)
  • Correctly record channel platform in conda-meta record files. (#662 via #663)
  • Import CondaSolver from its canonical location in conda.plugins.types. (#691)
  • The cpuonly mutex now correctly prevents CUDA packages from being installed, matching classic solver behavior. (#131 via #741)

Deprecations

  • Replace deprecated conda.core.index._supplement_index_with_system with conda.core.index.Index().system_packages. (#654 via #655)
  • Drop support for Python 3.9. (#747)

Docs

Other

  • Improve repository server in test suite. (#700)
  • Add Python 3.13 to the CI matrix. (#747)
  • Test osx-64 with conda-forge, and osx-arm64 with defaults, since Anaconda does not build osx-64 dependencies anymore. (#729, #747)

Contributors

25.4.0

25 Apr 16:01
b088a94

Choose a tag to compare

Enhancements

  • Use conda.reporters.get_spinner() to support conda reporter plugins. (#641)

Bug fixes

  • Always percent-encode spaces in file:// channel URLs. (#640)
  • Fix a bug where auto-selection of GPU variants of pytorch and torchvision didn't work as expected. (#646 via #647)
  • Avoid libmamba MatchSpec parsing errors by skipping nameless channel information in passed specs. (#645 via #648)

Contributors

25.3.0

14 Mar 18:19
d363434

Choose a tag to compare

Bug fixes

  • Fix issue with content trust post-solve hooks that prevented signatures from being verified when the solved package records didn't include subdir information in their channel metadata. (#616 via #617)
  • Protect against conda.base.context.context.restore_free_channel deprecation by using getattr. (#629)
  • Remove all packages with --no-deps, not just the last one to be analyzed. (#632)

Docs

  • Mention conda ecosystem's adaptation of libsolv. (#624)

Contributors

25.1.1

24 Jan 12:08
539f05b

Choose a tag to compare

Bug fixes

  • Consider whether the full spec matches anything installed (not just name) when --satisfied-skip-solve is in use. (#605 via #606)

Contributors

25.1.0

21 Jan 08:11
17adb32

Choose a tag to compare

Bug fixes

  • Fix dependency handling in conda env update --prune. (#595 via #596)
  • Accept both pathlib.Path() and str for LibMambaSolver() prefix. (#586)

Contributors

24.11.1

04 Dec 11:49
e09df12

Choose a tag to compare

Bug fixes

  • Ensure PackageRecord URLs are percent-decoded before passing them back to conda. (#583)

Contributors

24.11.0

27 Nov 15:26
93ac81a

Choose a tag to compare

πŸš€ This release ships compatibility for libmamba 2.x. It's a major rewrite! Make sure to check the changelog entry for 24.11.0rc for more details.

Bug fixes

  • Load SOLV repodata cache in offline mode too. (#570)

Contributors

24.11.0rc

04 Nov 10:49
dbecb34

Choose a tag to compare

24.11.0rc Pre-release
Pre-release

Enhancements

  • Require libmambapy v2. This is a big refactor in libmamba internals, which also allowed us to remove a lot of code in conda-libmamba-solver. (#457)

Deprecations

  • CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED has no effect anymore. Channels coming from installed packages are no longer added to the channel list. (#411 via #457)
  • Removed conda_libmamba_solver.state.BaseIndexHelper. The base class is now conda_libmamba_solver.index.IndexHelper. (#457)
  • Verbose logging in libsolv has a big overhead in libmamba v2, so we have disabled it by default (even if the user adds -vvv flags to the CLI). To opt-in, please set CONDA_LIBMAMBA_SOLVER_DEBUG_LIBSOLV to a truthy value. (#457)
  • Python 3.8 is no longer supported. The minimum version is now 3.9. (#457)

Contributors

24.9.0

25 Sep 16:23
bbaab52

Choose a tag to compare

Bug fixes

  • Use Solver instance configuration to initialize the libmamba context without implicitly relying on the conda context settings. (#525)
  • Fix conda-build compatibility regression where arch-specific outputs can't be found in the test phase if a noarch output was built first. (#531)

Docs

  • Add installation workarounds FAQ with conda-standalone. (#505 via #511)
  • Update user guide to reflect conda-libmamba-solver being the default solver in conda. (#516 via #517)
  • Include mamba-org/mamba as a required cloned repository for setting up a dev environment. (#528)

Contributors

24.7.0

17 Jul 16:52
ec765a8

Choose a tag to compare

Bug fixes

  • Allow wildcards in package names for conda remove (e.g. conda remove "python-*"). (#434 via #435)
  • Avoid duplicate channel listing when using channel-pinned specs like channel::package. (#449)
  • Fix a performance regression where .solv repodata cache files were not being loaded when available. (#481 via #482)
  • Do not ignore virtual packages as input specs. (#480 via #485)
  • Pin libmambapy <2 to defend against upcoming API changes. (#492)

Docs

  • Document development workflows with devcontainers. (#451)

Other

  • Add DevContainer configurations for local development workflows. (#451)

Contributors

Full Changelog: 24.1.0...24.7.0