aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/rites/rite_of/temporal_of.ml28
1 files changed, 26 insertions, 2 deletions
diff --git a/lib/rites/rite_of/temporal_of.ml b/lib/rites/rite_of/temporal_of.ml
index e375350..1da6cf9 100644
--- a/lib/rites/rite_of/temporal_of.ml
+++ b/lib/rites/rite_of/temporal_of.ml
@@ -532,8 +532,32 @@ let temporal d =
let anchors y =
let easter = Computus.gregorian_easter y in
let off n = Date.add_days easter n in
- [ ("of-nativity-vigil", mk y 12 24);
- ("of-nativity", mk y 12 25);
+ (* CORRECTED (celebrant-rubrics-phase1 review, 2026-08-26): this used to
+ list ("of-nativity-vigil", mk y 12 24) UNCONDITIONALLY -- a regression
+ from the earlier R8 fix, which added the Sunday guard to [named]
+ above (Tabula I.2 outranks I.3: on a Sunday, 24 December is the
+ Fourth Sunday of Advent, not the Vigil) but never updated this
+ function to match, so in 2028/2034 this list claimed the Vigil where
+ [temporal] actually returns "of-advent-sunday-4". This module's own
+ doc comment on [anchors] says its whole purpose is to "catch an
+ accidental single-site drift... rather than leaving it invisible" --
+ the irony being that it caught exactly this drift, just years later
+ than it should have, only once Validate.run was wired for the OF rite
+ at all (nothing before that compared [anchors] against [named]/
+ [temporal], so the two were free to disagree unnoticed). The Fourth
+ Sunday of Advent is not added as a replacement entry on a Sunday year:
+ it is an ordinary generic week-numbered Sunday
+ ({!sunday_slug}'s own "of-advent-sunday-4", produced every year
+ regardless of where in the week it falls), never one of the NAMED
+ days this function exists to restate -- see the module doc comment
+ above [anchors] ("Independent restatement of {!named}'s... dates").
+ [named]'s own guard is restated exactly, not re-derived: [named]
+ checks the WEEKDAY of the actual civil date, so this does too, rather
+ than assuming Advent 4 Sunday is always 24 December (it is any Sunday
+ 18-24 December; testing the weekday of 24 December itself is exact
+ regardless of which Sunday that turns out to be). *)
+ (if Date.weekday (mk y 12 24) = Date.Sun then [] else [ ("of-nativity-vigil", mk y 12 24) ])
+ @ [ ("of-nativity", mk y 12 25);
("of-mary-mother-of-god", mk y 1 1);
("of-epiphany", mk y 1 6);
("of-holy-family", holy_family y);