Skip to main content

June and July 2026 Releases

ยท 10 min read
Ken Odegard
Conda Maintainer
Banner image for June and July 2026 Releases blog post

The June and July 2026 releases included updates to conda, conda-build, conda-libmamba-solver, conda-pypi, constructor, menuinst, rattler, and more! ๐ŸŽ‰ All of these have been released to both defaults and conda-forge channels.

Changes in conda 26.7.0โ€‹

To update conda to the latest version, run:

conda install --name base conda=26.7.0
  • Large-prefix transaction work: unlink/link ordering no longer does a quadratic scan (about 780ร— faster for that step alone on a 50,000-record synthetic prefix), PrefixGraph builds a per-name candidate index, package extraction can use a process pool so zstd work runs outside the GIL, and osx-arm64 batches codesign into one end-of-transaction call.
  • Error guidance scaffolding: CondaError can carry structured guidance (terminal hints plus a guidance field in --json), with a conda_error_hints plugin hook and light starter coverage for a few common errors. This is foundation work for richer hints over time, not a wholesale change to how failures look today.
  • Leaner CLI path: shell activation skips plugin loading when the plugin manager is not already up; heavy imports are deferred in several modules; progress bars and spinners stay quiet when stdout is not a TTY (and respect NO_COLOR / TERM=dumb).
  • conda env create is now an alias of conda create (aligned dry-run output; safer behavior around existing prefixes).
  • Plugin subcommand aliases; conda config --show-sources can show plugin parameter values; BaseSolver base class for solver plugins; conda search works with sharded repodata (while refusing conda search *).
  • Fixes include URL-form MatchSpec channel identity, cleanup of failed creates, preserving environment history on rollback, and several sharded-repodata / wheel-record edge cases.

Full changelog: 26.7.0

Changes in rattler and py-rattler 0.24.0 / 0.25.0โ€‹

conda install py-rattler=0.25.0
  • Faster solves: rattler moved to resolvo 0.11.1, which cuts the larger solve benchmarks by roughly 40% (quetz 413 ms โ†’ 242 ms, tensorflow 283 ms โ†’ 175 ms). Every tool built on rattler gets that without changing a line. Matchspec and version parsing are faster too, which you notice when loading repodata.
  • conda packages for iOS and Android: new ios-*, iossimulator-* and android-* subdirs, with the minimum OS version carried as an __ios or __android virtual package. Compatibility then falls out of the solver the way __glibc and __osx already do. The subdirs and virtual packages are going through a draft CEP.
  • Channel behavior: the gateway follows CEP 42 channel relations, so a channel like bioconda can name conda-forge as its base and asking for bioconda alone is enough. rattler also implements conda's flexible channel priority.
  • Working offline: an offline mode keeps the whole stack off the network, and a solve can be restricted to a set of candidates the caller supplies. Build that set from the package cache and a solve that succeeds will install without downloading anything.
  • Authentication and CLI: reading a private prefix.dev channel from CI now authenticates itself off a WWW-Authenticate challenge, with no per-channel configuration, and OAuth defaults to the device-code flow. New commands: rattler exec, solve, and inject-into-prefix / remove-from-prefix.
  • py-rattler 0.24.0 brings lockfile v7 (breaking), CEP 42 channel relations, repodata revisions, __cuda_arch, and extras, conditionals and flags out of experimental. It also fixes two security advisories (GHSA-h672-p7h7-97v9, CVE-2026-47425), so it is worth updating for those alone. 0.25.0 reworks the repodata_revisions API (breaking) and stops the metadata parsers raising when a component is simply absent.

Full changelogs: py-rattler 0.24.0, 0.25.0, and the rattler releases for the individual crates.

Changes in conda-build 26.7.0โ€‹

conda install --name base conda-build=26.7.0
  • conda-debug supports v1 (recipe.yaml) recipes, with additional UX improvements and user docs; conda render sorts dependencies stably.
  • v1 build/host platform handling aligned with meta.yaml (no accidental {build,host}_platform in conda_build_config.yaml; use CONDA_SUBDIR / target_platform).
  • conda develop is pending removal in 27.9; prefer editable installs via conda-pypi (conda pypi install --editable <path>).
  • Negative build numbers fail at metadata validation; duplicate rpaths on macOS are guarded; Jinja variables without spaces (e.g. {{python_min}}) are found correctly.

Full changelog: 26.7.0

Changes in conda-libmamba-solver 26.6.0 / 26.7.0โ€‹

conda install --name base conda-libmamba-solver=26.7.0

26.6.0:

  • Sharded-repodata subset building moves into conda (via build_repodata_subset); requires conda >=26.5.
  • Removes plugins.use_sharded_repodata / CONDA_PLUGINS_USE_SHARDED_REPODATA in favor of conda's repodata_use_shards.
  • conda update no longer allows package downgrades; drops direct requests / zstandard dependencies.

26.7.0:

  • Large-environment solves cache installed state for the lifetime of a single solve (a 50,000-record prefix that previously timed out after 5+ minutes can complete in on the order of ~10 seconds for install/update/remove-style operations).
  • Virtual-package constraints such as constrains on __cuda are enforced correctly.
  • Suggests updating conda with conda self when that plugin is installed.

Full changelogs: 26.6.0, 26.7.0

Changes in conda-pypi 0.10.0 / 0.10.1 / 0.11.0โ€‹

conda install --name base conda-pypi=0.11.0

0.10.0:

  • Richer info/about.json when converting PyPI projects; external-packages health check for conda doctor (with --fix to reinstall eligible packages from conda channels).
  • --dry-run / --yes / repeated --editable for editable installs; shorter conda-pypi beta tip (and a setting to toggle the pip warning).

0.10.1:

  • Docs landing page focused on conda install workflows.
  • Removes the conda-pypi-post-install-create post-install plugin.

0.11.0:

  • conda pypi index <dir> builds a conda channel from local wheel files.
  • Direct .whl installs get correct info/index.json fn / build metadata (aligned with repodata v3), fixing lockfile restore mismatches.
  • The conda-pypi beta tip is visible again at default verbosity.

Full changelogs: 0.10.0, 0.10.1, 0.11.0

Changes in constructor 3.16.0 / 3.16.1 / 3.16.2 / 3.16.3โ€‹

conda install constructor=3.16.3

3.16.0:

  • Experimental Windows MSI installers (via BeeWare Briefcase).
  • installer_type: docker (Dockerfile + staged .sh) and docker_image_format: tar for portable images (Buildx).
  • constructor --render to render construct.yaml.
  • EXE: Windows path-length check before install, clearer package-cache cleanup on uninstall, and temp dirs under $INSTDIR to avoid Defender issues with conda-standalone.
  • Shell installers skip creating ~/.conda when register_envs is false.

3.16.1:

  • Include Briefcase batch templates so MSI builds work from an installed constructor.

3.16.2:

  • --installer-type CLI option.
  • EXE path-length check also accounts for the package-cache extraction path.
  • AzureSignTool verification works when installer paths contain spaces.

3.16.3:

  • Set TEMP / TMPDIR as well as TMP when redirecting temp dirs inside $INSTDIR.

Full changelogs: 3.16.0, 3.16.1, 3.16.2, 3.16.3

Changes in menuinst 2.5.0 / 2.5.1 / 2.5.2โ€‹

conda install menuinst=2.5.2

2.5.0:

  • Windows fixes for registry quoting, activation scripts with spaces in the path, and .nonadmin handling under @elevate_as_needed.
  • Skip malformed menu JSON with a warning; drop Python 3.9.

2.5.1:

  • Handle permission errors when writing menuinst.toml in read-only environments.

2.5.2:

Full changelogs: 2.5.0, 2.5.1, 2.5.2

Other releasesโ€‹

A few more projects shipped without a deep dive here:

We โค๏ธ our communityโ€‹

Thank you to everyone who landed changes across these releases. A special welcome to contributors who contributed for the first time: