Skip to content

Fix release verification step failing on a missing import - #19

Merged
epalosh merged 1 commit into
mainfrom
fix/release-verify-pythonpath
Aug 15, 2026
Merged

epalosh merged 1 commit into
mainfrom
fix/release-verify-pythonpath

Conversation

@epalosh

@epalosh epalosh commented Aug 15, 2026

Copy link
Copy Markdown
Owner

The v0.2.2 release build (run 31911018012) reached the new install-and-verify gate and failed with:

ModuleNotFoundError: No module named 'openfov'

The build job installs requirements-dev.txt but never pip install -e . — only the CI workflow does — so the package wasn't importable when the step called ensure_registered().

Fixed by setting PYTHONPATH for that step only, rather than adding an editable install to the job. An editable install would land before the ~35 minute Nuitka build and change the environment it resolves imports in; not worth that risk to satisfy one verification step.

What the gate proved before it broke

Everything up to the import passed on a real runner:

  • ✅ NPClient + hardened TrackIR shim built with the version resource
  • ✅ Nuitka standalone build
  • ✅ Inno Setup installer built
  • ✅ Installer installed silently with exit 0
  • ✅ Both NPClient64.dll and TrackIR.exe present in C:\Program Files\OpenFOV\resources\bin

And it correctly refused to publish — no release, no artifact upload. Nothing broken shipped.

Verified locally

The exact failing command now succeeds:

$ OPENFOV_BIN_DIR="C:\Program Files\OpenFOV\resources\bin" PYTHONPATH=src \
    python -c "from openfov.output.npclient_bootstrap import ensure_registered; ensure_registered()"
ensure_registered OK (exit 0)

No v0.2.2 release exists, so once this merges the v0.2.2 tag can be moved to the new commit rather than burning a version number on a CI-only fix.

The v0.2.2 release build reached the new install-and-verify gate and died
with ModuleNotFoundError: No module named 'openfov'. The build job installs
requirements-dev.txt but never `pip install -e .` -- only the CI workflow
does -- so the package was not importable when the step called
ensure_registered().

Set PYTHONPATH for that step rather than adding an editable install to the
job. An editable install would land before the ~35 minute Nuitka build and
change the environment it resolves imports in; there is no reason to risk
that to satisfy one verification step.

Worth recording what the gate proved before it broke: the installer built,
installed silently, and shipped both NPClient64.dll and TrackIR.exe --
those checks all passed. And it correctly refused to publish, so no broken
release went out.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@epalosh
epalosh merged commit c018b21 into main Aug 15, 2026
3 checks passed
@epalosh
epalosh deleted the fix/release-verify-pythonpath branch August 15, 2026 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant