| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(defect 7)
Six root-cause fixes to the generator, all in scripts/gen-sanctoral-ef.go,
then a full regeneration of internal/caldata/tridentine-calendar.ini
(323 -> 325 entries) against live missalemeum data:
1. Rank misinferred as "commemoration". A saint never OBSERVED in any
of the six reference years was unconditionally hardcoded to
RankCommemoration. 15 III-class feasts, all falling 6 March - 5
April, were always demoted by Lent's own privileged ferias in
every reference year -- a sampling artifact, not their true rank.
Fixed properly, not by hardcoding the 15: the commemoration
object's own id names the SAINT's true rank (idParts already
extracted it; only the colour half was kept before). But trusting
that rank unconditionally for every commemoration-only entry
over-corrected: some saints (St Blaise, St Canute, and others)
really are without an independent Mass in the 1960-reformed books,
demoted even on an ordinary, unprivileged day -- live-confirmed
against missalemeum, not inferred. refYearExplainsAbsence
distinguishes the two: the id's rank is trusted only when every
reference year's OWN temporal day (ignoring sanctoral data
entirely) was already strong enough to explain the demotion --
I/II class, an Ember day, or a privileged Lent/Passiontide feria.
A single unprivileged-day counter-example keeps RankCommemoration.
2. Two silent slug collisions. entries (the generator's global map)
is keyed by slug alone; two different fixed dates whose English
titles are identical ("St. Agnes" 21 Jan and 28 Jan; "St.
Boniface" 5 June and 14 May) silently dropped the second one add()
ever saw. Fixed at the dedup itself: a same-slug collision on a
DIFFERENT date is now disambiguated (a small curated slugOverride
for these two -- 28 January is the traditional "secundo"
commemoration of the same saint; 14 May's Boniface is a different
martyr from 5 June's Boniface of Mainz) rather than dropped.
3. Two early-exit bugs in harvestDate, both replaced with `continue`:
returning on the FIRST reference year that showed an observed
office discarded commemorations only visible in a LATER year (St
Theodore, 9 November, missing only from 2025, the first year
tried); the Christ-the-King skip used to abandon the whole date
outright instead of only that one movable year (St Evaristus, 26
October, invisible because 2025 -- tried first -- happens to be
the one reference year Christ the King lands there).
4. A new class of artifact the fix for (2) exposed rather than
caused: a movable-transfer feast displayed on whatever civil date
it actually landed on in one reference year (St Joseph pushed to
20 March by a Sunday of Lent; the Annunciation deferred past Holy
Week; All Souls moved to the Monday; St Matthias shown on the 25th
in a leap year) was being harvested as if it were a genuine
fixed-date office for THAT transferred date. idHomeDate compares
info.id's own embedded date against the mmdd being queried
(live-confirmed: 2023-03-20's id is "sancti:03-19:1:w") and skips
a mismatch.
5. classOf's substring matching, checked against the calendarium's
own verbatim titles: "purification" was never a Lord check at all
(calendarium "IN PURIFICATIONE B. MARIAE VIRG.", a BVM feast) and
is removed; "holy name" alone matched both "Holy Name of Jesus"
and "Most Holy Name of MARY" (calendarium "Sanctissimi Nominis
Mariae") and is now conditioned on the title not also naming Mary;
"baptism" is a new case -- "Commemoration of the Baptism of the
Lord" (13 January) ends "of THE Lord", not "of OUR Lord", the only
suffix classOf checked, so it was missing the marker entirely.
6. One curated exclusion, NOT a generator bug: missalemeum's own "St.
Romanus" commemoration on 9 August has no calendarium support (the
row there reads only "Vigilia, III classis.", no "Com." line) --
an upstream data quirk, recorded in knownSpuriousComm rather than
silently reproduced. "St. Eusebius" on 14 August (already known,
register M6) gets the same treatment for the same reason.
Witnesses (internal/caldata/caldata_test.go): TestTridentineClassOfLord,
TestTridentineLentRankNotCommemoration,
TestTridentineGenuineCommemorationStaysCommemoration,
TestTridentineNoMissingEntries, TestTridentineNoSpuriousRomanus,
TestTridentineNoTransferArtifacts, plus TestTridentineLoads' own
Purification class assertion corrected from its previous (wrong)
"lord" expectation. All fail against the pre-fix ini with messages
such as:
purification-of-the-blessed-virgin-mary: class = "lord", want ""
sts-felicitas-perpetua: rank = "commemoration", want class-3 (not commemoration)
missing "theodore" (11-09)
romanus present: the calendarium's 9 August row has no Com. line to support it
See the report for the full set.
internal/caldata/tridentine-calendar.ini is regenerated output
(go run scripts/gen-sanctoral-ef.go against live missalemeum data),
not hand-edited.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Populate the OF General Roman Calendar sanctoral and extend the OF readings to
weekdays and sanctoral days.
Sanctoral calendar (roman-calendar.ini: 29 -> 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 -> 1018 entries) via genlect-of.go:
- Weekday (ferial) 2-year cycle I/II, keyed <ferial-slug>-<WeekdayCycle>, 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 -> 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->1 J, PnP->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.
|
|
|
coverage)
|