<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lectio.git/internal/caldata/caldata_test.go, branch v0.45.0</title>
<subtitle>offline Catholic daily readings and liturgical calendar in Go, with CLI, TUI and web clients</subtitle>
<id>https://git.labunix.xyz/lectio.git/atom?h=v0.45.0</id>
<link rel='self' href='https://git.labunix.xyz/lectio.git/atom?h=v0.45.0'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/'/>
<updated>2026-07-28T08:54:28Z</updated>
<entry>
<title>fix(of): partial-proper memorials compose proper part + ferial (match USCCB)</title>
<updated>2026-07-28T08:54:28Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T08:54:28Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=f0bfe1efb93e04e0e3b9a33b8b085fc09e86af36'/>
<id>urn:sha1:f0bfe1efb93e04e0e3b9a33b8b085fc09e86af36</id>
<content type='text'>
A memorial marked 'PROPER Gospel' (Guardian Angels, Mary Magdalene, Our Lady of
Sorrows, Joseph the Worker, the Passion of John the Baptist, Sts Martha/Mary/
Lazarus) uses the FERIAL first reading + its proper gospel; one marked 'PROPER
First Reading' (Barnabas) uses its proper first + the ferial gospel. Previously we
imported catholic-resources' *suggested* first for the gospel-proper ones, which
differs from what USCCB publishes.

- readings.go: when the observed's inline Mass has only a proper gospel (or only a
  proper first), fill the missing reading/psalm from the day's ferial and sort into
  canonical order. A fully-proper feast is untouched. Factored out ofFerial().
- gen-of-sanctoral-readings.py: keep only the strictly-proper part per the CR
  source-note.

Verified vs USCCB: Guardian Angels (2025-10-02) now = Nehemiah 8 / Ps 19 /
Matt 18:1-5,10 exactly. Updates TestUniversalSanctoralReadings.
</content>
</entry>
<entry>
<title>feat(of): proper Mass readings for the sanctoral (from catholic-resources.org)</title>
<updated>2026-07-28T07:46:54Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T07:46:54Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=97f704b659ea6c72c4aa354378b347283ecc5cac'/>
<id>urn:sha1:97f704b659ea6c72c4aa354378b347283ecc5cac</id>
<content type='text'>
OF feasts, solemnities, and proper-reading memorials had no readings of their own
and fell back to the day's ferial (Barnabas showed the ferial instead of Acts 11;
Our Lady of Sorrows / the Guardian Angels showed the ferial instead of their
proper gospel). scripts/gen-of-sanctoral-readings.py scrapes catholic-resources.org's
Proper of Saints table and inlines reading.first/psalm/second/gospel into
roman-calendar.ini for the 41 universal-calendar celebrations marked PROPER (plus
every feast/solemnity); memorials that draw on a Common keep the ferial, which is
the OF default. Handles the source quirks: 'or' alternatives (takes the first),
cycle-specific A:/B:/C: gospels (takes A), lectionary # refs, and vigil-vs-day
(keeps the day Mass). All 41 render; citations only. Adds
TestUniversalSanctoralReadings, credits the source in NOTICE, bumps to 0.41.0.
</content>
</entry>
<entry>
<title>feat(ef): full 1962 universal sanctoral (16 -&gt; 317 celebrations)</title>
<updated>2026-07-28T05:51:05Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T05:51:05Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=1f694889f767dedd84f60d8e0cbccf201c2d123f'/>
<id>urn:sha1:1f694889f767dedd84f60d8e0cbccf201c2d123f</id>
<content type='text'>
Generate internal/caldata/tridentine-calendar.ini from missalemeum's per-date
proper API (Divinum Officium 1962 data) via scripts/gen-sanctoral-ef.go: each
fixed date's observed saint with rank, colour, English name and proper
Epistle/Gospel citations, plus sancti commemorations. Multiple reference years
are tried per date so a saint occulted by a Sunday in one year is still captured
observed in another; saints never observed are ranked commemoration. Feasts of
the Lord are marked class=lord. Latin names hand-curated (missalemeum has none).

Adds TestTridentineLoads, credits missalemeum in NOTICE, bumps to 0.38.0.
</content>
</entry>
<entry>
<title>feat(of): full sanctoral calendar + weekday/memorial readings</title>
<updated>2026-07-27T22:47:16Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-27T22:47:16Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=e829b48b08c683d9dcef5e4b9502c1c42bc895f1'/>
<id>urn:sha1:e829b48b08c683d9dcef5e4b9502c1c42bc895f1</id>
<content type='text'>
Populate the OF General Roman Calendar sanctoral and extend the OF readings to
weekdays and sanctoral days.

Sanctoral calendar (roman-calendar.ini: 29 -&gt; 202 celebrations):
- scripts/gen-sanctoral.go generates it from calapi.inadiutorium.cz (authoritative
  General Roman Calendar) -- English name/rank/colour from general-en, Latin from
  general-la, Polish from niedziela DayInfo (obligatory celebrations). Fixed dates
  the temporal engine already computes are excluded. VALIDATED: my engine's
  observed rank agrees with calapi on all 86 obligatory sanctoral days of 2026
  (0 mismatches).

Precedence fix (precedence.go): an optional memorial no longer displaces the
weekday as the DEFAULT observed celebration (it sorts below the ferial, shown as
an option) -- matching the General Roman Calendar / calapi.

Readings (of-lectionary.ini: 254 -&gt; 1018 entries) via genlect-of.go:
- Weekday (ferial) 2-year cycle I/II, keyed &lt;ferial-slug&gt;-&lt;WeekdayCycle&gt;, harvested
  from niedziela over 2020-2025 (multiple years per cycle; retry-on-failure so a
  glitch year never poisons a key; only TRUE ferials + optional-memorial days,
  where niedziela shows the ferial).
- Obligatory memorials keyed by their OWN slug (niedziela shows their proper, e.g.
  Barnabas -&gt; Acts 11, or the ferial for memorials without a proper) -- never
  miskeyed to a ferial position.
- caldata.Readings: OF resolves slug+SundayCycle | slug+WeekdayCycle, else a
  memorial falls back to the day's ferial readings.
- Source-glitch normalisation (1J-&gt;1 J, PnP-&gt;Pnp).

books.ini: canonical names "Song of Solomon" and "The Acts" added as their own
[en] forms (ToEnglishRef emits the canonical; it must resolve). Fixes ~32
cross-chapter Song-of-Songs/Acts citations.

Coverage: 359/365 days of 2026 render (98.4%); 6 residual ferial positions never a
true-ferial in 2020-2025. EF sanctoral and OF psalm renumbering still pending.
</content>
</entry>
<entry>
<title>feat(caldata): embed + parse the owned universal Roman calendar (initial coverage)</title>
<updated>2026-07-27T10:25:46Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-27T10:25:46Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=56f3b8161f73c33fe6e25f6461d3f061af427e9e'/>
<id>urn:sha1:56f3b8161f73c33fe6e25f6461d3f061af427e9e</id>
<content type='text'>
</content>
</entry>
</feed>
