Skip to content

Packaging

SHiP distributes its software stack as conda packages on the prefix.dev/ship channel. Packages that aren't on conda-forge are built from recipes in ShipSoft/ship-conda-recipes; everything else is pulled directly from conda-forge.

Downstream repos (FairShip, aegir, geometry, geometry_service) consume the channel via their pixi.toml:

channels = ["https://prefix.dev/ship", "conda-forge"]

Flow

upstream sources (GitHub / GitLab CERN tags)
ship-conda-recipes/recipes/<pkg>/recipe.yaml
        │   rattler-build build --recipe-dir recipes/
ship-conda-recipes/output/{linux-64,noarch}/*.conda
        │   rattler-build upload prefix -c ship
prefix.dev/ship channel
downstream repo's pixi.toml  →  developer / CI environment

Maintainer tasks

For building unreleased package versions during development (source dependencies, local channels), see the Developer Guide — releases themselves always flow through the recipes here.

Channel snapshot

A weekly job in ship-conda-recipes writes the current channel contents to channel-snapshot.md. The diff between snapshots doubles as a changelog and surfaces accidental publishes.

Scope

ship-conda-recipes hosts only packages that aren't (yet) on conda-forge. When an upstream candidate lands on conda-forge, the local recipe is dropped — see for example ShipSoft/ship-conda-recipes#23 for the faircmakemodules migration.