Skip to content

Greek lectionary: Aug 28 is Slavic-only, oca.org cross-check, and the commit #220 dropped - #224

Merged
brianglass merged 6 commits into
mainfrom
greek-aug28-and-oca-crosscheck
Aug 28, 2026
Merged

Greek lectionary: Aug 28 is Slavic-only, oca.org cross-check, and the commit #220 dropped#224
brianglass merged 6 commits into
mainfrom
greek-aug28-and-oca-crosscheck

Conversation

@brianglass

@brianglass brianglass commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Consolidates #217, #222 and #223 into one branch. Those three are closed in
favour of this; nothing from any of them is lost.

Six commits, each independently meaningful:

commit what it does came from
Add the 2020 Antiochian ordo rows re-lands a commit the #220 squash dropped #223
Aug 28's vigil set is Slavic only data fix + tests #223
Cross-check the Greek Menaion rows against oca.org docs only #222
Salvage the Great Vespers source trap docs only #217
Keep ordo pks stable across loader runs tooling only new
Regenerate the fixture with main's ordo pks fixture only new

1. Re-lands what the #220 squash missed

main is currently missing the last commit of #220. Two things were lost:

  • the 2020 Antiochian ordo rows2020-01-24 is a fifth date where the
    two jurisdictions genuinely differ (antiochian pdist=166 vs greek 147)
  • the doc note recording that antiochian.org returns HTTP 500 for 2027
    because their chart is not published yet
    , not because the API can't reach
    that far. Without this the horizon looks like a hard limit and several
    Part III questions stay wrongly closed.

Worth knowing for next time: because #220 was squash-merged, git merge-base --is-ancestor reports every commit from that branch as absent from main,
so it cannot tell you what landed. This was found by comparing file contents.

2. Aug 28's vigil set is Slavic only

Aug 28 carried a full vigil package tagged common — three Vespers OT
lessons, a Matins Gospel, and a proper Epistle/Gospel — for Job of Pochaev,
a 17th-century Ukrainian saint kept in the Russian church. Greek was being
served a saint it does not commemorate.

#217 logged this and deliberately left it alone: the evidence then was
inconclusive, and this project does not change reading data on inference. It is
now settled.

source Aug 28
antiochian.org ordinary daily cycle in 8 of 8 years (2019–2026), always titled with the plain cycle label
goarch.org agrees for 2026: 2 Cor 11:5-21 / Mark 4:1-9
oca.org confirms the set is right for Slavic

The absence is evidence rather than merely uninformative, which is what the
earlier pass could not establish. That same feed demonstrably does surface a
saint's proper readings when one applies — it is how most of the Greek Menaion
data in the doc was found, and on Jul 5 this very Epistle appears for Athanasius
of Athos.

Six rows retagged commonslavic. Verified both directions:

2026-08-28 slavic: Wis 3.1-9; Wis 5.15-6.3; Wis 4.7-15; Matt 11.27-30;
                   2 Cor 11.5-21; Gal 5.22-6.2 (St Job); Mark 4.1-9;
                   Luke 6.17-23 (St Job)
2026-08-28 greek : 2 Cor 11.5-21; Mark 4.1-9

3. The ten Menaion rows are correctly greek

