feat: fill the Septuagesima-to-Passiontide temporal block (#18) #335
No reviewers
Labels
No labels
area: build
area: ci
area: compare
area: data
area: engine
area: model
area: provenance
area: rite
area: validation
backport
blocked
breaking
confirmed
dependencies
duplicate
epic
github_actions
invalid
needs-info
needs-triage
php
priority: high
priority: low
priority: medium
regression
type: bug
type: chore
type: correction
type: docs
type: enhancement
type: feature
type: fix
type: perf
type: refactor
type: security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Directorium/Core!335
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/18-septuagesima-lent"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #18.
The second temporal block-filler — the penitential run toward Easter, entirely Easter-anchored via
PaschalSkeleton. Also extracts the sharedTemporalCalendarhelper and corrects the ferial Latin titles in both cycles to the 1962 Missal form.What's here
LentenCycle—forYear($year)fills[Septuagesima, Palm Sunday)(a fixed 56-day, Easter-anchored run) with one principal temporal office per day: pre-Lent (Septuagesima/Sexagesima/Quinquagesima), Lent (from Ash Wednesday), and Passiontide (from Passion Sunday). All violet. Hands off to the Holy Week block (#19) at Palm Sunday.TemporalCalendar— extracts the UTC-midnight date arithmetic and the single definition of liturgical weekday naming (roman,feriaToken,feriaLatin) shared by the block-fillers.ChristmasCycleis migrated onto it with no behaviour change (#17's tests still pass; the refactor was independently verified behaviour-preserving).Accuracy (1960 rubrics — the raised ferial ranks)
Ash Wednesday is a first-class feria; the Ember Days of Lent are second class; the other ferias of Lent and Passiontide are third class; pre-Lenten ferias stay fourth class. The Sundays of Lent are all first class (feasts transfer off them); the pre-Lenten Sundays are second class. Laetare (Lent IV) is violet with rose permitted; Passion Sunday opens Passiontide.
An adversarial multi-agent review drove two corrections (applied to both cycles):
Feria N infra Hebdomadam W <season>— e.g. "Feria II infra Hebdomadam I in Quadragesima", "… Adventus", "… post Epiphaniam", "… Passionis" — replacing a non-authoritative "hebdomadae" form.Both verified against reproductions of the 1962 Missale Romanum (Lent, Advent).
Gates
Anchors match
PaschalSkeleton; a 1583–2200 sweep confirms a 56-day contiguous block, monotonic Septuagesima→Lent→Passiontide seasons, and unique identities.composer lint(PSR-12) ·composer analyse(PHPStan L6) ·composer test— 254 tests, 7990 assertions green locally.