<feed xmlns='http://www.w3.org/2005/Atom'>
<title>colitur.git/colitur.opam, branch v1.1.0</title>
<subtitle>deterministic OCaml engine to compute and validate liturgical calendars for multiple rites, template-driven output to year 9999</subtitle>
<id>https://git.labunix.xyz/colitur.git/atom?h=v1.1.0</id>
<link rel='self' href='https://git.labunix.xyz/colitur.git/atom?h=v1.1.0'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/'/>
<updated>2026-08-27T11:05:58Z</updated>
<entry>
<title>chore: 1.1.0</title>
<updated>2026-08-27T11:05:58Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukasz@arcofasiagroup.com</email>
</author>
<published>2026-08-27T11:05:58Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=4b3c18d61a243f1ec9c39e6279f7c687402b8dda'/>
<id>urn:sha1:4b3c18d61a243f1ec9c39e6279f7c687402b8dda</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>release: v1.0.0</title>
<updated>2026-08-24T19:36:32Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-24T19:36:32Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=73cdea4403e02e356e6eb2abaa7a96845d3b050c'/>
<id>urn:sha1:73cdea4403e02e356e6eb2abaa7a96845d3b050c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>release: v0.10.1</title>
<updated>2026-08-21T13:29:47Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T13:29:47Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=4f87cbde4ee79ac96aa7ebfed105b3a5ec02be43'/>
<id>urn:sha1:4f87cbde4ee79ac96aa7ebfed105b3a5ec02be43</id>
<content type='text'>
</content>
</entry>
<entry>
<title>release: v0.10.0</title>
<updated>2026-08-21T10:21:20Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T10:21:20Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=ced4ead904791d5ec813036b8682d24dd001de9d'/>
<id>urn:sha1:ced4ead904791d5ec813036b8682d24dd001de9d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: v0.9.0</title>
<updated>2026-08-20T20:40:54Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-20T20:40:54Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=87d528d379b7d031731f0bb7e9daa52fe036ff6a'/>
<id>urn:sha1:87d528d379b7d031731f0bb7e9daa52fe036ff6a</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>fix: audit findings — parser strictness, name ambiguity, and errors</title>
<updated>2026-08-20T20:11:17Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-20T20:11:17Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=1988d350242b47aa52aa07904c495e7e2c0eba82'/>
<id>urn:sha1:1988d350242b47aa52aa07904c495e7e2c0eba82</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>release: v0.7.0</title>
<updated>2026-08-18T12:28:21Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T12:28:21Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=e1f6ba9322012edb57171ac306045f54a83aaad5'/>
<id>urn:sha1:e1f6ba9322012edb57171ac306045f54a83aaad5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>release: v0.6.0</title>
<updated>2026-08-18T11:24:48Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T11:24:48Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=f979aedcc8a11d2c5a175064526a6821e11c2c0c'/>
<id>urn:sha1:f979aedcc8a11d2c5a175064526a6821e11c2c0c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>release: v0.5.0</title>
<updated>2026-08-18T10:37:36Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T10:37:36Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=d5386c2121cfd5c6b73b573aa7db05b8ef21dff0'/>
<id>urn:sha1:d5386c2121cfd5c6b73b573aa7db05b8ef21dff0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>release: v0.4.0</title>
<updated>2026-08-18T09:44:57Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T09:44:57Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=ca4287a6e99e14846f3560106156ef2b1c4b8cf2'/>
<id>urn:sha1:ca4287a6e99e14846f3560106156ef2b1c4b8cf2</id>
<content type='text'>
</content>
</entry>
</feed>
