feat: add Season temporal value object with block-to-season helper #204
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!204
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/12-season"
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 #12.
Models the liturgical season (tempus) so temporal fill and the output contract agree on one typed value rather than free strings. New under
src/Temporal/(Introibo\Core\Temporal) — season is structural to the temporal cycle, neither Layer-1 identity nor a per-edition attribute.What lands
Season— the eight traditional Roman seasons of the 1962 calendar:advent,christmastide,epiphany(Time after Epiphany),septuagesima,lent,passiontide,eastertide,pentecost(Time after Pentecost). GuardedfromString()+ named factories;value()is the stable machine name for output.Season::forBlock()— maps a coarse temporal block (a named stretch of the Proper of Time) to its season, with a genuine many-to-one: Passion Week (passiontide) and Holy Week (holy-week) both resolve toPASSIONTIDE. This is the seam the temporal factory (#14) will feed.Septuagesima and Passiontide are first-class seasons — the two most easily folded into their neighbours (the pre-Lenten fore-season, and the last two weeks of Lent). The tests pin both boundaries.
Acceptance criteria
value())forBlock())Verification
Local (portable toolchain):
composer lint22/22 ·composer analysePHPStan L6[OK]·composer test85/85 green.