The rendered manual was in the repository and nowhere else, so an installed application still had nothing to open. Each packager now carries docs/manual/index.html and its pictures, to where the application will look for them: /usr/share/darkroom/manual on Arch, manual\ beside darkroom.exe on Windows (where the models already are, and where dr_plat::system_data_dirs points), and assets/manual in the APK, stored rather than deflated since a GIF or PNG is already compressed. The manual is about 27 MB, which the APK and the installer both grow by; the pictures are 1600x1100 screenshots and short GIFs, and against an APK that already carries 170 MB of inference runtime and 70 MB of models they are not worth re-encoding for. The pictures are LFS objects, so each packager refuses a pointer where a picture should be, as it already does for the models: shipped, a pointer is a manual of broken images that nothing reports. The Android and Windows CI legs therefore fetch docs/manual/media, which they excluded while nothing they built read it, and the installer smoke test checks that the page and every picture were installed.
32 lines
1.6 KiB
Plaintext
32 lines
1.6 KiB
Plaintext
# Model weights live in LFS.
|
|
#
|
|
# `models/**/*.onnx` is tens of MB of binary that changes wholesale
|
|
# when it changes at all. In ordinary git objects every future revision of it
|
|
# would be stored in full, in every clone, forever — and the one thing nobody
|
|
# can do with it is a useful diff.
|
|
#
|
|
# Consequence worth knowing before it bites: a clone without git-lfs gets a
|
|
# ~130-byte pointer file where the model should be. `dr-segment`'s build script
|
|
# detects exactly that and fails with an instruction rather than embedding the
|
|
# pointer and failing at inference time.
|
|
*.onnx filter=lfs diff=lfs merge=lfs -text
|
|
|
|
# Test photographs live in LFS too, and are fetched only by the tests that
|
|
# need them.
|
|
#
|
|
# `fixtures/**` holds real camera files — a twelve-frame panorama set is
|
|
# 325 MB — and CI's `git lfs pull` excludes the directory, so a checkout
|
|
# carries pointers there until a merge test asks for the frames. Same
|
|
# reasoning as the models, with the opposite default: the model is not
|
|
# optional and the fixtures are.
|
|
fixtures/** filter=lfs diff=lfs merge=lfs -text
|
|
|
|
# The manual's pictures live in LFS for the same reason the models do: a
|
|
# screenshot or a GIF changes wholesale when the interface it shows changes,
|
|
# and every re-recording would otherwise stay in every clone for good. The
|
|
# desktop and benchmark legs exclude the directory, since nothing they build
|
|
# or test reads it; the Android and Windows legs fetch it, because the APK
|
|
# and the installer carry the manual (docs/manual/index.html) with its
|
|
# pictures, and their packagers refuse a pointer.
|
|
docs/manual/media/** filter=lfs diff=lfs merge=lfs -text
|