-
released this
2026-08-05 19:02:26 +00:00 | 2 commits to develop since this release🚀 v0.1.0
We are pleased to announce the release of v0.1.0!
What's Changed
✨ New Features
- Add Observance identity value object and ID grammar (#201)
- Add RankClass and LegacyRank rank attribute value objects (#202)
- Add Colour and ElementColour liturgical colour value objects (#203)
- Add Season temporal value object with block-to-season helper (#204)
- Add LiturgicalDay aggregate and day() entry point (#205)
- Add Computus for Gregorian Easter (Meeus/Jones/Butcher) (#206)
- Add PaschalSkeleton for Easter-anchored movable feasts (#207)
- Fill the Advent-to-Epiphany temporal block (#17) (#334)
- Fill the Septuagesima-to-Passiontide temporal block (#18) (#335)
- Fill the Holy Week and Paschal Triduum block (#19) (#336)
- Fill the Eastertide-to-Pentecost temporal block (#20) (#337)
- Fill the Time-after-Pentecost temporal block (#21) (#338)
- Place the special movable feasts (#22) (#339)
- Load the fixed-date sanctoral onto the calendar grid (#24) (#340)
- Order co-occurring sanctoral feasts by rank (#25) (#341)
- Represent commemorations and the displaced set (#26) (#342)
- Map sanctoral vigils and attach them to their feast (#27) (#343)
- Apply octave handling for the surviving 1960 octaves (#28) (#344)
- Leap-year bissextile placement of the late-February feasts (#333) (#345)
- Define the 1962 precedence rule-table scaffold (#30) (#346)
- Resolve occurrence outcomes, first class (#31) (#347)
- Resolve occurrence for second, third, and fourth class days (#32) (#348)
- Resolve Sunday versus feast occurrence (#33) (#349)
- Implement the feast-transfer queue (#34) (#350)
- Resolve concurrence of First and Second Vespers (#35) (#351)
- Apply commemoration limits and ordering per day class (#36) (#352)
- Assemble the resolved day and wire day() (#37) (#353)
- Serialise the resolved day to the versioned output contract (#53) (#354)
- Stamp the corpus version on the output contract (#54) (#355)
- Guarantee stable cross-system feast identifiers (#55) (#356)
- Assert i18n text shape and chant/audio hooks (#56) (#357)
- Encode the liturgical-day boundary and First Vespers (#57) (#358)
- Define the generated corpus file schema and layout (#363)
- Add the Node corpus generator pipeline skeleton (#40) (#413)
- Born-cited provenance gate and CC0 licensing for the corpus (#44) (#414)
- Freeze resolveYear() as a golden-fixture safety gate (#365) (#416)
- Author the full 1962 General Roman Calendar sanctoral (#41) (#417)
- Make the temporal skeleton data-driven (#42, part 1) (#418)
- Make temporal office attributes data-driven (#42, part 2) (#419)
- Make the precedence table data-driven (#43) (#420)
- Emit a cited resolution trace from day() (#234) (#432)
- Explain colour and season in the resolution trace (#235) (#433)
- Particular-calendar overlay model and decorator (#75) (#442)
- Cited overlay data format, generator and loader (#76) (#443)
- Select a particular calendar via day()/contract() (#78) (#444)
- SSPX particular-calendar conformance gate (#80) (#445)
- Rubric-system (edition) abstraction seam (#59) (#446)
- 1954 edition foundation — multi-edition generator + legacy rank scheme (#64) (#447)
- 1954 sanctoral octave subsystem (safer split) (#65) (#449)
- Reintroduce pre-1955 sanctoral vigils for the 1954 edition (#66) (#450)
- 1954 Divino Afflatu precedence engine (#67) (#451)
- Full 1954 Divino Afflatu sanctoral dataset (#64) (#452)
- 1955 interim edition (Cum nostra hac aetate) — data, engine, validation (#456)
- Regression safety for multi-system support (#72)
- Calendrical & astronomical block (#242)
- Fasting & abstinence discipline (#247)
- Office of the Dead — All Souls (2 Nov) in every edition (#453)
- 1954 sanctoral octave days — comites Christi, All Saints, Immaculate Conception (#453)
- Privileged temporal octaves for 1954 — Epiphany, Corpus Christi, Ascension, Sacred Heart (#453) (#462)
- 1954/1955 moveable feasts — Passiontide Seven Sorrows + Solemnity of St Joseph (#453) (#465)
- Saturday Office of Our Lady + pre-1955 precedence tie-breaks (#453) (#466)
- Make the 1954 and 1955 editions publicly resolvable (#453) (#467)
- Generic 1962 baseline overlay — the identity particular calendar (#83) (#468)
- FSSP and ICKSP particular-calendar overlays (#81, #82) (#469)
- Calendar-mode comparison across editions (#312, #313) (#472)
- Citable & reproducible dataset — integrity gate + release artifact + DOI prep (#238, #239, #241) (#473)
- Declare the Novus Ordo edition + Ordinary Time season (#256) (#478)
- Generator support for authoring a whole peer edition (#256) (#479)
- Novus Ordo Ordinary Time engine + edition-selected temporal cycle (#258) (#480)
- Novus Ordo precedence — the reformed Table of Liturgical Days (#257) (#481)
- Provenance gate — temporal day-labels may cite a reference source (option A, #108) (#482)
- Novus Ordo Ordinary Time in the cited corpus (#108) (#483)
- Novus Ordo Advent + Christmas Time in the cited corpus (#108) (#484)
- Novus Ordo Lent, Holy Week, Easter Time & movable feasts in the cited corpus (#108) (#485)
- Novus Ordo General Roman Calendar sanctoral, discipline & Table of Liturgical Days (#108) (#486)
- Surface Novus Ordo optional memorials and open the public boundary (#260) (#488)
- Dated decree overlays make the Novus Ordo a living calendar (#366) (#489)
- Reserve the additive day-level
officekey (v1.2 Office/text layer) - Corpus-vs-engine golden digest gate; engineVersion 0.5.0 (Stage 0.3b)
- Generalize the born-cited gate to office/text; reserve schemas (Stage 0.4a)
- Register v1.2 Office/text sources; bump corpusVersion (Stage 0.4b)
- Office-structure axis — part-type vocabulary + transformOffice wiring (Stage 1)
- Hour/PartType/OfficeStructure value objects + OfficePartPath grammar (Stage 1)
- StructureAttributes read seam + Corpus office readers (Stage 1)
- Ingestion core — NFC, verse-keying, versification-mismatch (Stage 2a)
- Ingest Clementine + Douay-Rheims psalters into paired verse streams (Stage 2b)
- Ingest the five Office canticles into paired scripture streams (Stage 2c)
- Assemble the office-structure tree into the reserved day office key (Stage 3)
- Add the per-office proper-text store and resolve proper parts (Stage 4a)
- Seed the Little Office BVM per-annum Lauds (Stage 4b)
- Seed the Little Office BVM per-annum Little Hours (Stage 4b)
- Seed the Little Office BVM per-annum Vespers + Compline (Stage 4b)
- Seed the Little Office BVM per-annum Matins (Stage 4b — all 8 hours)
🚀 Improvements
- Resolution benchmark, cache-flush hook, and budget (#95, #96) (#474)
- Memoise the day-independent office and retarget tests to the seed
🐛 Fixes
- Keep the Sacred Triduum from being displaced by a coincident saint (#422) (#423)
- Never celebrate a commemoration-grade office over the feria (#424) (#425)
- Rank Advent Sundays first class and Advent ferias third class (#428) (#436)
- Correct sanctoral ranks and add their co-commemorations (#428) (#437)
- Add the Commemoration of the Baptism of the Lord (Jan 13) (#428) (#438)
- Enforce a scan locator on text-leaf citations (§4.4)
- Match two Little Hours collect accents to the Benziger scan
- Keep the printed period at the Matins responsory repeat-divisions
📊 General Changes
- Scaffold workflow-full baseline
- Link roadmap headings to milestones (#195) (#196)
- Auto-add new issues to the project board (#197) (#198)
- Scaffold composer package with PSR-4 autoloading (#199)
- Add PSR-12 and PHPStan tooling with lint/analyse scripts (#200)
- Add governance, provenance ledger, and security scanning (#208)
- Roadmap — add accuracy/authority, comparison, editions & multi-rite milestones
- Complete the output-contract spec and stability guarantees (#58) (#359)
- Auto-roll project board status by progress (#360) (#361)
- Flip an epic to In Progress on any started sub-issue (#362)
- Roadmap v3 — renumber to release order, SSPX-first train, new scope (#411)
- Lock roadmap-v3 architectural decisions (pre-launch bake-ins) (#412)
- Cross-check Computus against PHP easter_days() (#46) (#421)
- Harvest and pin the missalemeum oracle fixture (#47) (#426)
- Assert engine day() against the missalemeum oracle (#48) (#427)
- Add the SSPX 1962 ordo as a secondary validation oracle (#49) (#429)
- Add an optional Divinum Officium Perl oracle adapter (#50) (#430)
- Gate the validation harness in CI as an explicit check (#51) (#431)
- Prove every resolution-trace step foreign-keys a real source (#236) (#434)
- Pin golden-master traces for contested days (#240) (#435)
- Derive 1954 rank from legacyRank; add generator unit tests (#448)
- Introibo -> Directorium (#454)
- Point org references at DirectoriumApp (#455)
- Dedicated 'validate (overlays)' gate for the particular calendars (#87) (#470)
- Reclassify season as an open, edition-scoped vocabulary (#364) (#471)
- Core integration guide + calendars/editions reference (#92, #93) (#475)
- Freeze the public API surface and the 1.0 output contract (#89, #90) (#476)
- Finalise composer metadata and lean packaging for 1.0 (#98) (#477)
- Validate the Novus Ordo calendar against two independent oracles (#260) (#487)
- Enable Renovate dependency updates
- Add approved v1.2 office-structure + bilingual-text spec
- Make Forgejo Actions green — containerize PHP jobs, gate GitHub-only workflows (#496)
- Declare availability + leaf rights OPEN; add v1.2 text-layer scope (Stage 0.2)
- Track engineVersion via Directorium::VERSION (Stage 0.3, must-fix #B)
- Wrap over-long Provenance line from the 0.3a de-hardcode
- Re-freeze public surface — additive Corpus office readers (Stage 1)
- Record Stage 2b decisions — imprints pinned, Venite Gallican-if-br1961 (Open-Q #10, #12)
- Retarget corpus + provider tests to the seeded LOBVM office
- Re-freeze the golden year for the LOBVM Lauds seed
- Re-freeze the golden year for the Little Hours seed
- Re-freeze after the collect accent corrections
- Re-freeze the golden year for the Vespers + Compline seed
- Re-freeze the golden year for the Matins seed
- Re-freeze after the responsory repeat-division fix
- PROJECT.md — four repos, one platform, and what clean-room means here
- PROJECT.md — the finished brief
- Port release automation off release-please to the tier-kit git-cliff flow (#508)
- Sync release automation to the kit — no placeholder sections, and an RC path
- Stop the release publishing notes with commits silently missing
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads