Skip to main content

5 posts tagged with "conda-libmamba-solver"

View All Tags

Β· 7 min read
Ken Odegard

The January 2024 releases included updates to four conda community projects: conda, conda-build, conda-libmamba-solver, and conda-index! πŸŽ‰ Each of these have been released to both main and conda-forge.

Changes in Conda 24.1.0/24.1.1/24.1.2​

To update conda, run:

conda install -n base conda=24.1.2

✨ What's New? βœ¨β€‹

  • Verify signatures on to-be-installed packages instead of on all packages.
  • Add new pre-solves and post-solves plugin hooks.
  • Add support for Python 3.12.
  • Check repodata.json.zst for faster repodata downloads.
  • Add --skip-flexible-search option in conda search to skip flexible search.
  • Provide a more useful warning when attempting to rename a non-existent prefix.
  • Add a new flag --keep-env to be used with conda remove --all. It allows users to delete all packages in the environment while retaining the environment itself.
  • Add a Y/N prompt warning users that conda env remove and conda remove --all deletes not only the conda packages but the entirety of the specified environment.
  • Add --repodata-use-zst/--no-repodata-use-zst flag to control repodata.json.zst check; corresponding repodata_use_zst: true/false setting for .condarc. Default is to check for repodata.json.zst. Disable if remote returns unparsable repodata.json.zst instead of correct data or 404.

πŸ”§ What Got Fixed? πŸ”§β€‹

  • Create the ~/.conda directory before trying to write to the environments.txt file.
  • Ensure PackageRecord.timestamp is dumped in milliseconds.
  • Fix error when setting a non-default repodata filename via CONDA_REPODATA_FNS.
  • Fix the config file location where the integrated Anaconda client gateway loads user configuration from. This is a regression introduced in conda 23.11.0 when the platformdirs library was adopted.
  • Interpret missing Cache-Control header as max-age=0 instead of exception.
  • (24.1.1) Fallback to repodata.json if repodata.json.zst cannot be decompressed as zstandard.
  • (24.1.1) Fallback to repodata.json from repodata.json.zst on most 4xx error codes.
  • (24.1.2) Fix conda.core.subdir_data.fetch_repodata_remote_request failure when repodata_use_zst is enabled.

πŸŒ… What's Marked for Deprecation? πŸŒ…β€‹

The conda_env.* modules have been merged into the conda package!

To improve the integration of the conda env subcommand (previously standalone), we've moved its code into the conda package, while allowing old conda env commands to still work via Python import redirects. This is a first step of many to improving the user experience of the conda command line interface related to environment management.

πŸ“„ What's New in Documentation? πŸ“„β€‹

  • Update Getting Started documentation in User Guide.
  • Add GoatCounter for docs site analytics.
  • Improve type hints and doc strings.

Changes in Conda-Build 24.1.0/24.1.1/24.1.2​

To update conda-build, run:

conda install -n base conda-build=24.1.2

✨ What's New? βœ¨β€‹

  • Update conda inspect channels to use updated solver/transaction logic.
  • Relax script_env error in outputs when variable referenced in script_env is not defined. This unifies current behavior with the top-level build.
  • Add support for Python 3.12.
  • Adopt calendar versioning (CalVer) per CEP-8 for consistency with conda.
  • Adopt expedited CEP-9 deprecation policy.

πŸ”§ What Got Fixed? πŸ”§β€‹

  • (24.1.1) Fix nonzero exitcode on success.
  • (24.1.2) Fix rpaths patcher being run on symbolic links.
  • (24.1.2) Fix corrupted package cache for outputs in subpackage tests.

πŸŒ… What's Marked for Deprecation? πŸŒ…β€‹

This is the first release of conda-build removing code previously marked as deprecated per the expedited deprecation schedule. The following is a list of what was removed:

  • conda_build.api.update_index
  • conda_build.cli.main_build.main
  • conda_build.cli.main_convert.main
  • conda_build.cli.main_debug.main
  • conda_build.cli.main_develop.main
  • conda_build.cli.main_index
  • conda_build.cli.main_inspect.main
  • conda_build.cli.main_metapackage.main
  • conda_build.cli.main_render.main
  • conda_build.cli.main_skeleton.main
  • conda_build.conda_interface.IndexRecord
  • conda_build.conda_interface.CrossPlatformStLink
  • conda_build.conda_interface.SignatureError
  • conda_build.conda_interface.which_package
  • conda_build.conda_interface.which_prefix
  • conda_build.conda_interface.get_installed_version
  • conda_build.config.python2_fs_encode
  • conda_build.config._ensure_dir
  • conda_build.config.Config.CONDA_LUA
  • conda_build.config.Config.CONDA_PY
  • conda_build.config.Config.CONDA_NPY
  • conda_build.config.Config.CONDA_PERL
  • conda_build.config.Config.CONDA_R
  • conda_build.environ.clean_pkg_cache
  • conda_build.index.update_index
  • conda_build.inspect_pkg.dist_files
  • conda_build.inspect_pkg.which_package(avoid_canonical_channel_name)
  • conda_build.inspect_pkg._installed
  • conda_build.metadata.Metadata.name(fail_ok)
  • conda_build.os_utils.ldd.get_package_files
  • conda_build.os_utils.liefldd.is_string
  • conda_build.os_utils.liefldd.codefile_type_liefldd
  • conda_build.os_utils.liefldd.codefile_type_pyldd
  • conda_build.os_utils.liefldd.codefile_type
  • conda_build.os_utils.pyldd.mach_o_change
  • conda_build.os_utils.pyldd.is_codefile
  • conda_build.os_utils.pyldd.codefile_type
  • conda_build.os_utils.pyldd.inspect_rpaths
  • conda_build.os_utils.pyldd.get_runpaths
  • conda_build.os_utils.pyldd.otool_sys
  • conda_build.os_utils.pyldd.ldd_sys
  • conda_build.plugin.index
  • conda_build.post.determine_package_nature
  • conda_build.post.library_nature(subdir)
  • conda_build.post.library_nature(bldpkgs_dirs)
  • conda_build.post.library_nature(output_folder)
  • conda_build.post.library_nature(channel_urls)
  • conda_build.post.dists_from_names
  • conda_build.post.FakeDist
  • conda_build.post._get_fake_pkg_dist
  • conda_build.utils.relative
  • conda_build.utils.samefile

In addition, we continued with the effort to remove any remaining usage of the legacy conda.models.dist.Dist object:

  • Mark conda inspect channels --test-installable as pending deprecation.
  • Mark conda_build.inspect_pkg.check_install(package) as pending deprecation in favor of conda_build.inspect_pkg.check_install(subdir).
  • Mark conda_build.inspect_pkg.check_install(prepend) as pending deprecation.
  • Mark conda_build.inspect_pkg.check_install(minimal_hint) as pending deprecation.
  • Mark conda_build.conda_interface.Dist as pending deprecation.
  • Mark conda_build.conda_interface.display_actions as pending deprecation.
  • Mark conda_build.conda_interface.execute_actions as pending deprecation.
  • Mark conda_build.conda_interface.execute_plan as pending deprecation.
  • Mark conda_build.conda_interface.get_index as pending deprecation.
  • Mark conda_build.conda_interface.install_actions as pending deprecation.
  • Mark conda_build.conda_interface.linked as pending deprecation.
  • Mark conda_build.conda_interface.linked_data as pending deprecation.
  • Mark conda_build.utils.linked_data_no_multichannels as pending deprecation.
  • Mark conda_build.environ.get_install_actions as pending deprecation in favor of conda_build.environ.get_package_records.
  • Mark conda_build.environ.create_env(specs_or_actions) as pending deprecation in favor of conda_build.environ.create_env(specs_or_precs).
  • Mark conda_build.index.channel_data as pending deprecation.
  • Mark conda_build.index._determine_namespace as pending deprecation.
  • Mark conda_build.index._make_seconds as pending deprecation.
  • Mark conda_build.index.REPODATA_VERSION as pending deprecation.
  • Mark conda_build.index.CHANNELDATA_VERSION as pending deprecation.
  • Mark conda_build.index.REPODATA_JSON_FN as pending deprecation.
  • Mark conda_build.index.REPODATA_FROM_PKGS_JSON_FN as pending deprecation.
  • Mark conda_build.index.CHANNELDATA_FIELDS as pending deprecation.
  • Mark conda_build.index._clear_newline_chars as pending deprecation.
  • Mark conda_build.index._apply_instructions as pending deprecation.
  • Mark conda_build.index._get_jinja2_environment as pending deprecation.
  • Mark conda_build.index._maybe_write as pending deprecation.
  • Mark conda_build.index._maybe_build_string as pending deprecation.
  • Mark conda_build.index._warn_on_missing_dependencies as pending deprecation.
  • Mark conda_build.index._cache_post_install_details as pending deprecation.
  • Mark conda_build.index._cache_recipe as pending deprecation.
  • Mark conda_build.index._cache_run_exports as pending deprecation.
  • Mark conda_build.index._cache_icon as pending deprecation.
  • Mark conda_build.index._make_subdir_index_html as pending deprecation.
  • Mark conda_build.index._make_channeldata_index_html as pending deprecation.
  • Mark conda_build.index._get_source_repo_git_info as pending deprecation.
  • Mark conda_build.index._cache_info_file as pending deprecation.
  • Mark conda_build.index._alternate_file_extension as pending deprecation.
  • Mark conda_build.index._get_resolve_object as pending deprecation.
  • Mark conda_build.index._get_newest_versions as pending deprecation.
  • Mark conda_build.index._add_missing_deps as pending deprecation.
  • Mark conda_build.index._add_prev_ver_for_features as pending deprecation.
  • Mark conda_build.index._shard_newest_packages as pending deprecation.
  • Mark conda_build.index._build_current_repodata as pending deprecation.
  • Mark conda_build.index.ChannelIndex as pending deprecation.
  • Mark conda_build.render.actions_to_pins as pending deprecation.
  • Mark conda_build.render.execute_download_actions(actions) as pending deprecation in favor of conda_build.render.execute_download_actions(precs).
  • Mark conda_build.render.get_upstream_pins(actions) as pending deprecation in favor of conda_build.render.get_upstream_pins(precs).

