feat: implement the feast-transfer queue (#34) #350
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!350
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/34-transfer-queue"
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 #34. Epic #29, issue 5/8.
What
A displaced first-class feast is transferred, not dropped (n. 95):
Precedence\TransferLedger— the queue of impeded first-class feastsawaiting a free day. Enqueued with the day it was impeded on; drained onto free
days highest-precedence first (earliest impeded, then canonical id).
PrecedenceRules::forcedTransferDate()— the one feast with a fixedtarget: the Annunciation → the Monday after Low Sunday (Easter + 8, n. 96a),
placed directly by the sweep, bypassing the queue.
All Souls' next-day reassignment (n. 96b) falls out of the ordinary next-free-day
placement. The whole-year forward sweep that drives the queue and assembles
the day is #37.
Verification
composer lint·composer analyse(PHPStan L6, no errors) ·composer test(450 tests, 30,279 assertions — +10; Annunciation forced target computed as
Easter 2025 + 8 = 28 Apr). Commits signed + DCO.