<feed xmlns='http://www.w3.org/2005/Atom'>
<title>colitur.git/CHANGELOG.md, branch v0.10.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=v0.10.0</id>
<link rel='self' href='https://git.labunix.xyz/colitur.git/atom?h=v0.10.0'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/'/>
<updated>2026-08-21T10:19:43Z</updated>
<entry>
<title>feat(config): flavour is settable, and an INI overlay is diagnosed</title>
<updated>2026-08-21T10:19:43Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T10:19:43Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=055deaedd6bc1acb770bd96b7da8f985ab0f4f0b'/>
<id>urn:sha1:055deaedd6bc1acb770bd96b7da8f985ab0f4f0b</id>
<content type='text'>
The escaping flavour was the one rendering setting with no config key,
so a template whose extension says nothing needed the flag every run.
Unset still means infer, which config --show reports as (infer) rather
than (none).

Backfills the 0.8.0 and 0.9.0 changelog entries. Both were tagged by
hand rather than through 'make release', which is precisely the guard
that would have refused a release with no changelog line.
</content>
</entry>
<entry>
<title>docs: CHANGELOG entry for 0.7.0</title>
<updated>2026-08-18T12:27:13Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T12:27:13Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=94d95fd9b26e6bdd39fd08b7555948df56eee1ed'/>
<id>urn:sha1:94d95fd9b26e6bdd39fd08b7555948df56eee1ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: CHANGELOG entry for 0.6.0</title>
<updated>2026-08-18T11:23:36Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T11:23:36Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=5d3e201c21427ec54ff3d58bade04e40cb621ae9'/>
<id>urn:sha1:5d3e201c21427ec54ff3d58bade04e40cb621ae9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: CHANGELOG entry for 0.5.0</title>
<updated>2026-08-18T10:36:25Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T10:36:25Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=c61ddde803e1e5a2df76fcacdf1f01c8dc3e0718'/>
<id>urn:sha1:c61ddde803e1e5a2df76fcacdf1f01c8dc3e0718</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: CHANGELOG entry for 0.4.0</title>
<updated>2026-08-18T09:43:34Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T09:43:34Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=590429b68105013e4dc0963d57d0eaca584427cc'/>
<id>urn:sha1:590429b68105013e4dc0963d57d0eaca584427cc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: CHANGELOG entry for 0.3.1</title>
<updated>2026-08-18T07:10:46Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T07:10:46Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=0158449f7060570bf3de17a8869b4ca668bd837f'/>
<id>urn:sha1:0158449f7060570bf3de17a8869b4ca668bd837f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: CHANGELOG entry for 0.3.0</title>
<updated>2026-08-17T20:24:33Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-17T20:24:33Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=921a17583067f49ed5c9f900b649d049c2b876ec'/>
<id>urn:sha1:921a17583067f49ed5c9f900b649d049c2b876ec</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: CHANGELOG entry for 0.2.0</title>
<updated>2026-08-17T18:57:22Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-17T18:57:22Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=301b9abd8e47e487dc5159d49d8e2432bc62488c'/>
<id>urn:sha1:301b9abd8e47e487dc5159d49d8e2432bc62488c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(cli): --version, a CHANGELOG, and a release target</title>
<updated>2026-08-17T14:19:02Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-17T14:19:02Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=cc6655134e155dd0879ecb8eb009271e17488834'/>
<id>urn:sha1:cc6655134e155dd0879ecb8eb009271e17488834</id>
<content type='text'>
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.
</content>
</entry>
</feed>
