summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-18 13:23:36 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-18 13:23:36 +0200
commit5d3e201c21427ec54ff3d58bade04e40cb621ae9 (patch)
treee6b3a991318a89d9a5a5f3962ba05956e8142188
parentd727d07472172e3308ebd1706476a6bbf7ec1306 (diff)
downloadcolitur-5d3e201c21427ec54ff3d58bade04e40cb621ae9.tar.gz
colitur-5d3e201c21427ec54ff3d58bade04e40cb621ae9.zip
docs: CHANGELOG entry for 0.6.0
-rw-r--r--CHANGELOG.md3
1 files changed, 3 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a831843..866a338 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,9 @@
One line per release. Versions are git tags (`vX.Y.Z`).
+## [0.6.0] - 2026-08-18
+- Writing a local calendar gets a feedback loop. An overlay is still **applied, not validated** — the five test layers assert things about the *shipped* calendar and cannot vouch for a user's file — but until now the only way to learn whether yours did what you meant was to generate a year of output and grep for your own slug, and the only way to see that a directive matched nothing was to notice a warning scroll past among 365 lines. **`colitur check FILE ...`** loads each overlay, applies it to the real shipped calendar, and reports the directive counts, the slug each one targets, and any directive that found no target; it exits 2 on a load failure or an unmatched directive, so it composes into a Makefile or a pre-commit hook. It answers three narrow questions — does the file parse, does every directive find its target, what does the merged result contain — and does *not* check a calendar against the rubrics, which the help text and man page both say, because the name invites a stronger reading than the command earns. **`colitur new-overlay`** prints a commented starter to stdout for redirection, rather than writing a file where it likes; every value in it is a placeholder that will appear in `day` output if left unedited, so a half-finished overlay is visible rather than silently inert. **The format is less hostile too**: `citations` and `layer` may now be omitted from an added celebration, defaulting to empty and to the overlay's own `id` — they were the two of eight fields carrying nothing an author could supply, and omitting them used to fail with `lib/kernel/celebration.ml.t_of_sexp: the following record elements were undefined`, naming a source file the author will never open. An explicitly stated value still wins, pinned in both directions. Parse errors stop naming kernel source paths. The leniency is scoped to overlays alone: `Layer.load`, which reads the shipped sanctoral, stays strict, because a missing field there is a defect rather than a convenience. 398 tests.
+
## [0.5.0] - 2026-08-18
- Two corrections, both found in primary sources the project already had but had not fully read. **`ubaldus` (16 May) and `didacus` (13 November) are III-class feasts, not commemorations** — found by auditing *all 290* fixed-date sanctoral entries against the Missal's own universal calendarium, anchored on the Roman calends column because the arabic day numbers are OCR-wrecked and the dominical letters vanish in some months. They were the only two status defects in the file; the 15 days the automated pass could not reach were read by hand. Universality is structural, not a judgement call: the calendarium carries no *pro aliquibus locis* marker in its 573 lines while the wider Missal carries 79 elsewhere, and each saint has his own Mass entry in the Proprium, which a bare commemoration never has. Neither needed a proper authored — each takes its Mass from a Common with only its Oratio proper — though one Common was newly transcribed (*Missa Iustus*, 1 Cor 4:9-14 / Luke 12:32-34, read independently in both scans). 13 036 days change, every one classified. **RG 113's first sentence is now implemented**: *"Commemoratio de Tempore fit primo loco"* — only its second sentence was, so ordering ran through the precedence table for every commemoration including the seasonal one. Reconciled with RG 110(c)'s *"ante omnes alias commemorationes"* by the term the two rubrics share, whose sense RG 113's own sentence fixes: season, then the inseparable Peter/Paul pair, then table order. 3 533 days change, **every one order-only** — identical commemoration sets, verified as sorted multisets. Also: every Latin quotation in the rules register re-audited against the electronic transcription — all 26 rubric quotations verbatim, zero errors — which established that rubrics must be checked against the transcription and propers against the photographic scans, the confusion that nearly lost RG 110(c). 396 tests.