Harmonize versions from a single VERSION file (#83) #86

Merged
albert merged 2 commits from u/albert/83/harmonize-versions into main 2026-07-04 15:26:22 +00:00
Owner

The version string 0.1.0 was hardcoded in five independent places: the
Cargo workspace, the excluded shepherd-firewall-bpf crate, the webui
package.json/lock, the Android versionName, and scripts/shepherd.

Introduce a repo-root VERSION file as the single canonical source:

  • scripts/shepherd and companion-android's Gradle build read it directly,
    so they can never drift.
  • Cargo and npm can't read a file at manifest-parse time, so their literals
    are written from VERSION by shepherd version set and verified against it
    by shepherd version check, which a new lightweight CI job runs.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01PS1JAJm78UH8x8PK1FdK41

Fixes #83

The version string 0.1.0 was hardcoded in five independent places: the Cargo workspace, the excluded shepherd-firewall-bpf crate, the webui package.json/lock, the Android versionName, and scripts/shepherd. Introduce a repo-root VERSION file as the single canonical source: * scripts/shepherd and companion-android's Gradle build read it directly, so they can never drift. * Cargo and npm can't read a file at manifest-parse time, so their literals are written from VERSION by `shepherd version set` and verified against it by `shepherd version check`, which a new lightweight CI job runs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PS1JAJm78UH8x8PK1FdK41 Fixes #83
Harmonize versions from a single VERSION file (#83)
All checks were successful
CI / Version harmony (pull_request) Successful in 5s
CI / ShellCheck (pull_request) Successful in 8s
CI / CI image (pull_request) Successful in 24s
CI / CI image (Android) (pull_request) Successful in 35s
CI / Rustfmt (pull_request) Successful in 7s
CI / Test (pull_request) Successful in 4m18s
CI / Build (pull_request) Successful in 4m31s
CI / E2E (pull_request) Successful in 4m52s
CI / Android portability (shepherd-media-core) (pull_request) Successful in 38s
CI / Clippy (pull_request) Successful in 5m15s
CI / Firewall E2E (pull_request) Successful in 5m0s
CI / Android companion (unit tests) (pull_request) Successful in 1m34s
0f62d2775b
The version string 0.1.0 was hardcoded in five independent places: the
Cargo workspace, the excluded shepherd-firewall-bpf crate, the webui
package.json/lock, the Android versionName, and scripts/shepherd.

Introduce a repo-root VERSION file as the single canonical source:

  * scripts/shepherd and companion-android's Gradle build read it directly,
    so they can never drift.
  * Cargo and npm can't read a file at manifest-parse time, so their literals
    are written from VERSION by `shepherd version set` and verified against it
    by `shepherd version check`, which a new lightweight CI job runs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PS1JAJm78UH8x8PK1FdK41
bump to 0.2.0
All checks were successful
CI / Version harmony (pull_request) Successful in 5s
CI / ShellCheck (pull_request) Successful in 8s
CI / CI image (pull_request) Successful in 24s
CI / CI image (Android) (pull_request) Successful in 35s
CI / Rustfmt (pull_request) Successful in 7s
CI / Firewall E2E (pull_request) Successful in 4m37s
CI / Android portability (shepherd-media-core) (pull_request) Successful in 36s
CI / Android companion (unit tests) (pull_request) Successful in 35s
CI / Build (pull_request) Successful in 11m55s
CI / Clippy (pull_request) Successful in 12m41s
CI / E2E (pull_request) Successful in 12m51s
CI / Test (pull_request) Successful in 12m53s
b9f6392feb
The BLE management UI and API cleaned up the API, but in doing so, made
it incompatible with previous users of the IPC and HTTP APIs
albert merged commit 35471031fb into main 2026-07-04 15:26:22 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
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
albert/shepherd-launcher!86
No description provided.