Files
git.stella-ops.org/docs/ops/binary-prereqs.md

1.9 KiB

Binary Prerequisites & Offline Layout

Layout (authoritative)

  • .nuget/packages/ — NuGet package cache (configured via nuget.config globalPackagesFolder).
  • devops/manifests/ — binary integrity manifests (e.g., binary-plugins.manifest.json).
  • devops/offline/feeds/ — air-gap bundles (tarballs, OCI layers, SBOM packs) registered in manifest.json.
  • Module-owned binaries (currently plugins/, tools/, deploy/, ops/) are tracked for integrity in devops/manifests/ until relocated.

Adding or updating NuGet packages

  1. Run dotnet restore which populates .nuget/packages/ per the sources in nuget.config.
  2. Never add new feeds to nuget.config without review; the configured sources are nuget.org and stellaops (internal feed).
  3. For offline builds, pre-populate .nuget/packages/ from a network-connected machine, then copy to the air-gapped environment.

Adding other binaries

  1. Prefer building from source; if you must pin a binary, drop it under devops/offline/ and append an entry with SHA-256, origin URL, version, and intended consumer.
  2. For module-owned binaries (e.g., plugins), record the artefact in devops/manifests/binary-plugins.manifest.json until it can be rebuilt deterministically as part of CI.

Automation & Integrity

  • Run scripts/update-binary-manifests.py to refresh manifests after adding binaries.
  • Run scripts/verify-binaries.sh locally; CI executes it on every PR/branch to block binaries outside approved roots.
  • CI also re-runs the manifest generator and fails if the manifests would change—commit regenerated manifests as part of the change.
  • NuGet restore uses .nuget/packages/ as configured in nuget.config. Clean by removing .nuget/packages/ if needed.
  • For offline enforcement, set OFFLINE=1 (CI should fail if it reaches nuget.org without ALLOW_REMOTE=1).

Housekeeping

  • Refresh manifests when binaries change and record the update in the current sprint's Execution Log.