feat(build-time-versioning): xceadmin generates build-info module
xceadmin/meson.build passes the resolved commit_id/build_time meson options as two new positional args (matching this custom_target's existing all-positional style) to meson-build.sh, which writes a small _build_info.py (GIT_COMMIT/BUILD_TIME, independent per-field "unknown" fallback) into the mirrored source tree's xceadmin package directory, before the pip install step -- same before-install ordering as the existing schema-sync step. A file-existence guard checks the exact path just written and fails loudly rather than silently proceeding with a missing/wrong module. Live-verified via a full real build+test+wheel cycle (run independently twice, once by implementation and once by review): the mirrored tree's _build_info.py and the packaged wheel both contain real, matching, non-"unknown" values (commit id matching git rev-parse --short HEAD plus dirty suffix, real UTC timestamp); full pytest suite passes (258 passed, 3 skipped -- documented live-HA e2e tests, skip-by-design). Task 5.1/13 of build-time-versioning. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
fb09afe6be
commit
e1cd9d257c
3 changed files with 55 additions and 5 deletions
|
|
@ -91,11 +91,9 @@
|
|||
- _Depends: 4.1_
|
||||
|
||||
- [ ] 5. Core: xceadmin version display
|
||||
- [ ] 5.1 (P) meson-build.sh generates a build-info module before packaging
|
||||
- `src/xceadmin/meson.build`'s `custom_target()` passes the resolved commit id/build time to `meson-build.sh` (new positional args or env vars)
|
||||
- `meson-build.sh` writes a small `_build_info.py` (containing `GIT_COMMIT`/`BUILD_TIME` string constants, `unknown` fallback) into the mirrored source tree's xceadmin package directory, before the existing `pip install` step, matching the schema-sync step's own before-install ordering
|
||||
- After writing the module, verify it actually landed in the mirrored tree before proceeding to `pip install` (e.g. a file-exists check) and fail the build loudly if it did not, rather than silently packaging the fallback-shaped-but-wrong wheel
|
||||
- Observable: a meson-driven `/xce-build xceadmin` produces a wheel whose installed `_build_info.py` contains non-`unknown` values when 2.1's values are set
|
||||
- [x] 5.1 (P) meson-build.sh generates a build-info module before packaging
|
||||
- `commit_id`/`build_time` passed as 2 new positional args (`$6`/`$7`, matching this custom_target's existing all-positional style); write block sits between schema-sync and `pip install`, with an independent-per-field `unknown` fallback and a file-existence guard checking the exact path it just wrote (the mirrored tree, not the real source tree)
|
||||
- Observable confirmed live (full real build+test+wheel cycle, independently re-run by review): mirrored tree's `_build_info.py` and the packaged wheel both contain real, matching, non-`unknown` values; 258 tests pass, 3 skips confirmed as documented live-HA e2e tests
|
||||
- _Requirements: 1.1, 1.2, 1.4, 4.1, 4.2_
|
||||
- _Boundary: xceadmin/meson.build, xceadmin/meson-build.sh_
|
||||
- _Depends: 1_
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue