summaryrefslogtreecommitdiff
path: root/colitur.opam
Commit message (Collapse)AuthorAgeFilesLines
* chore: 1.2.0Lukasz Kasprzak2026-08-281-1/+1
| | | | | | | | | | | | | | | Two presentation flags and no change to what is computed. Nothing was removed and no default output moved, so a minor bump. The CHANGELOG entry for 1.1.0 is backfilled here: that release was tagged without one, which would have left this file jumping 1.0.0 -> 1.2.0. Its content is taken from the v1.1.0 tag message rather than reconstructed. README's status section claimed the OF module lived on an unreleased branch and counted 887 tests, and its build block advertised the fast suite at ~8s and the exhaustive sweep at ~80s. Every one of those was true when written and none is now: 909 fast (~40s), 916 under the sweep (~8min). Stale suite timings are a defect this project has corrected once before, in 0.10.0.
* chore: 1.1.0v1.1.0Lukasz Kasprzak2026-08-271-1/+1
| | | | | | A second rite is new functionality that breaks nothing: EF output is byte-identical to v1.0.0, no flag was removed, and emit --format csv's seventeenth column appears only under --rite of. Minor bump, not major.
* release: v1.0.0v1.0.0Lukasz Kasprzak2026-08-241-1/+1
|
* release: v0.10.1v0.10.1Lukasz Kasprzak2026-08-211-1/+1
|
* release: v0.10.0v0.10.0Lukasz Kasprzak2026-08-211-1/+1
|
* chore: v0.9.0v0.9.0Lukasz Kasprzak2026-08-201-1/+1
| | | | | | | | | | | | Robustness and hackability pass over the shipped program. The citation parser is strict about numbers, four pairs of books no longer share a full title, shipped styles re-parse their own output, and overlay errors are written for the person editing the file rather than for a compiler author. colitur-templates(5) already refers to "before colitur 0.9" for the month-key change, so the version moves with it.
* fix: audit findings — parser strictness, name ambiguity, and errorsLukasz Kasprzak2026-08-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Found by auditing the shipped program rather than the diff. The parser accepted OCaml integer-literal syntax, so "Luke 1_1:5" read as chapter ELEVEN and "+5" as 5 -- a typo silently becoming a different chapter, reachable through any user overlay. Numbers are now plain digits and positive, and a descending range is rejected: 1:20-10 is always a transcription error. No shipped citation changed. FOUR PAIRS OF DIFFERENT BOOKS SHARED A FULL TITLE. 1 and 2 Corinthians both rendered "Epistola ad Corinthios", as did Thessalonians, Timothy and Peter -- 108 citations in 2027 alone that a reader cannot resolve to a book. This is the Kings defect fixed earlier and not generalised. The titles now carry their volume numeral, marked CONSTRUCTED, and a test asserts no two books share a name -- while allowing the case where two ids ARE the same book under different numbering, which a tradition relates. Spec section 8.5 is now delivered rather than merely recorded. Shipped styles did not re-parse their own output: 32 of 52 Latin abbreviations and 49 of 52 full titles failed, so a citation copied from colitur's own output into an overlay was passed through untouched and printed in the wrong language, silently. Every shipped name is registered as a spelling and split_book learned multi-word titles by longest-token match. Now 0 of 52 fail beyond the same-book aliases. Overlay errors were written for a compiler author: they named an OCaml source file the reader does not have and buried the useful token. The existing five-path rewriter is replaced by a generic one, applied to every load path rather than one, so "rank: is not one of the allowed values (at Class9)" replaces the raw Of_sexp_error dump. Also: the new-overlay scaffold documented citations and layer without showing them, and its comment implied the wrong nesting -- the single easiest thing to get wrong; error messages echoed whole file lines, copying an unrelated file's contents into stderr when a flag pointed at one; and config --show validated partway down its table, exiting 2 after writing five rows to stdout.
* release: v0.7.0v0.7.0Lukasz Kasprzak2026-08-181-1/+1
|
* release: v0.6.0v0.6.0Lukasz Kasprzak2026-08-181-1/+1
|
* release: v0.5.0v0.5.0Lukasz Kasprzak2026-08-181-1/+1
|
* release: v0.4.0v0.4.0Lukasz Kasprzak2026-08-181-1/+1
|
* release: v0.3.1v0.3.1Lukasz Kasprzak2026-08-181-1/+1
|
* test(cli): the 3 January pin is a BVM Saturday, not a feriav0.3.0Lukasz Kasprzak2026-08-171-1/+1
| | | | | | | | | 3 January 2026 is an unoccupied IV-class Saturday, so its office is Our Lady's and now its Mass is too -- the second of the Missal's five, assigned to Christmas through the Purification. The pin held the Christmastide feria's readings, which is what colitur said before RG 309(a) was implemented. Caught by make check on the 0.3.0 release, which is what that gate is for.
* test(cli): pin the version's shape, not its literalv0.2.0Lukasz Kasprzak2026-08-171-1/+1
| | | | | | | | | | | 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.
* feat(cli): --version, a CHANGELOG, and a release targetLukasz Kasprzak2026-08-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* kernel(date): ISO-8601 rendering, validating parse, sexp convertersLukasz Kasprzak2026-08-111-0/+2
| | | | | | | Adds sexplib and ppx_sexp_conv to the project and wires the ppx into the kernel library. Date's sexp form is an ISO-8601 atom rather than the opaque rata die, so data files stay human-editable and parsing revalidates the 1583..9999 domain.
* chore: scaffold dune project (kernel lib + cli + tests)Lukasz Kasprzak2026-07-311-0/+25
OCaml 5.2.0 local switch; colitur_kernel library, a colitur executable stub, and an alcotest+qcheck test runner. AGPL LICENSE, README, generated colitur.opam.