| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Mary, Mother of the Church and the Immaculate Heart of Mary are computed in the
engine (no fixed-date INI entry), so they fell back to the ferial. Attach their
proper Masses inline: Mary MotC = Gen 3:9-15,20 / Ps 87 / John 19:25-34;
Immaculate Heart = Isa 61:9-11 / 1 Sam 2 canticle / Luke 2:41-51. Verified they
render when observed (Immaculate Heart 2029-06-09). Extends TestOFMovableMemorials.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(date-based)
Completes the seasonal weekday lectionary. The Christmas-season weekdays sit on
the AdventChristmas page in a SHIFTED 6-column layout (Day in c[1], not c[2] like
Advent's 7-column) -- the generator now finds the Day column wherever it is. Adds
date-based slugs to temporal.go: christmas-dec-<29..31> (octave), christmas-jan-<2..7>
(before Epiphany), christmas-after-epiphany-<weekday> (before the Baptism). Fixes
the christmas-octave-fri coverage gap and the by-date/by-week collision.
362/362 seasonal ferial-days render across 2026-2029 with 0 gaps. Extends
TestOFSeasonalFerials. All of Advent/Lent/Easter/Christmas weekdays now CR-sourced;
only the Commons remain (optional -- memorials default to the ferial).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
late Advent
Re-sources the proper weekdays of Advent (weeks 1-3), Lent, and Eastertide from
catholic-resources.org (scripts/genlect-of-season-ferials-cr.py; single-cycle, so
both -I/-II keys get the same readings). The diff caught real niedziela defects:
- Easter weekday first readings contaminated (easter-3-mon had 1 Cor 15 instead
of Acts 6:8-15; easter-4-thu had Rev 12 instead of Acts 13:13-25).
- The Easter octave weekdays (Easter Mon-Sat) had no readings at all.
- Stray psalm-numbering artifacts (147A(146), Ps42(41)) cleared.
Late Advent (Dec 17-24) is proper to the DATE, not the Advent week, so temporal.go
now keys those days 'advent-dec-<day>' (fixing the same by-date/by-week collision
as the OT numbering) and the generator supplies them (Dec 17 = the genealogy
Matt 1:1-17; Dec 24 = the Benedictus).
157 seasonal ferial-days render across 2026-2028 with 1 residual gap
(christmas-octave-fri). Adds TestOFSeasonalFerials, credits the source, bumps to
0.43.0. Christmas-season weekdays (Dec 29-31, Jan 2-5) remain niedziela-sourced
(CR's shifted layout + Epiphany-dependent assignment -- a documented follow-up).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Ordinary Form ferial lectionary had two linked defects, both from harvesting
niedziela.pl by date: (1) post-Pentecost Ordinary-Time ferial WEEK NUMBERS were
one too high (temporal.go counted back from Christ the King using the weekday
itself, not its preceding Sunday, so a ferial took the next week's number), and
(2) ~17 ferial keys held a SAINT's readings (stored when a saint displaced the
ferial on the queried date, e.g. week 22 smeared with a Marian Prov 8/John 2),
plus 16 weekday slots were missing entirely.
- temporal.go: number a span-2 ferial from its preceding Sunday. Verified
388/388 ferial-week agreement with calapi across 2026-2028.
- scripts/genlect-of-cr.py: regenerate the Ordinary-Time ferial lectionary
(first/psalm/gospel, both years, all 34 weeks) from catholic-resources.org
(Fr. Felix Just, S.J.), which is keyed by liturgical position (immune to
by-date contamination) and complete. Citations only; text still rendered from
the public-domain corpora. of-lectionary.ini OT ferials now 408 (was 392).
Fixes ~17 contaminated entries + 16 gaps + the week-numbering audit item. Psalms
already share modern numbering, so no conversion. Adds TestOFOrdinaryTimeFerialWeek.
Credits catholic-resources.org in NOTICE. Bumps to 0.40.0.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
transfers)
Ordinary Form:
- Add the movable Marian memorials that have no fixed date: Mary, Mother of the
Church (Monday after Pentecost) and the Immaculate Heart (Saturday after the
Sacred Heart), computed in computeOF.
- General Norms 60: two coinciding obligatory memorials both become optional and
the ferial is observed -- except Mary, Mother of the Church, which keeps
precedence per its 2018 decree.
Extraordinary Form:
- Capture fixed-date vigils in the sanctoral harvest (Christmas, the Nativity of
St John the Baptist, Sts Peter & Paul, St Lawrence, the Assumption, All Saints,
the Immaculate Conception) -- previously filtered out.
- temporalEF: the movable vigils of the Ascension (I class eve) and Pentecost
(Whitsun Eve), and the September/Advent Ember days (II class violet ferias).
- transferIfImpededEF: the Annunciation transfers past Holy Week/the Easter
octave to the Monday after Low Sunday; All Souls moves to Nov 3 when Nov 2 is a
Sunday.
- genlect harvests proper Masses for the new Ember/vigil days.
Adds TestEFCoverage + TestOFMovableMemorials. Bumps to 0.39.0.
Verified per-day: OF 0 real errors vs calapi (2026-2028, 100% correct-observed);
EF 0 real errors vs missalemeum (2025-2027), residual = deep-tail vigil-occurrence
and St Joseph Passiontide-transfer edges (~1-2 days/yr, documented).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Septuagesima ferias are IV class (per annum), not III class, so a III
class saint (e.g. Conversion of St Paul, Jan 25) displaces them.
- Holy Week ferias and the privileged octaves of Easter and Pentecost are
I class: no saint's feast is admitted (temporal office wins).
- Occurrence tie-break is asymmetric by season: an ordinary feria (Advent,
per annum) yields to an equal-class feast; Lent/Passiontide ferias keep
their privilege and win the tie.
- A II class feast of the Lord (Purification, Exaltation of the Cross,
Dedication of the Lateran) displaces a II class Sunday it falls on.
Validated against missalemeum across 2025-2027: ~97.5% of days observe the
liturgically-correct celebration, 100% rank agreement on saint-days.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Latin fallback
Finish the Extraordinary Form (1962) offline Mass readings so every day of
the year resolves in both English and Polish.
Temporal engine (temporal_ef.go):
- Unique ferial slugs "ef-<season>-<week>-<weekday>" so penitential-season
weekdays (Lent, Advent, Passiontide, Easter octave) can key their own
proper Masses; green-season ferias have no entry and fall back to the
preceding Sunday (the 1962 rule).
- Special "ef-lent-after-ashes-<weekday>" case for the days between Ash
Wednesday and Lent I, which have their own propers.
Lectionary (tridentine-lectionary.ini, 55 -> 143 entries) via genlect.go:
- Generator now fetches proper-season weekdays and stores a feria only when
its Mass differs from the preceding Sunday's.
- cleanCite() normalises two missalemeum data glitches: a stray comma
between book and chapter ("4 Kings, 5:1" -> "4 Kings 5:1") and a
period-as-separator ("John 20. 19-31" -> "John 20:19-31"), both guarded so
legitimate multi-chapter citations are untouched.
Citations & corpora:
- books.ini: Douay abbreviations in the [en] dialect (Ex, Ezech, Jonas, and
3/4 Kings -> canonical 1/2 Kings), so the EF Lenten epistles resolve while
the display keeps modern sigla.
- drb.tsv: +205 rows backfilling the deuterocanonical Daniel 13-14 (Susanna,
Bel) and Esther 11-16 (Greek additions) from get.bible douayrheims, which
the base corpus omitted; scripts/gen-deutero.py documents the fetch.
Rendering (liturgy.go):
- readingLine() falls back to the Latin Vulgate (complete) when the
vernacular corpus lacks a passage, with a clear note. Covers the Polish
Wujek deuterocanon gap (no clean public-domain source exists) and any
future vernacular gap; faithful to the EF as a Latin rite.
Result: 730/730 days resolve for both EN (native) and PL (native + Latin
fallback for 3 deuterocanon days). Version 0.32.0 -> 0.33.0.
|
| |
|
|
|
|
|
|
|
| |
Unique temporal-day slugs (season-sunday-week); scripts/genlect.go generates
tridentine-lectionary.ini from missalemeum keyed by slug (55 entries: the
Sundays of the whole EF year). caldata.TemporalReadings(form,slug) lookup;
--liturgy resolves proper-of-feast else the temporal cycle and renders the text.
bible.ParseRef strips abbreviation dots (1 Cor. -> 1 Cor). 52/53 Sundays fully
resolve offline.
|
| |
|
|
|
|
| |
temporalEF validated against Divinum Officium data. Season-mapping handles the
Whit octave (Paschaltide), the Christmas vigil (Advent), and the resumed
Epiphany Sundays (within Time after Pentecost).
|
| | |
|
| |
|
|
| |
temporal-before-sanctoral)
|
| |
|
|
|
|
| |
8 EF seasons by date boundary (Septuagesima, Passiontide, Time after Epiphany/
Pentecost + shared); major feasts of the Lord; Christ the King = last Sun of
October. ParseRank accepts EF ranks.
|
| |
|
|
|
|
|
| |
oracle 0 mismatches)
Adds EF rank constants (class-1..4, commemoration); ofRankOrder() for the two
ordered comparisons; buildCelebration defaults missing rank to ferial.
|
| |
|
|
| |
Also: reject out-of-range MM-DD in resolveDate (strict validation for user data).
|
| |
|
|
| |
superseded ferial from Others
|
| | |
|
| |
|
|
|
|
| |
Caught + fixed an Advent-start bug: anchor on Christmas Eve, not Dec 25, so
years where Dec 25 is a Sunday don't lose the first week of Advent. Rank-class
diffs (324) are informational — the initial sanctoral dataset is partial.
|
| |
|
|
| |
Sunday band before solemnity-rank fallback
|
| |
|
|
|
|
| |
cycles
Also: deterministic pick tiebreak by slug.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
sunday-after)
|
| |
|