Scope

This comparison covers the two PyInstaller bundle layouts for Windows 11 x64. It records what the local release estate exercises. It does not compare every bootloader, antivirus, or application-startup condition.

Answer

For the estate’s PolyForm Noncommercial/Internal Use distributions, use --onedir because bundled LGPL Qt and other LGPL libraries must remain replaceable by end users. This is the mapped estate decision rule, not a general preference for --onedir.

--onefile was not chosen or reproduced for that mapped PolyForm route. The canonical SXT policy permits either layout for MIT/open-source tools, where source is available for rebuilding and relinking. This does not remove dependency notices or other obligations, and it does not make either layout universally correct.

Need --onedir --onefile
Mapped PolyForm LGPL-replaceability evidence Yes No
Portable ZIP input Full output folder Viable but not reproduced here
Shared Inno installer input Full output folder Viable but not reproduced here
Present local app release route Yes No

Decision path

  1. Determine whether dependency licensing requires end users to replace or relink bundled libraries. If that requirement applies, choose the mapped --onedir route.
  2. Include the complete output folder in the ZIP. Do not distribute only the .exe unless your own build proves it is sufficient.
  3. Point the installer at the --onedir output folder when using the shared workflow for that PolyForm route.
  4. For an MIT/open-source SXT, either layout is available under the canonical policy. Apply the actual dependency obligations, then test the released artifact, asset behavior, update approach, and installer integration.

Production evidence

Simple UNA Log Viewer’s build script invokes pyinstaller --onedir and collects PySide6 and qtpy. The shared release workflow compresses the complete distribution folder and passes that folder to Inno Setup.

Unsupported or external outcomes

  • --onefile was not chosen or reproduced for the mapped PolyForm route.
  • The evidence is pywebview plus PySide6 Qt backend, not a standalone native PySide6 app.
  • Authenticode signing, Store or MSIX, and general WinGet acceptance are external outcomes.
  • Hashes and provenance can document bytes and build origin, but neither establishes malware safety or SmartScreen reputation.
  • This is not legal advice. Layout alone does not fulfill all license obligations; notices, source or offer requirements, and the actual dependency and license versions still matter.

Source ledger

Source owner Primary URL Review class Last reviewed Exact claim or evidence mapped
PyInstaller https://pyinstaller.org/en/stable/usage.html Framework-critical August 14, 2026 --onedir and --onefile build options.
PyInstaller https://pyinstaller.org/en/stable/runtime-information.html Framework-critical August 14, 2026 One-folder and one-file runtime bundle context.
JDE-Projects Simple UNA Log Viewer https://github.com/JDE-Projects/Simple-UNA-Log-Viewer/blob/df2ce2118a0d8c2ffa3ec0ea0189dc6a6eefc1e3/Build_Simple_UNA_Log_Viewer.bat Production evidence August 14, 2026 --onedir invocation for the reproduced app shape.
JDE-Projects Build-Tools https://github.com/JDE-Projects/Build-Tools/blob/ab90ba3459fe0e7cadab8d23d7e920d0bacabdaa/.github/workflows/release.yml Production evidence August 14, 2026 Folder ZIP and installer inputs.
JDE-Projects Simple UNA Log Viewer https://github.com/JDE-Projects/Simple-UNA-Log-Viewer/blob/df2ce2118a0d8c2ffa3ec0ea0189dc6a6eefc1e3/THIRD-PARTY-LICENSES.txt Production evidence August 14, 2026 Estate notice states the --onedir replaceability goal.
Qt https://www.qt.io/development/open-source-lgpl-obligations Framework-critical August 14, 2026 Qt LGPL obligations boundary.
Qt https://www.qt.io/faq/qt-open-source-licensing Framework-critical August 14, 2026 Qt open-source licensing context.
Free Software Foundation https://www.gnu.org/licenses/lgpl-3.0.en.html Framework-critical August 14, 2026 LGPLv3 primary license text.