Changelog#

Unreleased#

0.2.0#

Features#

  • Add cx uninstall subcommand — removes the conda prefix, all named environments, the cx binary, and PATH entries from shell profiles. Requires interactive confirmation (or --yes to skip).

  • Add reusable GitHub Action (action.yml) for building custom cx binaries with configurable packages. Use uses: jezdez/conda-express@main with packages, channels, and exclude inputs.

  • Add reusable workflow (.github/workflows/build.yml) that builds custom cx binaries for all 5 platforms via workflow_call.

  • Support build-time environment variable overrides (CX_PACKAGES, CX_CHANNELS, CX_EXCLUDE) in build.rs for custom builds without editing pixi.toml.

  • Add Homebrew formula (Formula/cx.rb) as a same-repo tap. Install with brew tap jezdez/conda-express https://github.com/jezdez/conda-express followed by brew install jezdez/conda-express/cx.

  • Homebrew is now the recommended installation method for macOS and Linux; shell scripts are repositioned as an alternative for CI and Windows.

  • Release workflow automatically updates the Homebrew formula with new version and checksums on each tag push.

Fixes#

  • Fix Homebrew formula update in release workflow — shell variables were not expanded inside the single-quoted Python heredoc, resulting in placeholder checksums.

Documentation#

  • Restructure docs following the Diataxis framework (tutorials, how-to guides, reference, explanation).

  • Add GitHub Action reference page (docs/reference/github-action.md).

  • Add custom builds how-to guide (docs/guides/custom-builds.md).

  • Add sphinx-design enhancements: badges on Action inputs, dropdowns for CLI output examples, octicon icons on landing page cards.

  • Consolidate installation tabs (merge PyPI and crates.io into one tab).

0.1.7#

Internal#

  • Fix release workflow to fall back to gh release upload when release already exists

0.1.6#

Fixes#

  • Fix PyPI wheel versioning — use dynamic version from Cargo.toml instead of a hardcoded version in pyproject.toml

  • Remove Windows ARM64 (aarch64-pc-windows-msvc) target (conda not available on conda-forge for win-arm64)

0.1.5#

Features#

  • Use clap’s built-in help system for cx help and cx --help instead of hand-crafted output — cx help bootstrap now works automatically

  • Add cx shell as a proper clap subcommand (alias for conda spawn)

  • Replace misleading conda activate hints after cx create / cx env create with cx shell guidance via output filtering

  • Rename cx info to cx status so cx info passes through to conda info

  • Add get-cx.sh (macOS/Linux) and get-cx.ps1 (Windows) installer scripts served from GitHub Pages

Documentation#

  • Add installer reference page (docs/reference/installer.md)

  • Improve GitHub Releases install instructions with platform tables and one-liner commands

  • Add installer script as the recommended installation method

  • Fix binary size references (~10 MB → ~17 MB)

  • Fix copyright year to 2026

  • Correct GitHub URLs and workflow references throughout

Internal#

  • Extract ensure_bootstrapped() helper to deduplicate auto-bootstrap logic

  • Move installer scripts to scripts/ directory

  • Serve installer scripts from GitHub Pages instead of raw.githubusercontent

  • Move changelog to repo root with symlink into docs

  • Add rust-cache to wheel and crates.io publish jobs

0.1.3#

Changes#

  • Consolidated release, PyPI, and crates.io publishing into a single workflow triggered on tag push

  • Fixed GitHub Release asset upload (immutable releases compatibility)

  • Fixed manylinux compliance for Linux PyPI wheels

  • Fixed Windows checksum generation (sha256sum instead of shasum)

0.1.2#

First published release.

Features#

  • Single-binary conda bootstrapper powered by rattler

  • Compile-time lockfile (rattler-lock v6) for deterministic bootstraps

  • Post-solve exclusion of conda-libmamba-solver and 27 native dependencies

  • conda-rattler-solver as default solver

  • conda-spawn activation model with cx shell alias

  • Disabled activate, deactivate, and init commands

  • Auto-bootstrap on first conda command

  • CEP 22 frozen base prefix protection

  • PyPI distribution via maturin platform wheels (pip install conda-express)

  • crates.io distribution (cargo install conda-express)

  • Trusted publishing (OIDC) for both PyPI and crates.io

  • Sphinx documentation with conda-sphinx-theme, published to GitHub Pages

CI/CD#

  • Multi-platform builds: linux-x64, linux-aarch64, macos-x64, macos-arm64, windows-x64

  • All GitHub Actions pinned to commit SHAs

  • Swatinem/rust-cache for faster CI builds

  • Checked-in cx.lock eliminates network solve in CI

  • Thin LTO and parallel codegen for faster release builds

  • GitHub Pages deployment for documentation