Standards

S002 — Build Versioning

Immutable {ISO}Z-{git_short} version per build.

S002 — Build Versioning (v2026-08-02T101544Z-ab2bbdebf5) 2026-08-01 | Immutable {ISO}Z-{git_short} version per build. 1 - Version Generation generate_version.py get_git_commit() generate_version() write_version_file() 2 - Embedding in Services PyInstaller (daemon.spec) daemon.spec npm build script package.json:build inject-version.js electron-builder electron-builder.yml version string 3 - Publishing to Bus ServiceBase startup() _load_build_version() mqtt.publish() 1. generate_version.py ge… 2. Writes version to .rel… 3. Embeds version in daem… 4. npm build script injec… 5. electron-builder uses… 6. ServiceBase loads vers… 7. Publishes identity mes… Version string example 2026-05-23T074530Z-a3f8e2c MQTT identity message {"service": "daemon", "version": "2026-05-23T074530Z-a3f8e2c", "role": "worker", "timestamp": 1684800000, "status": "hea… 5 of 9 identifiers appear only in design docs, not in code — this shows SPECIFIED behaviour, not verified implementation. The build script generates the version string once per build. Legend actor = initiates work · process = code path · store = state on disk · bus = durable queue · dashed = separate process cyan = request flow · pink = state read/write · dashed green = pull / return path · red = refusal

Provenance

This drawing is generated, not drawn. It is rebuilt from the source files below, so when they change the picture changes — a diagram here cannot quietly describe a system that no longer works this way.

Owner
Standards
Slug
s002-build-versioning
Rendered
2026-08-02T101544Z
From commit
ab2bbdebf5
Watches
3 paths
  • .release/VERSION
  • .release/generate_version.py
  • daemon/docs/standards/BUILD_VERSIONING.md