Roadmap#
cs is focused on the generic build system for single-binary conda
runtimes.
The builder CLI covers the core local workflow:
cs inspect: preflight the selected manifest, lockfile, source environment, exclusions, and package setcs build: stage anonline,external, orembeddedruntimecs run: build and execute a local runtime for smoke testingcs package-update: wrap one finalized runtime executable in a native update package
Every staged build writes the runtime plus artifact metadata: the runtime
lock, a package list, a CycloneDX SBOM, an info JSON file, and SHA256 checksums.
cs build --dry-run validates planned artifact work without writing files.
Generated runtime behavior lives in cs-template. This includes automatic
bootstrap and executable updates when the runtime has update configuration.
Downstream projects choose their own package sets and distribution defaults.
The repository stays focused on producing runtimes. Distribution wrappers such as Homebrew formulae, constructor-based installers, Docker images, or enterprise package manager recipes live outside the core builder.
Experimental Fleet API#
Fleet is an experimental Rust API. The Cargo feature that enables it is
fleet. It lets orchestrators manage multiple locked conda prefixes while
reusing conda-ship package installation, metadata, offline bundle code, shared
package cache, prefix mutation locking, and interrupted-install recovery.
Stamped runtime artifacts remain the primary conda-ship output.
The API installs, lists, inspects, and removes prefixes using locks supplied by the caller. It also returns command and shim plans. Callers provide their own catalog, solver, launchers, shell setup, and update or repair workflows.
See fleet concepts and the API reference.
Manifest And Plugin Work#
conda-ship supports conda-workspaces project input for downstream distribution builds:
conda.tomlis the primary conda-workspaces manifest.conda.lockis the matching source lockfile.pyproject.tomlwith nonempty[tool.conda.workspace]usesconda.lock.pixi.tomlorpyproject.tomlwith nonempty[tool.pixi.workspace]usespixi.lock.[tool.conda-ship].source-environmentchooses which solved environment becomes the runtime.[tool.conda-ship].runtime-namenames the generated runtime.[tool.conda-ship].delegate-executablechooses which executable receives every argument after automatic bootstrap.[tool.conda-ship].exclude-packagesrecords post-solve pruning policy.Package and channel settings come from conda workspace sections when
conda.tomlis available.conda-shipprovides aconda shipadapter while preservingcsas the primary CLI.
The packaged builder path now uses release-published runtime templates, so
installed cs build and conda ship build can stamp downstream
runtimes without a conda-ship source checkout.
Current follow-up work is mostly distribution hardening:
add richer provenance examples for package-manager specific release workflows
keep builds based on committed manifests and lockfiles, with package and channel changes made in the manifest
keep full Windows ARM64 conda runtime bootstrap coverage behind the regular canary until the conda package ecosystem has enough stable
win-arm64runtime coverage