summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-26 12:55:23 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-26 12:55:23 +0200
commitf893a2019e7ad57a57154926c8e0e01aa99aa473 (patch)
treefc3b61fab66c1640c31b1c8e67d78d60e3993eab /data
parente6cb5937be7f009eab11f3cf85205d1fde25eb48 (diff)
downloadcolitur-f893a2019e7ad57a57154926c8e0e01aa99aa473.tar.gz
colitur-f893a2019e7ad57a57154926c8e0e01aa99aa473.zip
fix(install): ship the OF runtime data files, guard the installed layout
data/dune's install stanza named only the four EF runtime files, so a `dune install`ed colitur exited 2 on any --rite of invocation (`failed to load .../data/of/calendar-2002.sexp`) -- the branch's headline feature was dead on an installed binary. Add all 15 OF files (calendar-2002.sexp, the 13 amendments/*.sexp, lectionary.sexp) to the (files ...) stanza, following the existing ef/ entries' form and the stanza's own stated rule (deliberately not the litcal allow-list, a test fixture, same reasoning already given for the EF pair). Add a regression guard for the class of bug, not just this instance: `make check-install` performs a real `dune install --prefix <scratch>` and runs both rites against the INSTALLED binary, asserting exit 0 and the expected day count. test/cli.t's cram sandbox binds %{bin:colitur} inside the build tree, where data_dir()/of_data_dir()'s build-tree fallback candidate resolves even when the installed one is missing entirely -- so no cram test could have caught this. Wired into `make check` (unlike check-schema/check-templates/check-citations, which skip when an optional external tool is absent) since installing needs nothing beyond what building already needs. Verified the guard has teeth: reverted data/dune to the pre-fix version and confirmed check-install fails loudly naming the missing file.
Diffstat (limited to 'data')
-rw-r--r--data/dune21
1 files changed, 20 insertions, 1 deletions
diff --git a/data/dune b/data/dune
index f48e95d..9cb9c22 100644
--- a/data/dune
+++ b/data/dune
@@ -33,4 +33,23 @@
; The Benedictine one is deliberately two entries long, and the comment
; block explaining why is the point of shipping it.
(ef/examples/poland.ini as examples/poland.ini)
- (ef/examples/benedictine.ini as examples/benedictine.ini)))
+ (ef/examples/benedictine.ini as examples/benedictine.ini)
+ ; The OF runtime data files, installed into <prefix>/share/colitur/of/ --
+ ; same reasoning as the ef/ set above. Deliberately NOT
+ ; of/expected-divergences-litcal.sexp: that is a test fixture, read only by
+ ; test_oracle_of.ml, same as the EF allow-lists above.
+ (of/calendar-2002.sexp as of/calendar-2002.sexp)
+ (of/lectionary.sexp as of/lectionary.sexp)
+ (of/amendments/001-padre-pio.sexp as of/amendments/001-padre-pio.sexp)
+ (of/amendments/002-juan-diego-cuauhtlatoatzin.sexp as of/amendments/002-juan-diego-cuauhtlatoatzin.sexp)
+ (of/amendments/003-our-lady-of-guadalupe.sexp as of/amendments/003-our-lady-of-guadalupe.sexp)
+ (of/amendments/004-john-xxiii-john-paul-ii.sexp as of/amendments/004-john-xxiii-john-paul-ii.sexp)
+ (of/amendments/005-mary-magdalene-rank.sexp as of/amendments/005-mary-magdalene-rank.sexp)
+ (of/amendments/006-mary-mother-of-the-church.sexp as of/amendments/006-mary-mother-of-the-church.sexp)
+ (of/amendments/007-paul-vi.sexp as of/amendments/007-paul-vi.sexp)
+ (of/amendments/008-our-lady-of-loreto.sexp as of/amendments/008-our-lady-of-loreto.sexp)
+ (of/amendments/009-faustina-kowalska.sexp as of/amendments/009-faustina-kowalska.sexp)
+ (of/amendments/010-narek-avila-hildegard.sexp as of/amendments/010-narek-avila-hildegard.sexp)
+ (of/amendments/011-martha-mary-lazarus.sexp as of/amendments/011-martha-mary-lazarus.sexp)
+ (of/amendments/012-teresa-of-calcutta.sexp as of/amendments/012-teresa-of-calcutta.sexp)
+ (of/amendments/013-john-henry-newman.sexp as of/amendments/013-john-henry-newman.sexp)))