Skip to content

Restructure versions to a single point of truth - #610

Open
JAB1305 wants to merge 7 commits into
eclipse-basyx:developfrom
rwth-iat:feat/single-point-of-truth
Open

Restructure versions to a single point of truth#610
JAB1305 wants to merge 7 commits into
eclipse-basyx:developfrom
rwth-iat:feat/single-point-of-truth

Conversation

@JAB1305

@JAB1305 JAB1305 commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Previously, version pins for Python, mypy, ruff, and the API/spec versions lived in multiple places: workflow env blocks, three pyproject.toml files, ruff.toml, and the server Dockerfiles. mypy was pinned in the SDK but unpinned in the server and compliance tool, and ruff was not pinned anywhere.

Bumping any of these values required editing several files and was easy to get wrong.

This change introduces a repo-root versions.toml as the single source of truth. A new check_global_versions_coincide.py verifies that every listed pyproject.toml, config.yaml, and Dockerfile coincides with the yaml. New entries under dev_tools are checked automatically without further script changes. A composite action .github/actions/load-versions exposes the values to CI jobs as X_* environment variables so consuming workflows keep their existing ${{ env.X_* }} usage.

Runtime server constants (currently only api_base_path) live in a separate server/config.toml, read by the server directly at import time.

The old check_python_versions_coincide.py is superseded and removed.

Fixes #548

JAB1305 added 3 commits August 9, 2026 17:32
Previously, version pins for Python, `mypy`, `ruff`, and the API/spec
  versions lived in multiple places: workflow env blocks, three
  `pyproject.toml` files, `ruff.toml`, and the server Dockerfiles.
  `mypy` was pinned in the SDK but unpinned in the server and
  compliance tool, and `ruff` was not pinned anywhere.

  Bumping any of these values required editing several files and
  was easy to get wrong.

  This change introduces a repo-root `versions.yaml` as the single
  source of truth. A new `check_global_versions_coincide.py`
  verifies that every listed `pyproject.toml`, `config.yaml`, and
  Dockerfile coincides with the yaml. New entries under `dev_tools`
  are checked automatically without further script changes. A
  composite action `.github/actions/load-versions` exposes the
  values to CI jobs as `X_*` environment variables so consuming
  workflows keep their existing `${{ env.X_* }}` usage.

  Runtime server constants (currently only `api_base_path`) live in
  a separate `server/config.yaml`, read by the server directly at
  import time.

  The old `check_python_versions_coincide.py` is superseded and
  removed.

  Fixes eclipse-basyx#548
@JAB1305
JAB1305 marked this pull request as ready for review August 9, 2026 15:41
@JAB1305
JAB1305 marked this pull request as draft August 10, 2026 08:23
@JAB1305
JAB1305 marked this pull request as ready for review August 12, 2026 10:14
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.

1 participant