Skip to main content

August and September 2026 Releases

· 11 min read
Jannis Leidel
Steering council member
Banner image for August and September 2026 Releases blog post

conda and conda-build 26.9.0 are out. Since our June and July update, conda-pypi, constructor, rattler, grayskull, and several other projects have shipped releases too.

Changes in conda 26.9.0​

Special Announcement

We're planning a special conda 26.10.0 release in October to make Rattler the default solver. We used the same approach for the switch to libmamba in 2023.

In the same release, we'll start shipping the classic solver as the separate conda-pycosat-solver plugin. Existing solver: classic settings and --solver=classic commands will keep working. The plugin also supports the name pycosat.

Conda 26.9 still uses libmamba by default. You can try Rattler now with --solver=rattler, or make it your default with:

conda config --set solver rattler

Libmamba will remain available. To keep using it, run conda config --set solver libmamba. Please report problems with Rattler in the conda-rattler-solver issue tracker.

Special Announcement

Automatic pip installation will change in a future release. Conda 26.9 still installs pip alongside Python by default. This behavior becomes deprecated in 27.3, and the default changes in 27.9.

If an environment needs pip, request it explicitly:

conda create --name myenv python pip

To keep automatic installation, run conda config --set add_pip_as_python_dependency true. The setting itself will remain supported. See the rollout schedule for details.

Special Announcement

Native Windows ARM64 launchers are here. Conda 26.9 uses signed ARM64 executables for Python command-line entry points in win-arm64 environments and checks their SHA-256 hashes before installation. It also fixes a Windows ARM64 upgrade problem that could leave those commands missing. conda-build 26.9 uses the published launchers when building Windows packages too.

If you already have conda-self installed, update conda with:

conda self update

Otherwise, install this release with:

conda install --name base conda=26.9.0
  • --exclude-newer lets you exclude package records newer than a date or age cutoff, with channel and package overrides. Use --solver=classic with conda create, conda install, or conda update in conda 26.9.0. Support in the libmamba and Rattler plugins is still being developed. Configured cutoffs also apply to conda search. Conda prefers channel index timestamps, falls back to build timestamps, and leaves records without usable timestamps eligible. This is not a guaranteed delay after publication. See the usage guide.
  • Conda starts faster by loading only the command parsers it needs. Wildcard searches on sharded channels are faster too, because they skip records for package names that cannot match.
  • conda plugins list and conda plugins info show installed plugins and their metadata, including disabled plugins.
  • conda doctor --fix repairs missing or altered files more reliably. On macOS ARM64, code signing no longer causes false reports of altered files.
  • Replacing an existing environment with conda env create now requires --yes or the always_yes setting.
  • conda config --clear KEY empties a list-valued setting, such as a channel list.

September is also a deprecation release. Plugin authors should import types from conda.plugins.types instead of conda.plugins. Environment files whose format cannot be detected no longer fall back automatically to the environment.yml reader. Select it explicitly with --format=environment.yml when needed. The full release notes list the API removals and replacements.

A known issue in 26.9.0 can cause extraction to fail with Invalid data stream when .conda and .tar.bz2 archives coexist in the cache. The fix for the 26.9 branch is merged and tracked for 26.9.1.

Full changelog: 26.9.0

Changes in conda-build 26.9.0​

conda install --name base conda-build=26.9.0
  • Packages built from v1 recipes can now be tested, including downstream tests. v1 builds also respect --croot, conda_build.root-dir, and legacy conda_build_config.yaml syntax.
  • Windows entry points use conda-launchers for the target architecture, with checksum verification. conda-build now requires conda 26.1 or newer.
  • SP_DIR follows the installed Python package's site-packages metadata. This fixes paths for free-threaded Python and the new Windows Python 3.15 layout.
  • Exact pin_subpackage() references keep the final build ID, including dependency hashes. conda-build --output also respects --variants.
  • Package names are checked against CEP 26. A directory containing both meta.yaml and recipe.yaml is rejected instead of leaving the recipe choice ambiguous.
  • REQUESTS_CA_BUNDLE can be set through build variants. An unset environment variable is no longer passed to build scripts as an empty value that can break TLS clients.

