Skip to main content

Conda plugin entry point for the conda-ship runtime builder.

Project description

conda-ship

CI Docs zizmor License Python: 3.10+

Build ready-to-run conda runtimes from solved conda environments.

conda-ship is a generic builder for single-binary conda runtimes. It provides the cs builder CLI, the cs-template generic runtime template, a composite GitHub Action, and an optional Python adapter that exposes conda ship inside conda.

The project is currently alpha and pre-1.0. The split from conda-express is now explicit: conda-ship owns the reusable build/runtime machinery, while downstream distributions own their package sets, runtime names, release channels, installer wrappers, and user documentation. conda-express is one downstream distribution maintained by Jannis Leidel; it uses conda-ship to publish the cx and cxz runtimes.

What It Builds

conda-ship stages a runtime binary plus release metadata:

  • .runtime.lock: the lockfile stamped into the runtime
  • .packages.txt: tab-separated package records for quick inspection
  • .info.json: artifact metadata for release tooling
  • .sha256: checksums for staged files
  • optional .bundle.tar.zst: compressed package archives for offline builds

The runtime itself has a small management surface: bootstrap, status, shell, and uninstall. Other commands pass through to the configured delegate executable after bootstrap, usually conda.

Artifact Layouts

Layout Output Bootstrap behavior
online <runtime> Downloads packages from the stamped runtime lock.
external <runtime> plus <runtime>.bundle.tar.zst Uses a separate package bundle for offline-capable installs.
embedded <runtime>z Embeds the compressed package bundle in one binary.

Project Input

conda-ship builds from an already solved source environment. It does not solve loose matchspecs in the GitHub Action and it does not define a package set of its own.

Supported manifest and lockfile pairs:

  • conda.toml plus conda.lock
  • pyproject.toml with [tool.conda] plus conda.lock
  • pixi.toml plus pixi.lock
  • pyproject.toml with [tool.pixi] plus pixi.lock

The package and channel intent lives in the selected source environment. [tool.conda-ship] only records conda-ship build policy:

[tool.conda-ship]
runtime = "demo"
delegate = "conda"
layout = "online"
source-environment = "ship"
exclude = ["conda-libmamba-solver"]

The selected source environment must include the runtime contract packages: conda, conda-rattler-solver, and conda-spawn.

Local Workflow

Packaged builds find cs-template next to the installed cs executable. Use --template only for an explicit template path, custom packaging, or cross-builds.

cs inspect
cs build --dry-run
cs build
cs build --layout embedded
cs run -- --path /tmp/demo-smoke bootstrap

cs inspect is the preflight command. It derives the runtime lock, validates the selected source environment, applies package exclusions, and prints the package set without writing artifacts.

GitHub Actions

The repository root is also a composite GitHub Action for downstream release jobs:

- uses: jezdez/conda-ship@0.1.0
  id: cs
  with:
    layout: embedded

The action expects a committed manifest and matching lockfile. It downloads the tagged cs, cs-template, and SHA256SUMS release assets for the runner, verifies their GitHub Artifact Attestations, checks the release checksums, runs cs build --dry-run, and then stages the runtime into a dist-path output.

Use release tags for release builds. Branch refs do not have matching conda-ship release assets.

Packaging

conda-ship is not an OS installer generator. It does not target .sh, .pkg, or .msi output directly. It produces runtimes that can be distributed as GitHub Release assets or wrapped by Homebrew, constructor, Docker, enterprise packaging systems, and other release tooling.

The PyPI package and conda package install the cs builder, the cs-template runtime template, and the Python adapter together. The adapter makes conda ship a shortcut for the same builder when installed in a conda environment; it does not make conda-ship part of conda itself.

What Belongs Downstream

Downstream distributions decide:

  • runtime names and delegates
  • package sets and channels
  • package exclusions
  • install schemes and install names
  • documentation URLs
  • release channels and installers
  • signing, SBOM, and in-toto provenance for final artifacts

