Pixi

Git dependency freshness

reprotrail pixi check-git-freshness checks whether selected Git-backed Pixi dependencies would move if the lockfile were refreshed. It runs Pixi in dry-run mode and reports only selected Git/source movements; ordinary registry updates and unselected package changes do not make the check stale.

reprotrail pixi check-git-freshness \
  --env downscale \
  --package c4v-utils \
  --package reprotrail \
  --package snippets \
  --package xesmf \
  --package xsdba

The command exits with 0 when selected Git sources are fresh, 1 when one or more selected Git sources would move, and 2 when the Pixi dry run or normalization fails. It does not update pixi.lock or install/update the environment.

Use --manifest-path to point at a specific workspace directory, pyproject.toml, or pixi.toml. Without it, reprotrail uses the current working directory as the Pixi manifest path.

Machine-readable output is available with --json:

reprotrail pixi check-git-freshness \
  --env downscale \
  --package c4v-utils \
  --json

Fresh output has an empty packages list:

{
  "checked_packages": ["c4v-utils"],
  "environment": "downscale",
  "packages": [],
  "status": "fresh"
}

When a selected Git source would move, packages contains normalized source objects with Git URL, commit, and requested revision when Pixi exposes them. This check is separate from dependency epochs: freshness asks whether moving Git refs have advanced, while epochs ask whether the locked runtime has been accepted for a run.