Skip to main content

July 2023 Releases for conda and conda-build

ยท 5 min read
Bianca Henderson

The July 2023 releases are here! ๐ŸŽŠ Conda 23.7.0, 23.7.1, 23.7.2, and conda-build 3.26.0 are now available on both main and conda-forge channels.

Changes in Conda 23.7.0/23.7.1/23.7.2โ€‹

To update conda, run:

conda install -n base conda=23.7.2

โœจ What's New? โœจโ€‹

In the latest release of conda, new pre- and post-command plugin hooks that allow you to run your code before or after a conda subcommand are now available, along with a much improved subcommand plugin hook and plugin infrastructure. There is also a new health check for conda doctor that detects altered packages in an environment by comparing expected and computed sha256 checksums, as well as a much-expanded API and command docs (conda env!).

Additionally, the following features and changes can be found in conda 23.7.0:

  • A new conda.deprecations.DeprecationHandler.action helper for easier argparse.Actions deprecation.
  • Support for the FreeBSD operating system is now available, plus freebsd-64 is now a known subdirectory for FreeBSD on x86-64.
  • No more mocking of $CONDA_PREFIX when --name or --prefix is provided.
  • Support for sha256 filters in the MatchSpec syntax (e.g. *[sha256=f453db4ffe2271ec492a2913af4e61d4a6c118201f07de757df0eff769b65d2e]).
  • distutils has been removed in favor of the vendored version in setuptools 60 and later or standard library equivalents, per the PEP 632 migration guide.
  • There is now a new CITATION.cff file in the root of the repository to make it easier for users to cite conda.
  • There is an optional CondaSubcommand.configure_parser that allows third-party plugins to hook into conda's argument parser.
  • Only third-party subcommands are displayed with conda --help; plugin and legacy commands are also de-duplicated with that command.
  • Plugins are registered using their canonical/fully-qualified name instead of the easily-spoofable entry point name.
  • Subcommand parsing has been refactored to use a greedy parser since argparse.REMAINDER has known issues.

๐Ÿ”ง What Got Fixed? ๐Ÿ”งโ€‹

The following bug fixes were implemented in conda 23.7.0:

  • requests.exceptions.JSONDecodeError is utilized for ensuring compatibility with different json implementations used by requests. This fixes a bug that caused only the first of multiple given source URLs to be tried. This also raises the minimum required requests version to 2.27.0.
  • __osx virtual package are no longer exported when CONDA_OVERRIDE_OSX is set to an empty string.
  • Erroneous conda deactivate behavior that unset pre-existing environment variables that are identical to those set during conda activate has been fixed.
  • Third-party subcommands now correctly receive remaining arguments instead of a blanket sys.argv[2:], which broke conda_cli testing.

The following bug fix was implemented in conda 23.7.1/23.7.2:

  • Patch a parsing regression for --json and --debug arguments.

๐Ÿ“„ What's New in Documentation? ๐Ÿ“„โ€‹

  • pre_commands and post_commands plugin hooks.
  • Docstrings for all public modules have been added.
  • API docs are now auto-generated using sphinx-autoapi.
  • All manual redirects have been converted into config using sphinx-reredirects.
  • The plugins index page has been revised to make it easier to understand how to create a conda plugin.
  • Missing conda env CLI docs have been added.

๐ŸŒ… What's Marked for Deprecation? ๐ŸŒ…โ€‹

The following modules and functions were marked for deprecation:

Changes in Conda-Build 3.26.0โ€‹

To update conda-build, run:

conda install -n base conda-build=3.26.0

โœจ What's New? โœจโ€‹

In the latest version of conda-build, extra-meta data is logged to make it easier to verify that the right extra-meta data is burned into packages (which also helps to co-relate packages and their build-log). The feature was first introduced in PR #4303 and is now improved via the logging call.

Additionally, the following features and changes can be found in conda-build 3.26.0:

  • pip has been added to the env-doc make command so that the function works correctly (pip is no longer added by default with the python conda package).
  • Subcommands are implemented as conda plugins.
  • Duplicate get_summary calls are dropped in conda_build.skeletons.pypi.
  • resolved_packages tests that failed due to recent OpenSSL 3.0.8 release to defaults is now fixed.

๐Ÿ”ง What Got Fixed? ๐Ÿ”งโ€‹

The following bug fixes were implemented in conda-build 3.26.0:

  • The handling of unknown binaries with newer (py)lief versions has been fixed.
  • LIEF logging to remove "Unknown format" warning message is disabled.
  • enable_static default value in conda_build.config to remove "Failed to get_static_lib_exports" warning messages has been reverted.
  • We now avoid duplicate logging by not propagating the top-level conda-build logger.
  • Git cloning for repositories with submodules containing local relative paths has been fixed.

๐Ÿ“„ What's New in Documentation? ๐Ÿ“„โ€‹

  • pkg-spec docs have been updated to mention .conda package format.
  • Unnecessary Jinja package name variables from variants.rst docs file have been dropped.

๐ŸŒ… What's Marked for Deprecation? ๐ŸŒ…โ€‹

We โค๏ธ Our Communityโ€‹

Altogether we had 10 (!) new contributors to the conda and conda-build repositories this release cycle; thank you to all of our open source community members for helping make the new versions of conda and conda-build so great.

If you have ideas or want to help improve conda and/or conda-build, we love to see new (and returning) contributors! ๐Ÿ˜„