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:
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.