From 83cc11e31c08d14fd3449f95872f346a4daaf2b8 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Fri, 21 Aug 2026 12:02:49 +0200 Subject: docs: correct a stale README Three claims were false: The download paragraph said older tags are not offered for download. They are again -- per-tag snapshots were re-enabled, and only the summary page's tag list is trimmed. A stable colitur-latest.tar.gz still exists for scripts that should not know a version. 'Starting with the Roman EF (1962) and OF forms' read as though both existed. lib/rites/ holds rite_ef and nothing else; the OF is the next module. The tagline claimed multiple rites for the same reason. Suite timings were from a much smaller suite: the fast run is ~8s over 568 tests, not ~3s, and the exhaustive sweep ~80s. Adds a Status section with the real numbers, the five validation layers and -- more usefully -- what they cannot see, since the differential and the oracle share one data lineage. Notes that chants are deliberately absent, and points at the colitur-x viewer. --- README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 165f2da..d1b2ed2 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,22 @@ # colitur **Download:** [colitur-latest.tar.gz](https://git.labunix.xyz/colitur-latest.tar.gz) -— always the current release. Older tags are listed on the -[tags page](https://git.labunix.xyz/colitur.git/refs/tags) but are not offered -for download: running a stale liturgical calendar is worse than running none. +— a stable URL that always serves the current release, so a script can fetch it +without knowing the version. Per-tag tarballs are on the +[tags page](https://git.labunix.xyz/colitur.git/refs/tags) if you want a +specific one. *computus liturgicus* — a safe, highly-tested, deterministic engine that computes -and validates liturgical calendars for multiple rites, with template-driven output. +and validates liturgical calendars, with template-driven output. -Starting with the Roman EF (1962) and OF forms; extensible to other traditions. -Computes day-identity (season, celebration, rank, colour, cycle, precedence) and -reading citations, correct to year 9999. See the design and rules research under -`docs/` (local). +Computes day-identity (season, celebration, rank, colour, precedence) and reading +citations, correct to year 9999. + +**What is built today is the Roman EF (1962) — that rite alone.** `lib/rites/` +contains `rite_ef` and nothing else. The kernel is rite-agnostic and the OF is +the next module, which is what will prove the abstraction generalises; until +then, treat any claim of multi-rite support as a design goal rather than a +feature. See the design and rules research under `docs/` (local). ## Build @@ -19,8 +24,8 @@ reading citations, correct to year 9999. See the design and rules research under opam switch create . 5.2.0 -y # first time: local OCaml switch opam install -y dune alcotest qcheck qcheck-alcotest sexplib ppx_sexp_conv dune build -dune test # fast suite (~3s) -COLITUR_EXHAUSTIVE_SWEEP=1 dune test --force # + every year 1583-9999 (~50s) +dune test # fast suite, 568 tests (~8s) +COLITUR_EXHAUSTIVE_SWEEP=1 dune test --force # + every year 1583-9999 (~80s) dune exec colitur -- easter 2026 # Easter and its Easter-relative anchors dune exec colitur -- temporal 2026 # the EF temporal cycle only, one line per day dune exec colitur -- day 2026 # the full resolved EF calendar (temporal + sanctoral) @@ -134,6 +139,35 @@ $ dune exec colitur -- readings 2026 --raw | grep ^2026-02-25 See `colitur(1)`'s `SIGLA` section for the `[bible]`/`[sigla]` language-file sections, `lang/traditions.ini` in full, and all three `--sigla-*` flags. +## Status + +v0.9.0, EF only. **569 tests**, of which the property suite runs against every +year in 1583-9999 rather than a sample — that is how confidence extends past +the ~2050 horizon of any reference to check against. + +Five validation layers, each blind to something the others catch: + +| | | +|---|---| +| types | illegal states unrepresentable; resolution total | +| properties | invariants over all 8 417 years (QCheck) | +| differential | 16 801 days compared against the sibling `lectio` engine | +| oracle | three captured years compared against missalemeum | +| golden | 11 pinned template outputs | + +Knowing what each layer *cannot* see is load-bearing here: the differential and +the oracle share one data lineage (Divinum Officium → missalemeum → lectio → +colitur), so an error inherited by both is invisible to either. That is written +up in full in `docs/` rather than left implied. + +**Chants are deliberately absent.** Psalm, Tract, Alleluia and Sequence have no +source and no oracle, so `Validate` rejects any citation part outside +First/Gospel — one appearing would be a defect, not a feature arriving early. + +A companion X11 viewer lives in +[colitur-x](https://git.labunix.xyz/colitur-x.git/): it reads +`colitur emit --format csv` on stdin and draws the month. + ## License AGPL-3.0-or-later. See `LICENSE`. -- cgit v1.3