feat: apply commemoration limits and ordering per day class (#36) #352

Merged
manlycucumber merged 1 commit from feature/36-commemoration-limits into develop 2026-07-02 03:39:37 +00:00
manlycucumber commented 2026-07-02 03:37:17 +00:00 (Migrated from github.com)

Closes #36. Epic #29, issue 7/8.

What

  • commemorationLimit() (interface + 1962 impl) — the day's admitted count:
    the celebrated office's class count from Calendar\CommemorationLimit
    (I: 1, II: 1, III/IV: 2), reduced to 0 on days that admit none (the
    Triduum, the privileged octaves, the first-class vigils).
  • isPrivilegedCommemoration() promoted to the interface (n. 108).
  • Precedence\CommemorationSelector — orders the day's commemoration
    candidates privileged first (so a tight count keeps them), then by tier,
    then by id, and trims to the limit, dropping the rest (n. 114).

The whole-year sweep that gathers the candidates and calls this is #37.

Verification

composer lint · composer analyse (PHPStan L6, no errors) · composer test
(461 tests, 30,303 assertions — +10). Commits signed + DCO.

Closes #36. Epic #29, issue 7/8. ## What - **`commemorationLimit()`** (interface + 1962 impl) — the day's admitted count: the celebrated office's class count from `Calendar\CommemorationLimit` (I: 1, II: 1, III/IV: 2), reduced to **0** on days that admit none (the Triduum, the privileged octaves, the first-class vigils). - **`isPrivilegedCommemoration()`** promoted to the interface (n. 108). - **`Precedence\CommemorationSelector`** — orders the day's commemoration candidates **privileged first** (so a tight count keeps them), then by tier, then by id, and trims to the limit, dropping the rest (n. 114). The whole-year sweep that gathers the candidates and calls this is #37. ## Verification `composer lint` · `composer analyse` (PHPStan L6, no errors) · `composer test` (461 tests, 30,303 assertions — +10). Commits signed + DCO.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Directorium/Core!352
No description provided.