dosforge 0.3.1
dosforge v0.3.1 — TUI bundle fix
Critical bug-fix release. The Windows bundle in v0.3.0 (both the
full and lite variants) crashed when launching the TUI with:
The dosforge TUI requires the 'textual' package, which is not available in this build.
...
Underlying import error: No module named 'textual'
What was broken
The PyInstaller spec listed textual (and rich, py7zr, markdown_it,
etc.) as hiddenimports, but that directive only collects the top-level
__init__.py for each named package. The actual package tree — source
modules and the .tcss stylesheets Textual loads at runtime — was
silently absent. The bundle shipped with only textual-8.2.6.dist-info/
metadata and no textual/ package directory.
What's fixed
Both windows/dosforge.spec and windows/dosforge-lite.spec now use
PyInstaller.utils.hooks.collect_all() for every Python dependency,
which pulls in:
- the entire source tree of each package
- all submodules (recursively)
- all bundled data files (CSS, themes, encoded resources)
The CI release workflow also gained a smoke-test step that fails the
build if _internal\textual\__init__.py is missing OR if
dosforge.exe --help doesn't exit cleanly — so this class of
regression cannot ship again.
Verified
dosforge.exe tuilaunches cleanly (273 textual files bundled)dosforge.exe check-depsanddosforge.exe --helpwork- All 299 unit tests still pass
Assets
| File | Size (approx) | Purpose |
|---|---|---|
dosforge-0.3.1-windows-x64.zip |
~120 MB | Full bundle with all DOS payloads |
dosforge-0.3.1-lite-windows-x64.zip |
~95–105 MB | Readmes-only — provide your own install media |
Upgrade
Drop-in replacement for v0.3.0 — no config or asset migration required.
Delete the old dist\dosforge\ folder, unzip the new bundle in its
place, and you're set.