Configuration#
Build-Time Configuration#
conda-express is a downstream distribution built by
conda-ship. The package set is maintained in
the runtime source environment in pyproject.toml, and
[tool.conda-ship] tells conda-ship which solved environment becomes the
runtime:
[tool.conda-ship]
runtime-name = "cx"
runtime-version = { from = "project-metadata" }
delegate-executable = "conda"
artifact-layout = "online"
source-environment = "runtime"
exclude-packages = ["conda-libmamba-solver"]
docs-url = "https://jezdez.github.io/conda-express/"
install-scheme = "conda-home"
install-name = "express"
The release workflows override artifact-layout and artifact-name:
artifact-layout = "online"withartifact-name = "cx"buildscxartifact-layout = "embedded"withartifact-name = "cxz"buildscxz
The source environment is solved and locked by Pixi. conda-ship derives the runtime lock from that committed source lock rather than accepting ad hoc package and channel lists in the workflow. See source locks and runtime locks for the generic distinction between project input and runtime output.
Note
This page documents conda-express’s distribution configuration. To build a different runtime, use conda-ship’s configuration reference instead of copying conda-express’s defaults.
Runtime Package Set#
The runtime source environment installs:
Package |
Role |
|---|---|
|
Python runtime for conda |
|
Package manager |
|
Default solver |
|
Subshell activation |
|
Shell completion for |
|
Ephemeral package execution and PEP 723 script workflows |
|
PyPI interoperability |
|
Base environment self-management and reset |
|
Global tool environments |
|
Workspace manifests and tasks |
conda-libmamba-solver is excluded from the derived runtime lock because
conda-express uses conda-rattler-solver.
Versioning Policy#
conda-express release versions follow the exact conda package version in the
runtime lock. A 26.5.2.post4 conda-express release bootstraps
conda 26.5.2 on every supported platform.
Use .postN releases for conda-express-only rebuilds that keep the same conda
runtime package, for example 26.5.2.post1.
See Features for why the distribution version follows the conda runtime version.
Install Location#
The stamped install scheme is conda-home and the install name is express.
That makes the default install path:
~/.conda/express
Users can override the install path for a command with the runtime-level
--path option:
cx --path /opt/cx bootstrap
cx --path /opt/cx status
--path is intentionally a runtime option, not build configuration. The
published cx binary stays cross-platform while advanced users, CI jobs, and
installer smoke tests can choose a local path at runtime.
conda-ship owns the generic install scheme behavior and runtime ownership
metadata. See
install locations and ownership
for the builder-level rules behind conda-home, user-data, install names,
and prefix ownership checks.
Runtime Metadata#
Generated conda-ship runtimes write ownership metadata into each managed
install path. cx status, cx bootstrap --force, and cx uninstall use that
metadata to avoid taking over or deleting unrelated conda installations.
Bootstrap also writes standard conda prefix metadata:
conda-meta/historyconda-meta/initial-state.explicit.txt
history lets conda recognize ~/.conda/express as an environment. The
initial-state file records the exact packages installed from the stamped
runtime lock, including package URLs and checksums. The included conda-self
plugin can use that snapshot to reset the managed base prefix to the shipped
package set:
cx self reset --snapshot installer-exact
The managed base environment is also protected with a CEP 22 frozen marker after bootstrap. Day-to-day work should happen in named environments:
cx create -n analysis python=3.12 numpy pandas
cx shell analysis
Runtime Environment Variables#
These environment variables control bootstrap behavior at runtime. They are useful in native installer post-install scripts, container builds, and CI pipelines.
Variable |
Effect |
|---|---|
|
Bundle directory containing |
|
Disable network access during bootstrap when set to any truthy value, equivalent to |
CX_BUNDLE=/Library/Application\ Support/cx/packages CX_OFFLINE=1 cx bootstrap
For custom package sets or new binary distributions, use conda-ship directly instead of treating this repository as a generic builder.