StrongsHebrew won't install: its strongs.doc is "outside the module's DataPath" #77

Closed
opened 2026-10-23 15:47:16 +00:00 by claude-bot · 1 comment
Collaborator

Found by the owner on the phone (PR #76 build c6ef183), installing from "+":

StrongsHebrew says not a useable module, as its outside the modules DataPath

The journal:

install StrongsHebrew failed: not a usable module: "modules/lexdict/rawld/strongshebrew/strongs.doc" is outside the module's DataPath

StrongsGreek, Robinson and TSK installed fine in the same run.

Cause:

  • StrongsHebrew's DataPath is a file prefix, ./modules/lexdict/rawld/strongshebrew/strongshebrew, so it is read as DataPath::Prefix { dir, stem }.
  • DataPath::owns (sword/src/install/package.rs ~247) accepts only files in dir whose name starts with stem.
  • The CrossWire package also ships strongs.doc in that same folder.
  • check() rejects the whole package because of it.

Wanted:

  • StrongsHebrew installs and opens.
  • Files that sit in a prefix module's own folder are accepted, not only files named with the prefix. Keep the reason for the check: a package must not write into another module's folder or outside modules/. So a prefix whose folder is shared with other modules (for example a DataPath directly under modules/lexdict/rawld/) keeps the strict stem rule.
  • Removal (#10 part 2b) must delete these extra files as well.
  • Survey: check every module in the starter presets (presets/) and the CrossWire main repo's lexdict/genbook packages for other extra files, and list any that would still be refused.

Proof:

  • a unit test with a package that has an extra file in the module's folder (fails before the change);
  • a test that a file in another module's folder is still refused;
  • a golden or e2e install of StrongsHebrew, if the fixtures allow.

Blast radius: trunk (sword/src/install*).

🤖 Generated with Claude Code

Found by the owner on the phone (PR #76 build c6ef183), installing from "+": > StrongsHebrew says not a useable module, as its outside the modules DataPath The journal: install StrongsHebrew failed: not a usable module: "modules/lexdict/rawld/strongshebrew/strongs.doc" is outside the module's DataPath StrongsGreek, Robinson and TSK installed fine in the same run. **Cause:** - StrongsHebrew's DataPath is a file prefix, `./modules/lexdict/rawld/strongshebrew/strongshebrew`, so it is read as `DataPath::Prefix { dir, stem }`. - `DataPath::owns` (`sword/src/install/package.rs` ~247) accepts only files in `dir` whose name starts with `stem`. - The CrossWire package also ships `strongs.doc` in that same folder. - `check()` rejects the whole package because of it. **Wanted:** - StrongsHebrew installs and opens. - Files that sit in a prefix module's own folder are accepted, not only files named with the prefix. Keep the reason for the check: a package must not write into another module's folder or outside `modules/`. So a prefix whose folder is shared with other modules (for example a DataPath directly under `modules/lexdict/rawld/`) keeps the strict stem rule. - Removal (#10 part 2b) must delete these extra files as well. - **Survey:** check every module in the starter presets (`presets/`) and the CrossWire main repo's lexdict/genbook packages for other extra files, and list any that would still be refused. **Proof:** - a unit test with a package that has an extra file in the module's folder (fails before the change); - a test that a file in another module's folder is still refused; - a golden or e2e install of StrongsHebrew, if the fixtures allow. Blast radius: trunk (`sword/src/install*`). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Author
Collaborator

Survey result (branch fix/strongs-datapath, real install() run over CrossWire rawzip packages): 70 packages (all 62 lexdict/genbook modules with RawLD/RawLD4/zLD/RawGenBook drivers + the presets' StrongsGreek, StrongsHebrew, Robinson, TSK, KJV, BSB, GerSch, GerElb1871, FreSegond1910).

68 install, 2 refused: KLVen_iklingon and KLViklingon_en, not by the data-path rule but because their conf is named mods.d/klveng.conf / klvklingon.conf rather than .conf. Not in any preset; left alone.

Other packages with extra files that the new rule accepts: Webster1913 (webstersdict.doc), PorLitCal2020 (style.css), ZhEnglish/ZhHanzi/ZhPinyin (README), RusCARSDict (images/).

Fix is in the draft PR for this issue.

Survey result (branch fix/strongs-datapath, real `install()` run over CrossWire rawzip packages): 70 packages (all 62 lexdict/genbook modules with RawLD/RawLD4/zLD/RawGenBook drivers + the presets' StrongsGreek, StrongsHebrew, Robinson, TSK, KJV, BSB, GerSch, GerElb1871, FreSegond1910). 68 install, 2 refused: KLVen_iklingon and KLViklingon_en, not by the data-path rule but because their conf is named mods.d/klveng.conf / klvklingon.conf rather than <module>.conf. Not in any preset; left alone. Other packages with extra files that the new rule accepts: Webster1913 (webstersdict.doc), PorLitCal2020 (style.css), ZhEnglish/ZhHanzi/ZhPinyin (README), RusCARSDict (images/). Fix is in the draft PR for this issue.
Sign in to join this conversation.
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
schaefera/utStudyBIble#77
No description provided.