Skip to content

Bump a package version

Most recipes track upstream tags via Renovate. A weekend cron opens a PR per upstream release; review the diff, merge if CI is green, and the new build flows to prefix.dev/ship.

Renovate-managed recipes

The customManagers in renovate.json cover three patterns:

  • GitHub tags via archive/refs/tags/v<X>.tar.gz URLs.
  • GitHub tags via templated context.version + archive/ URLs.
  • GitLab CERN tags via templated context.version + archive/ URLs.

If you copy a sibling recipe (Add a new recipe) its source URL will already match one of these patterns and Renovate will pick it up automatically.

When Renovate opens a PR, check that:

  • build.number was reset to 0. Renovate doesn't reset it; you may need to edit the PR.
  • source.sha256 was bumped. Renovate doesn't refresh hashes for every pattern; if the PR fails to build with a hash mismatch, copy the expected SHA from the rattler-build error and push it.

Dev twins and [package].version

Some artifacts outside ship-conda-recipes mirror release recipes for the developer workflow and must be bumped in the same breath:

  • the [package].version in the source repo's pixi.toml (data-model, Geometry, geometry_service) — source-built dev packages must carry the released version or run_exports pins stop resolving;
  • field_service/recipe/recipe.yaml — dev twin of recipes/field-service/recipe.yaml;
  • ship-conda-recipes/recipes-dev/phlex/ — dev twin of the conda-forge phlex feedstock recipe.

Branch-pinned recipes (manual)

A few recipes pin a branch or commit instead of a release tag. These are disabled in renovate.json:

  • SHiP/FairShip
  • ShipSoft/data-model
  • ShipSoft/geometry_service
  • SND-LHC/pythia6
  • luketpickering/ROOTEGPythia6

To bump one:

  1. Edit recipes/<pkg>/recipe.yaml:
  2. context.version — the new short SHA or branch name.
  3. source.url — point at the new commit (archive/<sha>.tar.gz).
  4. source.sha256 — recompute.
  5. Bump build.number if the upstream change doesn't change the version string but should produce a fresh package.
  6. Open a PR.

ABI rebuilds across the channel

When an ABI break lands in an upstream conda-forge package (root major version, geant4 major version, libstdcxx, etc.):

  1. Bump build.number on every recipe that links the affected library. The current build numbers serve as the rebuild signal.
  2. Trigger workflow_dispatch on build.yml. The --skip-existing=all flag will pick up the bumped build numbers as new packages to build and skip the rest.

For a smaller, targeted rebuild of a single recipe, use the recipe and force inputs to workflow_dispatch (see CI workflows and secrets).