summaryrefslogtreecommitdiff
path: root/lib/kernel/validate.ml
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-17 16:19:02 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-17 16:19:02 +0200
commitcc6655134e155dd0879ecb8eb009271e17488834 (patch)
tree31dc6c6be64f03d02a1067644e04e904d7312167 /lib/kernel/validate.ml
parent7055723f8b79240ab2df1353eaaf3761f65414a9 (diff)
downloadcolitur-cc6655134e155dd0879ecb8eb009271e17488834.tar.gz
colitur-cc6655134e155dd0879ecb8eb009271e17488834.zip
feat(cli): --version, a CHANGELOG, and a release target
Groundwork for tagging. The project had no version anywhere: not in dune-project, not in the binary, no CHANGELOG, no tags. The version lives in two places -- dune-project, which generates colitur.opam, and a constant in bin/main.ml, which is what --version prints. Two rather than one because dune's watermarking only substitutes in a release tarball, so a binary built the ordinary way from a checkout would report a placeholder. The release target rewrites both and then re-checks both, and finally requires the freshly built binary to report the version it just wrote: a release that bumped one and not the other would ship a binary disagreeing with its own package metadata. --version is deliberately not embedded in the help text. cli.t pins help's first line, and a version there would mean editing a test expectation every release for no gain. The release target mirrors lectio's, refusals included: no release from a dirty tree, none without a CHANGELOG entry for that version, none whose version bump silently failed to apply, and `make check` -- the full 1583-9999 sweep, not the sampling suite -- must pass before the tag is created.
Diffstat (limited to 'lib/kernel/validate.ml')
0 files changed, 0 insertions, 0 deletions