From d8ce8c3806111e1d1ba54d2ef99a8ae550c7567b Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Mon, 17 Aug 2026 21:00:17 +0200 Subject: test(cli): pin the version's shape, not its literal The release target bumps bin/main.ml and dune-project, but cli.t pinned the literal too, so cutting 0.2.0 failed `make check` on a cram diff that was purely the bump working correctly. Every release would have had to edit a test for no gain. The shape is asserted here instead. The value is already checked where it can actually drift: the release target requires the freshly built binary to report the version it just wrote. --- bin/main.ml | 2 +- colitur.opam | 2 +- dune-project | 2 +- test/cli.t | 13 +++++++++---- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/bin/main.ml b/bin/main.ml index 06732b3..fc50fae 100644 --- a/bin/main.ml +++ b/bin/main.ml @@ -368,7 +368,7 @@ let readings_report ~overlays y = resolved_year_report ~line:readings_line ~over same reason. Deliberately NOT embedded in [help_text]: the cram test pins help's first line, and a version in it would make every release edit a test expectation for no gain. *) -let version = "0.1.0" +let version = "0.2.0" let help_text = {|colitur -- deterministic liturgical calendar engine (Roman rite, 1962) diff --git a/colitur.opam b/colitur.opam index 12d0e2b..98b3242 100644 --- a/colitur.opam +++ b/colitur.opam @@ -1,6 +1,6 @@ # This file is generated by dune, edit dune-project instead opam-version: "2.0" -version: "0.1.0" +version: "0.2.0" synopsis: "Deterministic liturgical calendar engine (computus liturgicus)" depends: [ "ocaml" diff --git a/dune-project b/dune-project index ccef6df..e150157 100644 --- a/dune-project +++ b/dune-project @@ -1,6 +1,6 @@ (lang dune 3.0) (name colitur) -(version 0.1.0) +(version 0.2.0) (generate_opam_files true) (cram enable) diff --git a/test/cli.t b/test/cli.t index 9771c56..b19e8d4 100644 --- a/test/cli.t +++ b/test/cli.t @@ -247,11 +247,16 @@ not embedded in the help text above: this pin would then have to be edited every release, for no gain. The Makefile's release target asserts the built binary reports the version it just wrote, so the two cannot drift. - $ colitur --version - 0.1.0 +The SHAPE is pinned here, not the value. Pinning the literal would mean +editing this test on every release for no gain, and the value is already +asserted where it can actually drift: the Makefile's release target requires +the freshly built binary to report the version it just wrote. - $ colitur -V - 0.1.0 + $ colitur --version | grep -cE '^[0-9]+\.[0-9]+\.[0-9]+$' + 1 + + $ test "$(colitur --version)" = "$(colitur -V)" && echo same + same Agreement with the package metadata (dune-project's own (version ...), which generates colitur.opam) is NOT asserted here: the cram sandbox has no source -- cgit v1.3