Skip to content

Comments

chore: enforce git tag version#31

Merged
robinlindh merged 8 commits intodevelopfrom
chore/enforce-git-tag-version
Feb 12, 2026
Merged

chore: enforce git tag version#31
robinlindh merged 8 commits intodevelopfrom
chore/enforce-git-tag-version

Conversation

@tatiesmars
Copy link
Contributor

@tatiesmars tatiesmars commented Jan 23, 2026

Summary

Make compute-node versioning immutable at runtime by enforcing RECONSTRUCTION_VERSION at build time and removing NODE_VERSION as a deploy-time override mechanism.

Why

We want DDS registration to always reflect the version set by CI/tag builds, and prevent accidental or manual runtime overrides via container env vars.

What changed

  • Added a build script for server/rust/bin:
    • Reads RECONSTRUCTION_VERSION at compile time.
    • Accepts vX.Y.Z or X.Y.Z.
    • Normalizes to semver (strips leading v).
    • Fails build if version is not valid semver.
    • Exposes compile-time RECONSTRUCTION_NODE_VERSION.
  • Updated bin/src/main.rs to force cfg.node_version from compile-time RECONSTRUCTION_NODE_VERSION (not runtime env).
  • Added semver as a build-dependency in server/rust/bin/Cargo.toml and updated Cargo.lock.
  • Updated Dockerfiles to pass RECONSTRUCTION_VERSION into the Rust builder stage.
  • Removed runtime ENV NODE_VERSION=... from Docker images.
  • Updated CI non-tag build arg from raw SHA to valid semver metadata:
    • RECONSTRUCTION_VERSION=0.0.0+${{ github.sha }}

Behavior change

  • NODE_VERSION can no longer be used to override DDS-registered node version at runtime.
  • DDS node version now always comes from build-time RECONSTRUCTION_VERSION.

tatiesmars and others added 4 commits January 26, 2026 10:42
Co-authored-by: Oskar <oskar@aukilabs.com>
Co-authored-by: Oskar <oskar@aukilabs.com>
Co-authored-by: Oskar <oskar@aukilabs.com>
Co-authored-by: Oskar <oskar@aukilabs.com>
@tatiesmars tatiesmars force-pushed the chore/enforce-git-tag-version branch from 3964941 to 28793bd Compare January 26, 2026 03:54
@robinlindh
Copy link
Collaborator

Can we build locally without specifying this still? If not update deployment docs too. Or is this just for ci? We also have the version in python that ci replaces which ends up in the refined manifest. Currently both places in ci just pass in the git tag so it will be the same for now

@dataviruset
Copy link
Contributor

Can we build locally without specifying this still? If not update deployment docs too. Or is this just for ci? We also have the version in python that ci replaces which ends up in the refined manifest. Currently both places in ci just pass in the git tag so it will be the same for now

If you build locally, it would be empty because there's no default provided. Or if you use Dockerfile.dev this env var wouldn't be set.

@robinlindh robinlindh merged commit c8d1d56 into develop Feb 12, 2026
2 checks passed
@robinlindh robinlindh deleted the chore/enforce-git-tag-version branch February 12, 2026 10:17
@tatiesmars tatiesmars mentioned this pull request Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants