aboutsummaryrefslogtreecommitdiff
path: root/internal/calendar/temporal_ef.go
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-18 15:23:22 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-18 15:23:22 +0200
commit4b2e1a1e0d52cba62ab7f80aecf3506c323b47fd (patch)
tree3966ced8b77fe74f124b978e86984e9bcb953d84 /internal/calendar/temporal_ef.go
parent46653b24b0afff60be35c3e876830eb522fd2acc (diff)
downloadlectio-4b2e1a1e0d52cba62ab7f80aecf3506c323b47fd.tar.gz
lectio-4b2e1a1e0d52cba62ab7f80aecf3506c323b47fd.zip
fix(ef): Good Friday is black (RG 128(b) + RG 132)
This file's own comment called RG 132's black "a separate, unmodelled gap". It is modelled now. RG 128(b)'s exception list carries Good Friday in the same sentence as Holy Thursday's -- "Actione liturgica feria VI in Passione et Morte Domini usque ad Communionem exclusive" excepts the day from Passiontide's violet -- and RG 132 assigns black to it. Adopted from colitur, which closed the same gap against the Missal in its v0.4.0. The rubric is per-action and this model carries one colour per day, so black is the day's principal colour, the same acknowledged limit the Palm Sunday blessing already has. missalemeum's own colour set for the day is "bv", black first, so the oracle test accepts this without a new allow-list entry. Found by cross-checking clectio's output against colitur date by date, NOT by the patch tool that produced the earlier eight corrections. That tool compares colitur's sanctoral data against this repo's calendar ini, so a temporal day -- computed in code on both sides, in neither file -- is structurally invisible to it. Its docstring now says so. TestTemporalEFHolyThursdayColour asserted Good Friday was violet "(unchanged)", encoding the gap; renamed to TestTemporalEFTriduumColours and updated. A test asserting the absence of a feature passes for exactly as long as the feature is absent, which is not the same as being correct. Holy Saturday is still pinned violet in the other direction, so a careless "the whole Triduum is black" change fails there.
Diffstat (limited to 'internal/calendar/temporal_ef.go')
-rw-r--r--internal/calendar/temporal_ef.go21
1 files changed, 18 insertions, 3 deletions
diff --git a/internal/calendar/temporal_ef.go b/internal/calendar/temporal_ef.go
index c649405..3d6c72c 100644
--- a/internal/calendar/temporal_ef.go
+++ b/internal/calendar/temporal_ef.go
@@ -100,12 +100,27 @@ func temporalEF(date time.Time) temporalDay {
// Holy Thursday (the Mass of Chrism and the Mass in Cena Domini) is white,
// a whole-Mass exception to Passiontide's violet -- RG 128(b)'s own named
// exception list, and RG 122 stating the same fact affirmatively in the
- // White section. Good Friday and Holy Saturday, either side, are NOT
- // exceptions here (RG 132's black for Good Friday's liturgical action is a
- // separate, unmodelled gap -- see precedence_ef.go's doc comments).
+ // White section.
if sameDay(date, easter.AddDate(0, 0, -3)) {
col = White
}
+ // Good Friday is BLACK. RG 128(b)'s exception list carries it in the same
+ // sentence as Holy Thursday's -- "...Actione liturgica feria VI in Passione
+ // et Morte Domini usque ad Communionem exclusive..." excepts the day from
+ // Passiontide's violet -- and RG 132 assigns black to it. Adopted
+ // 2026-08-18 from the sibling project colitur, which closed the same gap
+ // against the Missal; this comment previously called it "a separate,
+ // unmodelled gap" and it no longer is.
+ //
+ // The rubric is per-ACTION ("usque ad Communionem exclusive", violet
+ // returns for the Communion rite) and this model carries one colour per
+ // day, so black is the day's principal colour -- the same acknowledged
+ // limit the Palm Sunday blessing already has. missalemeum's own colour set
+ // for the day is "bv", black first, so even the upstream this file is
+ // generated against agrees on the ordering.
+ if sameDay(date, easter.AddDate(0, 0, -2)) {
+ col = Black
+ }
sun := date.Weekday() == time.Sunday
// Major feasts of the Lord (I class): nice titles + colour.