πŸ“„ What's New in Documentation? πŸ“„β€‹


Changes in Conda-Libmamba-Solver 24.1.0​

To update conda-libmamba-solver, run:

conda install -n base conda-libmamba-solver=24.1.0

✨ What's New? βœ¨β€‹

  • Prioritize explicitly requested specs with stricter constraints over implicit ones or name-only specs (e.g. a CLI-specified name=version=build will be sent to the solver before CLI-specified name=version and name).
  • Load pkgs_dirs records when called in offline mode.

πŸ”§ What Got Fixed? πŸ”§β€‹

  • Fix a regression introduced in 23.11.1, where certain solves would hard crash due to the given specs input order.
  • Properly propagate customized local channels (conda-build workspaces). Requires libmamba 1.5.6 or above.
  • Do not raise an error if an unsupported MatchSpec field can be safely dropped instead. Currently ignoring url, md5 and sha256.
  • Do not crash if a stateless repodata cache is accessed with --offline or --use-index-cache.

Changes in Conda-Index 0.4.0​

To update conda-index, run:

conda install -n base conda-index=0.4.0

✨ What's New? βœ¨β€‹

  • Add --compact-json/--no-compact-json option, default to compact.
  • Add an index subcommand using conda's new subcommand plugin hook, allowing conda index instead of python -m conda_index. Note the CLI has changed compared to old conda-index. When conda-build < 24.1.0 is installed, the older conda-index code will still be used instead of this plugin.

πŸ”§ What Got Fixed? πŸ”§β€‹

  • Check size in addition to mtime when deciding which packages to index.
  • Update cached index.json, not just stat values, for changed packages that are already indexed.

We ❀️ Our Community​

Altogether, we had 2 (!) new contributors this release cycle; thank you to all of our open source community members for helping making these improvements possible.

If you have ideas or want to help improve any of the conda community projects, we love to see new (and returning) contributors! πŸ˜„

Β· 6 min read
Ken Odegard

The November 2023 releases included updates to three conda community projects: conda, conda-build, and conda-libmamba-solver! πŸŽ‰ Each of these have been released to both main and conda-forge.

Changes in Conda 23.11.0​

To update conda, run:

conda install -n base conda=23.11.0

πŸ“’ Special Announcement πŸ“’β€‹

New menuinst v2 support!

Β· 6 min read
Ken Odegard

The September 2023 releases included updates to five conda community projects: conda, conda-build, conda-libmamba-solver, conda-index, and pycosat! πŸŽ‰ Each of these have been released to both main and conda-forge.

Changes in Conda 23.9.0​

To update conda, run:

conda install -n base conda=23.9.0

πŸ“’ Special Announcement πŸ“’β€‹

info

Conda's default solver will change to conda-libmamba-solver in a special 23.10.0 release in the near future!

You can already benefit from conda-libmamba-solver today by configuring your conda installation to use it (e.g. by running conda config --set solver libmamba).

The current "classic" solver is based on pycosat/Picosat and will remain part of conda for the foreseeable future. A fallback is possible and available.

Additional details on this change as well as the full announcement can be found in the conda 23.9.0 changelog.

Β· 4 min read
Jannis Leidel
Jaime RodrΓ­guez-Guerra

Over a year ago, the conda team at Anaconda, together with conda developers at Quansight and QuantStack, announced the release of a new solver for conda based on the libraries that the mamba project had developed on top of the venerable libsolv project.

Update

The default solver change for conda will be occurring in a special 23.10.0 release (not in 23.9.0). See the special announcement here.

TL;DR​

  • From July 2023 on, conda-libmamba-solver will be part of the various installers. The default conda solver is still classic. Look out for the release of miniconda, Anaconda Distribution and miniforge soon.
  • From September 2023 on, the default conda solver will be libmamba. classic will be available via --solver=classic, if needed.
  • At some point in the future, we'll discuss whether the classic solver is kept around, maintained as a separate plugin, and/or deprecated for good. Feedback welcome!

Β· 5 min read
Bianca Henderson

May releases are here! 🎊 Conda 23.5.0, conda-build 3.25.0, and conda-libmamba-solver 23.5.0 are now available on both main and conda-forge:

Changes in Conda​

To update conda, run:

conda install -n base conda=23.5.0

✨ What's New? βœ¨β€‹

The long-awaited conda doctor subcommand plugin has been implemented! The related conda issue is over nine years old and has been a regularly requested feature. The conda doctor command enables conda users to detect any packages with files missing (i.e., corrupt packages) in their conda environment.