Standards

S002 — Build Versioning

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

S002 — Build Versioning (v2026-09-30T092158Z-5e473105f4) 2026-09-30 | Immutable {ISO}Z-{git_short} version per build. 1 - Generate Version - Generates the build version generate_version.py get_git_commit() generate_version() write_version_file(version) .release/VERSION 2026-09-23T181609Z-2cea710001 git commit hash 2 - Embed Version - Embeds version into build artifacts daemon.spec a.datas += [('.release/VERSION', '.')] inject-version.js read .release/VERSION inject into build output electron-builder.yml extraMetadata: {version: ${VERSION}} version string version string 3 - Publish Version - Publishes version to bus service_base.py self.mqtt.publish('kv/service/{self.service_name}/identity', json.dumps(...)) _heartbeat_loop() kv/service/+/identity service: daemon version: 2026-09-23T181609Z-2cea710001 role: healthy timestamp: int(time.time()) status: healthy version string 1. Generate version 2. Write to VERSION file 3. Embed in daemon.spec 4. Inject into npm build 5. Configure electron-builder 6. Publish to MQTT MQTT publish payload { "service": "daemon", "version": "2026-09-23T181609Z-2cea710001", "role": "healthy", "timestamp": 1695472569, "status": "healthy" } The version is generated once at build time and never changes. 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 As of 2026-09-30 09:21 UTC, from commit 5e47310

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-09-30T092158Z
From commit
5e473105f4
Updated
30 Sep 2026, 09:21 UTC
Sources at
5e47310
Watches
5 paths
  • .release/VERSION
  • .release/generate_version.py
  • daemon/docs/standards/BUILD_VERSIONING.md
  • daemon/src/build_version.py
  • daemon/src/bounded_git.py