Scoped greek in #220 because no OCA source was to hand. oca.org turns out to
be plainly fetchable, so this is now checked rather than assumed: nine of ten
are correctly greek
— oca.org gives either a different reading (Apr 25,
Apr 30, May 7, Jul 5's Gospel) or none at all (Jul 13, Aug 31, Sep 24, Dec 17).

The tenth is genuinely shared but still stays as two rows: both traditions read
Gal 5:22-26; 6:1-2 on Jul 5, but the attributions differ and both are right.
Slavic's says "either Saint" because OCA also commemorates the uncovering of
Sergius of Radonezh's relics that day; Greek's names Athanasius. Collapsing to
one common row would force one tradition's attribution on the other.

Incidentally: on all eight dates the app's Slavic output matches oca.org
exactly, Vespers and Matins included — the first direct check of the Slavic
data against its own source anywhere in the doc.

4. Salvaged from #217

#217's conclusion is superseded, but one finding in it is durable and was
recorded nowhere else — it is precisely what made the evidence look
inconclusive:

antiochian.org's Aug 28 page links a "Great Vespers" service text that is
actually Aug 29's Beheading of John the Baptist, served the evening
before and cross-linked from both dates.

Now a Part II source trap: a vigil-looking service linked from a page is not
evidence that that day carries a vigil. Read the citations, not the
attachments.

5. Loader no longer renumbers every ordo pk

Noticed while reviewing this branch's own diff: it touched 119 pk lines to
add one row
. load_ordo.py emptied OrdoReading and rebuilt it on each run,
so every harvest renumbered the table and buried the actual change.

The up-front delete() is replaced by a prune of what the sources no longer
produce; update_or_create then keeps a surviving row's pk.

The pks were safe to move, which is worth stating explicitly: OrdoReading is
the target of no foreign key (the schema's only relation is
Reading.pericope), and both the runtime lookup and the tests address these
rows by their natural key (jurisdiction, year, month, day, source). This is a
legibility fix, not a correctness one.

Also corrects the docstring's dump command from --indent=1 to --indent=2.
The fixture is stored at 2 and load_shared_menaion.py already documented that;
dumping at 1 reformats all ~62,000 lines, which has happened once already.

Verified: load the fixture, re-run the loader, dump — empty diff, all 60
rows keeping their pks — and a row the sources no longer produce is still
removed.

6. …and the churn already committed is undone

Fixing the loader stops future churn but does not undo what was already
committed in #223, so the branch still renumbered every ordo row (main's
60-118119-178). Rebuilt on top of main's own pks with the corrected
loader.

The fixture diff against main is now exactly the six Aug 28 retags and the
one added ordo row — 1 pk line touched instead of 119, and the file's
diffstat drops from 143 changed lines to 25. No data changed; 189 tests still
pass.

Verification

  • 189 tests, OK (1 skipped) — same count as before, no tests dropped
  • fixture diff contains exactly the intended changes and nothing else: 6
    commonslavic retags and 1 added ordoreading row, verified line by
    line; calendarium.reading row count unchanged at 1807
  • both behaviors spot-checked live (above, and 2020-01-24 correctly renders
    both jurisdictions with labels)

Closes

brianglass and others added 4 commits August 28, 2026 10:17
Harvesting the three ordo dates for 2020 filled the one gap in the Antiochian
side within its published range. The two jurisdictions now share 19 dates and
differ on five, up from four -- 2020-01-24 is a new one, where GOA reads
Matthew 22:1-14 and Antiochian Mark 12:1-12, and both are now shown labelled.

2027 could not be harvested: those dates return HTTP 500. That is not an API
horizon. The Antiochian liturgical chart is published a year at a time and
2027's does not exist yet, so the ordo has not been established. The doc now
says that rather than describing it as a reach limit, since the two call for
different responses -- wait and re-harvest, not give up.

Until then January 2027 shows GOA's reading alone and unlabelled, which is the
correct behaviour: a jurisdiction is only named when there is another to
contrast it with, and no contrast has been observed for that date.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019nQRjJpPqW89xqzAf1vsEX
Resolves the open question logged in PR #217. Aug 28 carried a full vigil
package tagged `common` -- three Vespers Old Testament lessons, a Matins
Gospel, and a proper Epistle and Gospel -- for Job of Pochaev, a
17th-century Ukrainian saint kept in the Russian church. Greek was being served
a saint it does not commemorate.

#217 deliberately left the data alone because the evidence then was
inconclusive, and this project does not change reading data on inference. It is
now settled:

  * antiochian.org shows only the ordinary daily cycle on Aug 28 in 8 of 8
    harvested years (2019-2026), always titling the day with the plain cycle
    label and never naming a commemoration.
  * goarch.org agrees for 2026: 2 Cor 11:5-21 / Mark 4:1-9.
  * oca.org confirms the set is right for Slavic.

