feat(package): publish semver sidecar alongside each agent binary #116

Merged
David merged 2 commits from feat/VA-114-version-sidecar into main 2026-07-06 02:36:04 +02:00
Member

Publish a small, machine-readable .version sidecar next to each binary in the generic package so the vervain-server fetcher, which runs on a different arch and cannot execute the binary, can read the exact semver without byte-scanning the binary's rodata.

A new step writes out/vervainagent-6.version and out/<ARTIFACT_NAME>.version, each containing steps.version.outputs.value (the resolved git describe semver from oci-build/get-version.nu) as a single line. Both sidecars are added to the $files upload list, so they publish to the pinned, stable, and latest coordinates exactly like the existing .sig files via upload_immutable / upload_moving.

The sidecar is unsigned metadata; the binary's integrity remains covered by the existing age/XEdDSA signature and SHA-256 checksum, which are unchanged. The sidecar content equals the binary's built-in version::VERSION because build.rs mirrors the same git describe --tags --always --long logic as get-version.nu.

#VA-114

Publish a small, machine-readable `.version` sidecar next to each binary in the generic package so the vervain-server fetcher, which runs on a different arch and cannot execute the binary, can read the exact semver without byte-scanning the binary's rodata. A new step writes `out/vervainagent-6.version` and `out/<ARTIFACT_NAME>.version`, each containing `steps.version.outputs.value` (the resolved `git describe` semver from oci-build/get-version.nu) as a single line. Both sidecars are added to the `$files` upload list, so they publish to the pinned, `stable`, and `latest` coordinates exactly like the existing `.sig` files via `upload_immutable` / `upload_moving`. The sidecar is unsigned metadata; the binary's integrity remains covered by the existing age/XEdDSA signature and SHA-256 checksum, which are unchanged. The sidecar content equals the binary's built-in `version::VERSION` because build.rs mirrors the same `git describe --tags --always --long` logic as get-version.nu. #VA-114
feat(package): publish semver sidecar alongside each agent binary
Some checks failed
Check / fmt + clippy + tests (pull_request) Has been cancelled
20ead95b29
Publish a small, machine-readable `.version` sidecar next to each binary in the generic package so the vervain-server fetcher, which runs on a different arch and cannot execute the binary, can read the exact semver without byte-scanning the binary's rodata.

A new step writes `out/vervainagent-6.version` and `out/<ARTIFACT_NAME>.version`, each containing `steps.version.outputs.value` (the resolved `git describe` semver from oci-build/get-version.nu) as a single line. Both sidecars are added to the `$files` upload list, so they publish to the pinned, `stable`, and `latest` coordinates exactly like the existing `.sig` files via `upload_immutable` / `upload_moving`.

The sidecar is unsigned metadata; the binary's integrity remains covered by the existing age/XEdDSA signature and SHA-256 checksum, which are unchanged. The sidecar content equals the binary's built-in `version::VERSION` because build.rs mirrors the same `git describe --tags --always --long` logic as get-version.nu.

#VA-114
Merge branch 'main' into feat/VA-114-version-sidecar
All checks were successful
Check / fmt + clippy + tests (pull_request) Successful in 26m36s
Create release / Create release from merged PR (pull_request) Has been skipped
df2cef6caa
David scheduled this pull request to auto merge when all checks succeed 2026-07-06 02:09:35 +02:00
David merged commit cc365cef9f into main 2026-07-06 02:36:04 +02:00
David deleted branch feat/VA-114-version-sidecar 2026-07-06 02:36:05 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/vervain-agent!116
No description provided.