CI: print dependency versions before wheel repair

Populating the dependency table in doc/versions/news.md (cpptango, omniorb, libzmq, cppzmq, libjpeg-turbo, abseil, protobuf, c-ares, re2, OpenSSL, curl, gRPC, opentelemetry-cpp) is currently a manual hunt across Docker images, conda envs and cppTango release zips. This MR adds a Python helper that the wheel-build CI jobs print just before the wheel-repair step, so the table can be filled in by copy-paste from the CI logs.

What changes

  • New: cmake/print_dep_versions.py — one script, three platforms. Auto-detects via sys.platform and gathers each row from the appropriate source:
    • Linux: pkg-config --modversion (+ libtango.so SONAME for cpptango, zmq.hpp macros for cppzmq).
    • macOS: one micromamba list --json call, parsed in Python.
    • Windows: $CPP_TANGO_VERSION_TAG env var for cpptango, DLL filename regexes for omniORB (omniORB433_… → 4.3.3) and libzmq (libzmq-…-4_0_5 → 4.0.5), zmq.hpp for cppzmq.
  • Output is a markdown table, paste-ready into news.md.
  • Unknown values render as ?; the script always exits 0 so it never fails a CI job.
  • CI: linux:build-wheel, macos:build-wheel and win:build-wheel each now run python cmake/print_dep_versions.py right before auditwheel repair / delocate-wheel / delvewheel show. The previous inline blocks (one per platform, inconsistent and brittle — the macOS one actually failed because micromamba list only accepts one regex) are removed.

Known limitations

  • Linux: pkg-config returns SONAME-style versions for some libraries (re2 reports 11.0.0 from its .so soversion, not the 2025-11-05 calendar version news.md uses). Those rows will need manual fix-up in the release notes; flagged here so reviewers know.
  • Windows: jpeg62.dll carries only its SONAME and an empty FileVersion, so the libjpeg-turbo row prints ? on Windows. The actual version is fixed by the cppTango Windows bundle and rarely changes — manually fill it in from the cppTango build script.
  • Windows: abseil/protobuf/c-ares/re2/OpenSSL/curl/gRPC/opentelemetry-cpp are not bundled in the cppTango Windows zip, so those rows are always ? on Windows (already - in news.md).
Edited by Yury Matveev

Merge request reports

Loading