The recipe keys build/missing_dso_whitelist and build/runpath_whitelist are now deprecated and will be removed in 27.3. Use build/missing_dso_allowlist and build/runpath_allowlist instead.

Full changelog: 26.9.0

Changes in conda-pypi 0.12.0 / 0.13.0​

conda-pypi has dropped its beta label. The installation guide covers installing supported pure Python wheels through conda install and requires conda 26.9 or newer for that workflow.

These releases reduce startup imports and fix dependency extras and wheel metadata when restoring environments from explicit files or lockfiles. conda pypi convert preserves wheel build numbers and accepts --build-number. Installing package specs with conda pypi install is pending deprecation. Editable installs remain supported.

Full changelogs: 0.12.0, 0.13.0

Changes in constructor 3.17.0 through 3.17.3​

constructor can build native Windows ARM64 installers. Windows installation-directory permission setup is faster, and info.json records more installer metadata and checksums.

The 3.17.1, 3.17.2, and 3.17.3 patches fix Windows command lookup, MSI uninstall after package-cache cleanup, and an unintended Pydantic runtime dependency. constructor now requires conda 24.1 or newer.

Full changelogs: 3.17.0, 3.17.1, 3.17.2, 3.17.3

Changes in conda-rattler-solver 0.2.0​

The Rattler solver remains an opt-in beta, now bundled with conda 26.9. It respects flexible channel priority, reads v3 records from sharded channels, and handles dependency extras. Updates avoid downgrading packages and retain installed packages that are no longer available from configured channels. conda update --all keeps Python within its existing major and minor version.

This release uses py-rattler 0.26. Its conda packages require Python 3.11 or newer. See New features to try for how to enable it.

Full changelog: 0.2.0

Changes in py-rattler 0.26.0 / 0.27.0​

py-rattler 0.26 adds reverse-dependency queries, configuration-file support, and sparse reads of remote package archives. Wheels are now available for Windows ARM64 and Linux RISC-V. Version 0.27 adds optional Sigstore verification before installation and exposes the verified signing provenance to callers.

Both releases include Python API changes, detailed in their release notes. conda-rattler-solver 0.2.0 requires py-rattler <0.27, so its users should let conda select the compatible version.

Full changelogs: 0.26.0, 0.27.0

Changes in grayskull 3.2.0​

grayskull now generates v1 recipes by default for PyPI and CRAN packages. Use --no-use-v1-format if you still need a v0 meta.yaml recipe. This release also improves PEP 639 license metadata and Python-version handling in noarch v1 recipes.

Full changelog: 3.2.0

Changes in conda-spawn 0.2.0​

conda shell is now an alias for conda spawn, which opens a shell in a conda environment. The release fixes activation in PowerShell sessions, ensures Fish and Xonsh activation finishes before the first prompt, and preserves login startup files and logout behavior in POSIX shells.

Full changelog: 0.2.0

Other releases​

  • conda-self 0.3.0 can update dependencies of the requested package and checks snapshot archives before modifying an environment. The ambiguous --snapshot installer choice is replaced by installer-exact and installer-updated.
  • conda-index 0.13.0 removes the experimental label from sharded-index and database options and fixes PostgreSQL run-export handling.
  • conda-package-handling 2.6.0 opens each .conda ZIP archive only once during extraction and makes custom exceptions serializable between processes.
  • conda-lockfiles 0.2.2 preserves explicit build numbers when exporting and reading rattler-lock v6 files.
  • conda-recipe-manager 0.10.6 preserves Jinja templates when fixing ambiguous variables and improves duplicate-key errors.
  • conda-pycosat-solver 0.1.0 is the first separate plugin release of the classic solver. conda 26.9 still ships its own classic solver.

We ❤️ our community​

Thank you to everyone who contributed to these releases. Welcome to the first-time contributors to these projects: