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. --- test/cli.t | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'test') 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