Repository navigation
Fix Greek reading boundaries and add missing weekday Menaion readings (supersedes #236) - #252
Merged
Merged
Conversation
…6 hid Greek readings against goarch.org: 2024 89.5% -> 98.7%, 2025 90.3% -> 99.4%, 2026 92.9% -> 100%. Slavic output is unchanged. - 62 pericope boundaries where goarch.org and antiochian.org agree and orthocal split the passage differently. Rows are keyed by the citation they replace and carry the years each source corroborates them, and the loader stops rather than overwrite a row it does not recognise. - 11 weekday saints' readings that a 2026-only audit could not see, because each date falls on a Sunday in 2026. - Weekday cycle rows are stored twice, once per Paschal year; overrides now apply to both copies. - Chapterless books took an explicit chapter as the first verse, so "Jude 1:11-25" returned all 25 verses. - A golden-file test characterizes every harvested antiochian.org reading (2018-2026) by verse set, so a fix for one year that breaks another shows up as a diff naming the date.
- Point the Holy Friday and Sep 13 Greek Gospels at the existing Matt 27.62-66 (pk 124) and Matt 16.13-19 (pk 72) pericopes and drop the duplicate 312grk/311grk copies. That is what load_exact_boundaries.py's exact_pericope() produces, so the fixture now matches a fresh run of the loaders against main. - load_shared_menaion.py needs two pericopes that only load_exact_boundaries.py creates. Document the order, fail with a clear message instead of Pericope.DoesNotExist, and apply the rows in one transaction. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both sources print Matthew 27:62-66 for Holy Friday, but that is the Gospel of the Lamentations (Matins of Holy Saturday, served on Friday evening), not of Vespers. Swapping it into the Vespers slot dropped the composite Vespers Gospel for Greek users and left a Lamentations reading under a Vespers label. Drop the row from the boundary table and the fixture, and say why in the table and in the doc's addendum. The proper fix is to model the Lamentations as its own service. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This carries @dgrahamlong's work from #236 (his commit, unchanged apart from a rebase onto main), plus two small follow-up commits. It's opened from this repo so the fixes can land in one deploy without touching his fork. Thank you, Deion, for a careful piece of work, and for finding the problem in the first place (#228).
See #236 for the full description. In short, the Greek tradition was serving many passages with Slavic (OCA) pericope boundaries, and the old audit compared only each citation's opening verse, so it never saw them.
Follow-up commits
grkpericopes duplicating existing ones (Matt 16.13-19,Matt 27.62-66). They're dropped, and their readings point at the originals, which is whatexact_pericope()produces.load_shared_menaion.pynow says it must run afterload_exact_boundaries.py, fails with a clear message if it doesn't, and applies its rows in one transaction.Independent checks
Fresh goarch.org harvest: every day from 2018 through 2027, with full citations.
Readings vs goarch.org, by whole verse set: I used a separate parser, not the one in this PR.
The two 2026 differences are Holy Friday (above) and Nov 27, 1 Timothy 4:4-8 vs 4:4-8, 16.
No regressions: no reading that main matches goarch.org on is lost.
Slavic is unaffected: readings, fasting, titles and saints are identical between main and this branch for every day of 2018–2027, on both calendars.
Reproducible from the loaders: loading main's fixture and running
load_exact_boundaries.py,load_shared_menaion.pyandload_ordo.pyproduces this fixture.Tests: all 252 pass.
Left for follow-ups
docs/greek-lectionary.md.Supersedes #236. Closes #228.
🤖 Generated with Claude Code