conda-ship verifies the inputs it consumes and the package archives it stages or installs, but downstream release systems should sign and attest the final runtime artifacts after cs build.

Documentation

Full documentation is available at jezdez.github.io/conda-ship.

Useful starting points:

Development

pixi install
pixi run test
pixi run lint
pixi run -e test pytest
pixi run docs

Run cargo generate-lockfile after changing Cargo metadata and pixi lock after changing pixi metadata.

License

BSD-3-Clause

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

conda_ship-0.1.0.tar.gz (90.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

conda_ship-0.1.0-py3-none-win_amd64.whl (7.1 MB view details)

Uploaded Python 3Windows x86-64

conda_ship-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

conda_ship-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

conda_ship-0.1.0-py3-none-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

conda_ship-0.1.0-py3-none-macosx_10_12_x86_64.whl (6.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file conda_ship-0.1.0.tar.gz.

File metadata

  • Download URL: conda_ship-0.1.0.tar.gz
  • Upload date:
  • Size: 90.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for conda_ship-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4e538afb8c4264b54db045b604f609c264a0b3c56ba2bf6463406cf0270e7d3c
MD5 4c42e36cb418aed06e977916ac52c692
BLAKE2b-256 9ab464144ffef4b7b1b478bfb474d026cabc0a4bcc967de567d04833913b6cfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for conda_ship-0.1.0.tar.gz:

Publisher: release.yml on jezdez/conda-ship

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file conda_ship-0.1.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: conda_ship-0.1.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 7.1 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for conda_ship-0.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 baf6fc3b63a2ea42225d95f841835d88356e9187ee5599c53fa2c2faa089fd92
MD5 e3d4a269f5408997f3a04c4c9f47157e
BLAKE2b-256 d7ba9b3c27818efe6eb95f8dd720226a02b8c98ad4b26a2840184584a0d8ae2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for conda_ship-0.1.0-py3-none-win_amd64.whl:

Publisher: release.yml on jezdez/conda-ship

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file conda_ship-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for conda_ship-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 07154c3ee50ed2b8987aa18b1aef00a1de3154dc354f9a32088624fb642efd20
MD5 06d2f2797e854a923a588488b8b78351
BLAKE2b-256 37716eacf756a5ec76ab97a5e3ba4ec0ac9f068ad26ce3a4ecff09c658778b24

See more details on using hashes here.

Provenance

The following attestation bundles were made for conda_ship-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jezdez/conda-ship

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file conda_ship-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for conda_ship-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5b35934dcc29fb8b8aa36a107038fab044ab03364365668facde6f1316359dd1
MD5 e93ed280d5fbd466e577bbc81491269e
BLAKE2b-256 f743e3c437c65f17b20255dbbe7dbbfcac7ac3ac4e2b8f56ef27bc697097d7a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for conda_ship-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jezdez/conda-ship

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file conda_ship-0.1.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for conda_ship-0.1.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e84d0825a9a85a8bfe82b8f58ba6f50e2c2c740fca25e468a33c0a3557a2921e
MD5 729299c94a0df323e3fadf887abd67cb
BLAKE2b-256 e3cec4925a9fb63f24df493bd0c578f0fe03922194b593723ad21c4786ec8f29

See more details on using hashes here.

Provenance

The following attestation bundles were made for conda_ship-0.1.0-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on jezdez/conda-ship

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file conda_ship-0.1.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for conda_ship-0.1.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 968b947570aba81b7e5da89da165f9dffcdb113e72e3c6f8c24a89c3d29a00aa
MD5 2cfc532fc1bed8ed5581b12f884598b9
BLAKE2b-256 058219f9e69cd42d895af85cce3c3d24e44d685587149fc6af87ffdc936ebfee

See more details on using hashes here.

Provenance

The following attestation bundles were made for conda_ship-0.1.0-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yml on jezdez/conda-ship

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page