Repository navigation
Description
The last release (v.2.2) was in December 2021, and the website was last updated in February 2022. Several corrections have been merged since, three of them today. This issue proposes how to get that work to the people who use the OSHB. Please comment if you see a problem or a better way. We will wait until 15 December 2026 before tagging the release.
cc @jdejoode, @scruffian (for the npm question below), and @noamraph, @rockclaver and @bdenckla, whose pull requests were merged today. Thank you all.
Where things stand
On master since v.2.2
- Changes requested by Randall Tan and Joel Ruark from Clear Trees work. #91 and Earlier requests #92: morphology and lemma corrections from the Clear trees work (95 lines across 31 books in
wlc/). - MAPM: Fix chapter names #98: chapter names fixed in
MAPM/MAPM.xml. - Add linking capability (to Read app) #103: verse linking in the Read app.
- Fix the structure of Ps.93.4, by treating the Azla Legarmeh in the first word as a SHALISH #108 (merged today): one cantillation-structure value in Ps 93:4.
- Implicit Articles and Syntax Trees #110 (merged today): documentation of the implicit article (
Rd) on the morphology codes page. - Update MAPM to the current Miqra according to the Masorah #114 (merged today):
MAPM/MAPM.xmlregenerated from the current Miqra according to the Masorah.
The website (hb.openscriptures.org) is built from the gh-pages branch, which was last merged from master on 2022-02-08. It differs from that point only by the CNAME file, so none of the above is live yet. Merging master into gh-pages today applies cleanly.
The npm package (morphhb) was last published as 2.0.2 in January 2019, and the index.js data in this repository was last touched in 2020. It does not reflect v.2.1, v.2.2 or anything since.
Proposal
1. Add automated checks first
#115 adds a GitHub Actions workflow that runs on every pull request and on pushes to master:
- every XML file is well-formed;
wlc/has 39 books and 23,213 verses, and every word has a lemma, a morph code and a unique id;MAPM/MAPM.xmlhas balanced verse markers and the same verse inventory aswlc/(apart from Josh 21:36–37, which MAM's text does not have);- no operating-system junk files are tracked (it also removes the four
Thumbs.dbfiles, as Clean up unnecessary proprietary data made by Windows #111 proposed); - a summary on each pull request of exactly which words and verses changed, to make review quicker.
It uses only the Python standard library, runs in a few seconds, and gives pull requests from forks a read-only token. Review of #115 is welcome.
2. Update the website
- Once Add automated data validation for pull requests #115 is merged, merge
masterintogh-pages, then check the Read app, the Structure viewer (including Ps 93:4) and the morphology codes page on the live site. This does not wait for the comment period. - Question: should the site build from
masterdirectly from now on? That would stop it falling years behind again, and the checks in step 1 would guard what goes live. The alternative is to keepgh-pagesand update it at each release. We lean toward building frommaster.
3. Release as 2.3
We suggest 2.3, not 3.0:
- OSHB version numbers have described the morphology data in
wlc/. Everything there since v.2.2 is a correction, which is what 2.1 and 2.2 were. - The one backwards-incompatible change is in
MAPM/MAPM.xml: qere readings are now marked, the song tables are gone, and four passages are renumbered to matchwlc/. That file is a companion text. It is not part of the npm package. - The release notes would carry a clearly marked "Breaking change in
MAPM/" section.
Question: does anyone depend on MAPM/MAPM.xml in a way that makes 3.0 the more honest number? If so, please say so here.
Release steps: tag v.2.3, publish a GitHub release with notes that credit each contributor, and attach OSHB-v.2.3.zip as in earlier releases.
4. npm
Not part of this release unless someone with publish rights wants to pick it up. Question: is anyone using the npm package, and would its maintainer be willing to publish an update or add a co-maintainer?
Follow-up work, not blocking
Thirteen other poetic verses have a first-word Azla Legarmeh coded as the top-level division by the same rule that #108 corrected for Ps 93:4: Ps 32:8, 36:7, 38:12, 76:6, 81:11, 87:5, 91:4, 91:15, 93:5, 113:9, and Prov 6:14, 6:22, 30:15. Each needs its own review. The evidence is in this comment on #108.
Timeline
- Done today: Fix the structure of Ps.93.4, by treating the Azla Legarmeh in the first word as a SHALISH #108, Implicit Articles and Syntax Trees #110 and Update MAPM to the current Miqra according to the Masorah #114 merged; Zarka vs. tsinnorit in Exodus 36:2 #109 closed; Add automated data validation for pull requests #115 opened.
- When Add automated data validation for pull requests #115 is merged: update the website.
- After 15 December 2026, taking comments here into account: tag and publish the release.
Drafted with the help of Claude (an AI assistant).
Activity
[-]Plan: update the website and release OSHB 2.3 (comments welcome until 24 November 2026)[/-][+]Plan: update the website and release OSHB 2.3 (comments welcome until 15 December 2026)[/+]bdenckla commentedon Nov 11, 2026
Written by a Claude session on 2026-11-10, at Ben Denckla's request.
On whether anyone depends on
MAPM/MAPM.xml: one program we know of does. OpenScriptorium'sapp/services/importers/oshb_features_importer.rbdownloads the file from this repository'smaster, unless it has a cached copy, and reads it line by line with regular expressions, importing the ketiv/qere notes, the parashot and the paragraph breaks.The new file keeps the 2014 line layout so that this importer goes on working, but the importer as it stands misreads the marked qere: run on the new file, a port of it gets every ketiv/qere note wrong. OpenScriptorium/OpenScriptorium#1, opened today, patches the importer to read the marked qere and keeps the old pattern for the 2014 file. An installation with a cached copy goes on importing the 2014 file until that copy is deleted.
We know of no other program that reads the file. Whether this makes 3.0 the more honest number is your call; either way, the release notes' "Breaking change in
MAPM/" section might link that pull request.bdenckla commentedon Nov 11, 2026
Written by a Claude session on 2026-11-10, at Ben Denckla's request.
On the follow-up list of thirteen verses: one of them is settled by the text. In Prov 30:15, Miqra according to the Masorah (MAM), now this repository's
MAPM/MAPM.xml, has oleh-weyored on the second הַב, written הַ֥֫ב, where WLC has only the merkha, הַ֥ב. By MAM's text the verse has an oleh-weyored, so the2belongs on הַ֥֫ב rather than on the verse's first chanted word. (I have not checked the Leningrad Codex itself.)In the other twelve, MAM's accents agree with WLC's except for a mark on the first syllable of the first chanted word in Ps 87:5 and Prov 6:14, which does not bear on the division. So those turn on the accent grammar, not on the text.
More generally, for questions of accent structure it is worth checking WLC's accents against MAM's, which is edited against the Aleppo Codex and related manuscripts. Runs of two accent grammars over WLC 4.22, with comparisons to MAM, flag 125 prose verses and 25 poetic ones: https://bdenckla.github.io/MAM-basics/wlc/accgram/goerwitz.html and https://bdenckla.github.io/MAM-basics/wlc/accgram/poetic.html. With
MAPM/MAPM.xmlin this repository, such a check needs nothing from outside it.