From bfadd9c409b25e63b22c5fa4890f76f6f260b7c7 Mon Sep 17 00:00:00 2001 From: Duncan Tourolle Date: Sun, 20 Sep 2026 22:34:17 +0200 Subject: [PATCH] Ship the border filler in the Windows installer, and count what is staged MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The installer smoke test asserted seven model files, the number on the day it was written; models/face has since gained the eye-state trio's companions and the int8 detector forms, and the run on f71d7ba failed with thirteen installed. The test now expects as many files as package.sh's directories hold, so the next model needs no edit here. package.sh also stages models/inpaint, which the APK and the Arch package already carry and the Windows build did not: without migan-512.onnx the panorama's border fill has no model on Windows. xfeat needs nothing, it is embedded in the binary. windows.md ยง5.2 lists the result. Co-Authored-By: Claude Opus 5 (1M context) --- .gitea/workflows/build-and-test.yml | 7 ++++++- docker/windows/package.sh | 8 +++++++- docs/windows.md | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/build-and-test.yml b/.gitea/workflows/build-and-test.yml index ecf27e9..f223567 100644 --- a/.gitea/workflows/build-and-test.yml +++ b/.gitea/workflows/build-and-test.yml @@ -454,7 +454,12 @@ jobs: wine "$SETUP" /S 2>/dev/null INST=$(echo "$HOME"/.wine/drive_c/users/*/AppData/Local/Programs/DarkRoom) ls "$INST" - [ "$(ls "$INST/models" | wc -l)" = 7 ] || { echo "FAIL: expected 7 model files"; exit 1; } + # As many files as package.sh stages: everything but the READMEs in + # the directories it copies. A literal here went stale the first + # time a model was added. + WANT=$(find models/face models/scene models/inpaint -maxdepth 1 -type f ! -name README.md | wc -l) + GOT=$(ls "$INST/models" | wc -l) + [ "$GOT" = "$WANT" ] || { echo "FAIL: expected $WANT model files, installed $GOT"; exit 1; } wine reg query 'HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\DarkRoom' 2>/dev/null \ | grep -q DisplayVersion || { echo "FAIL: no uninstall registry key"; exit 1; } wine "$INST/darkroom.exe" --version 2>/dev/null | grep -q '^darkroom-desktop ' \ diff --git a/docker/windows/package.sh b/docker/windows/package.sh index 34193fb..0a2cddb 100755 --- a/docker/windows/package.sh +++ b/docker/windows/package.sh @@ -48,7 +48,13 @@ sed 's/$/\r/' "${REPO}/LICENSE" > "${STAGE}/LICENSE" # tract on the user's machine with a message about a broken graph rather than # a checkout that needed `git lfs pull`. Only the weights are checked; the # scene model's vocabulary and category descriptor are legitimately small. -for dir in face scene; do +# +# The directories are the ones the APK stages (assemble-apk.sh) and the Arch +# package installs: the face pair and its eye-state models, the scene model +# with its two descriptors, and the panorama border filler. The installer +# smoke test counts the same directories, so a model added here is expected +# there without a number to update. +for dir in face scene inpaint; do for f in "${REPO}/models/${dir}"/*; do case "$(basename "${f}")" in README.md) continue ;; diff --git a/docs/windows.md b/docs/windows.md index 649af83..a71f4e1 100644 --- a/docs/windows.md +++ b/docs/windows.md @@ -282,7 +282,9 @@ $LOCALAPPDATA\Programs\DarkRoom\ models\ scrfd_500m_640.onnx scrfd_2.5g_640.onnx scrfd_10g_640.onnx arcface_mbf_b1.onnx 2d106det_b1.onnx ocec_s_b1.onnx sgc_l_48_b1.onnx + scrfd_500m_640.int8.onnx scrfd_2.5g_640.int8.onnx scrfd_10g_640.int8.onnx yolo26s-sem-ade20k.onnx yolo26s-sem-ade20k.classes.json categories.txt + migan-512.onnx LICENSE uninstall.exe ```