@@ -250,16 +250,14 @@ jobs:
250250 pip install nuitka
251251
252252 - name : Compile with Nuitka
253- # All 11 source plugins are force-included because they're
254- # imported dynamically by name at runtime (see
255- # thesisagents/fetchers/base.py::load_fetcher). The plugins
256- # live under sources/<name>/ and are NOT installed as Python
257- # packages, so we prepend sources/ to PYTHONPATH to make them
258- # importable during the build. At runtime the app does the
259- # equivalent sys.path injection itself.
260- #
261- # The sources/ directory ALSO ships as data so the runtime can
262- # read the unmodified .py files for its own sys.path lookup.
253+ # The source plugins are imported dynamically by name at runtime
254+ # (see thesisagents/fetchers/base.py::load_fetcher), so Nuitka's
255+ # static analysis can't see them. A single
256+ # --include-package=thesisagents force-includes every sub-module
257+ # of the package, including all of thesisagents.sources.*. Since
258+ # the 2026-05 migration the plugins live INSIDE the package
259+ # (thesisagents/sources/), so there is no per-source flag list,
260+ # no sources/ data dir, and no PYTHONPATH=sources to set.
263261 #
264262 # python-pptx imports as `pptx` (PyPI name -> module name
265263 # mismatch is normal); use the module name here.
@@ -284,26 +282,13 @@ jobs:
284282 # adds startup latency and trips antivirus heuristics on
285283 # locked-down corporate machines.
286284 shell : bash
287- env :
288- PYTHONPATH : sources
289285 run : |
290286 python -m nuitka \
291287 --standalone \
292288 --python-flag=-m \
293289 --output-filename=thesisagents.exe \
294290 --windows-icon-from-ico=assets/icon.ico \
295291 --include-package=thesisagents \
296- --include-package=arxiv \
297- --include-package=semantic_scholar \
298- --include-package=openalex \
299- --include-package=pubmed \
300- --include-package=acm \
301- --include-package=ieee \
302- --include-package=scholar \
303- --include-package=dblp \
304- --include-package=crossref \
305- --include-package=openaire \
306- --include-package=springer \
307292 --enable-plugin=pyside6 \
308293 --nofollow-import-to=pymupdf \
309294 --nofollow-import-to=uvicorn \
@@ -314,7 +299,6 @@ jobs:
314299 --nofollow-import-to=tornado \
315300 --lto=no \
316301 --jobs=2 \
317- --include-data-dir=./sources=sources \
318302 --include-package-data=pptx \
319303 --include-package-data=openpyxl \
320304 --assume-yes-for-downloads \
0 commit comments