The absence is evidence rather than merely uninformative, which is the part the
earlier pass could not establish. The same antiochian.org feed demonstrably
does surface a saint's proper readings when one applies -- that is how most of
the Greek Menaion data in this project was found, and on Jul 5 this very
Epistle shows up for Athanasius of Athos.

Six rows retagged common -> slavic. Slavic unchanged; Greek now shows the
daily cycle alone. TestAug28JobOfPochaev covers both directions and that the
day is not left empty.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019nQRjJpPqW89xqzAf1vsEX
The ten Menaion readings added in #220 were scoped `greek` because no OCA
source was to hand to say whether Slavic keeps them. oca.org's daily readings
are plainly fetchable, so the question is now settled rather than assumed.

Nine of the ten are correctly `greek`: on each date oca.org either gives a
different reading (Apr 25, Apr 30, May 7, and Jul 5's Gospel) or none at all
(Jul 13, Aug 31, Sep 24, Dec 17).

The tenth is shared -- both traditions read Gal 5:22-26; 6:1-2 on Jul 5 -- but
should stay as two rows rather than collapse to one `common` row. They carry
different attributions and both are right: Slavic's says "either Saint",
because OCA commemorates Athanasius and the uncovering of Sergius of
Radonezh's relics that day and the Epistle serves either, while Greek's names
Athanasius. Merging would force one tradition's attribution on the other.

Also adds oca.org to Part II's source notes, including the trap that surfaced
here: a commemoration appearing on the page does not mean it has proper
readings. oca.org lists the Appearance of the Cross on May 7 and the Myrtle
Tree icon on Sep 24 and gives neither a Liturgy reading.

Incidentally, on all eight dates the app's Slavic output matches oca.org
exactly, Vespers and Matins included -- the first direct check of the Slavic
data against its own source anywhere in the doc.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019nQRjJpPqW89xqzAf1vsEX
PR #217 logged the Aug 28 question and left the data alone. Its conclusion is
superseded, but the reason the evidence looked inconclusive is durable and was
not captured anywhere else: antiochian.org's Aug 28 page links a "Great
Vespers" service text that is actually Aug 29's Beheading of John the Baptist,
served the evening before and cross-linked from both dates.

Recorded as a Part II trap so closing #217 does not lose it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019nQRjJpPqW89xqzAf1vsEX
brianglass and others added 2 commits August 28, 2026 11:16
load_ordo.py emptied OrdoReading and rebuilt it on every run, so adding a
single harvested date renumbered every row. That is why this branch's fixture
diff touches 119 pk lines to add one row: the churn buried the change.

Replace the up-front delete with a prune of what the sources no longer produce.
update_or_create then keeps a surviving row's pk, and re-running the loader over
unchanged sources is a no-op against the fixture.

Nothing references these rows -- OrdoReading is the target of no foreign key,
and both the runtime lookup and the tests address rows by their natural key
(jurisdiction, year, month, day, source) -- so the pks were free to move. This
is about diff legibility, not correctness.

Also correct the docstring's dump command from --indent=1 to --indent=2.
The fixture is stored at 2, and load_shared_menaion.py already said so; dumping
at 1 reformats all ~62,000 lines and has caused exactly that once already.

Verified: loading the fixture, re-running the loader and dumping produces an
empty diff, with all 60 rows keeping their pks; and a row the sources no longer
produce is still removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019nQRjJpPqW89xqzAf1vsEX
The 119 pk lines in this branch's fixture diff were produced by the old
delete-and-rebuild loader, before the previous commit fixed it. Fixing the
loader stops future churn but does not undo churn already committed, so the
diff still renumbered every ordo row from main's 60-118 to 119-178.

Rebuilt on top of main's own pks with the corrected loader. The fixture diff
against main is now exactly the six Aug 28 `common` -> `slavic` retags and the
one added 2020-01-24 antiochian ordo row -- 1 pk line touched instead of 119.

No data changed; 189 tests still pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019nQRjJpPqW89xqzAf1vsEX
@brianglass
brianglass merged commit 41c5e55 into main Aug 28, 2026
4 checks passed
@brianglass
brianglass deleted the greek-aug28-and-oca-crosscheck branch August 28, 2026 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant