1.9 KiB
1.9 KiB
Binary Prerequisites & Offline Layout
Layout (authoritative)
.nuget/packages/— NuGet package cache (configured vianuget.configglobalPackagesFolder).devops/manifests/— binary integrity manifests (e.g.,binary-plugins.manifest.json).devops/offline/feeds/— air-gap bundles (tarballs, OCI layers, SBOM packs) registered inmanifest.json.- Module-owned binaries (currently
plugins/,tools/,deploy/,ops/) are tracked for integrity indevops/manifests/until relocated.
Adding or updating NuGet packages
- Run
dotnet restorewhich populates.nuget/packages/per the sources innuget.config. - Never add new feeds to
nuget.configwithout review; the configured sources arenuget.organdstellaops(internal feed). - For offline builds, pre-populate
.nuget/packages/from a network-connected machine, then copy to the air-gapped environment.
Adding other binaries
- 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. - For module-owned binaries (e.g., plugins), record the artefact in
devops/manifests/binary-plugins.manifest.jsonuntil it can be rebuilt deterministically as part of CI.
Automation & Integrity
- Run
scripts/update-binary-manifests.pyto refresh manifests after adding binaries. - Run
scripts/verify-binaries.shlocally; 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 innuget.config. Clean by removing.nuget/packages/if needed. - For offline enforcement, set
OFFLINE=1(CI should fail if it reachesnuget.orgwithoutALLOW_REMOTE=1).
Housekeeping
- Refresh manifests when binaries change and record the update in the current sprint's Execution Log.