Skip to content

Track the release in the benchmarks pom and check it - #121

Merged
kingchenc merged 1 commit into
mainfrom
fix/benchmarks-pom-version
Sep 2, 2026
Merged

Track the release in the benchmarks pom and check it#121
kingchenc merged 1 commit into
mainfrom
fix/benchmarks-pom-version

Conversation

@kingchenc

Copy link
Copy Markdown
Contributor

bindings/java/benchmarks/pom.xml declared 0.1.0 for both its own artefact and the org.wickra:wickra-backtest dependency it builds against, while the project moved to 0.1.1 and then 0.1.2. The benchmarks resolved a version that had stopped being current two releases earlier.

Why CI never said anything

scripts/check_version_sync.py runs on every push and passed throughout. The file was not in its touchpoint list, and a check can only fail on a file its list names -- the failure mode of a hand-maintained inventory is incompleteness, not error, and incompleteness makes no noise.

It was found by the org-wide version scan in wickra-lib/.github, which derives its file set from the repository instead of listing it.

The fix

Both occurrences now track the release, and the file is checked at count 2 -- the same shape as examples/java/pom.xml beside it.

Keeping the module's own version on the release, rather than leaving it independent the way wickra's benchmarks pom does, also keeps the stale pass honest: a --previous 0.1.0 run would otherwise have reported the module's own 0.1.0 as a leftover.

Verified

$ python scripts/check_version_sync.py
version 0.1.2: checked 21 declarations   # was 20
every declaration agrees.

# with the bug put back:
  bindings/java/benchmarks/pom.xml: benchmarks version and dependency
  -- expected 2 occurrence(s) of 0.1.2, found 0

Also passes --previous 0.1.1 and --previous 0.1.0.

bindings/java/benchmarks/pom.xml declared 0.1.0 for both its own artefact and the org.wickra:wickra-backtest dependency it builds against, while the project moved to 0.1.1 and then 0.1.2. The benchmarks therefore resolved a version that had stopped being current two releases earlier.

scripts/check_version_sync.py runs on every push and passed throughout, because the file was never in its touchpoint list. A check can only fail on a file its list names, so a missing entry is silent rather than wrong -- the failure mode of a hand-maintained inventory is incompleteness, not error.

Both occurrences now track the release and the file is checked at count 2, matching examples/java/pom.xml beside it. Keeping the module's own version on the release rather than leaving it independent also keeps the stale-version pass honest: a --previous 0.1.0 run would otherwise have reported the module's own 0.1.0 as a leftover.
@codecov

codecov Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@kingchenc
kingchenc merged commit c9eb72b into main Sep 2, 2026
61 checks passed
@kingchenc
kingchenc deleted the fix/benchmarks-pom-version branch September 2, 2026 10:45
kingchenc added a commit that referenced this pull request Sep 2, 2026
Cuts 0.1.3 across the twenty version-bearing files this repository writes itself, and closes the changelog gap the previous release left open.

## Changelog

`[Unreleased]` became `[0.1.3]`. One entry was missing from it and is added here: the `wickra-core` lockfile refresh from #122. The two entries already there -- the benchmarks pom that tracked a version deleted two releases ago (#121) and the publish gate that read a pending CI run as a failed one (#120) -- carry over unchanged.

Everything merged since v0.1.2 is now described. `git log v0.1.2..main` lists exactly those three commits.

## Bump

Run through `bump_version.py`, which reports 21 declarations rewritten: the workspace `Cargo.toml`, `Cargo.lock` via a real `cargo build`, the Python, Node (package, six platform stubs, lockfile, and the napi loader's version literal), Java, C# and R manifests, both poms that resolve the binding, `CITATION.cff` including its release date, and `SECURITY.md`'s supported-version table.

`scripts/check_version_sync.py` agrees on all 21. The benchmarks pom is among them for the first time -- it was added to that check in #121, which is why this bump moves it rather than leaving it behind as 0.1.1 and 0.1.2 did.

A grep for `0.1.2` outside the changelog returns one hit, `iana-time-zone-haiku`, whose own version happens to be the same string.

## Verification

- `cargo fmt --all` -- no changes
- `cargo test --workspace --all-features` -- all suites pass
- `cargo clippy --workspace --all-targets --all-features -- -D warnings` -- clean
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant