The previous monolithic dhcpsrv_app.py (~500 lines) is now 7 focused modules:
- src/dhcpsrv/__init__.py : single source of truth for __version__
- src/dhcpsrv/__main__.py : entry for python -m dhcpsrv
- src/dhcpsrv/app.py : main orchestration, wires the rest
- src/dhcpsrv/platform_win.py: VT enable + UAC self-elevate
- src/dhcpsrv/update_check.py: GitHub /releases/latest poll
- src/dhcpsrv/network.py : NIC enumeration, netsh, ping
- src/dhcpsrv/dhcp.py : DhcpConfig, DhcpServer, packet parse/build, server loop
- src/dhcpsrv/ui.py : rich-based full-screen TUI
Also added:
- dhcpsrv-launcher.py at repo root: absolute-import entry for PyInstaller
- pyproject.toml: deps + dynamic version
- CONTRIBUTING.md: layout, build, and release flow
CI workflow now builds from dhcpsrv-launcher.py.
No user-visible behaviour change.
Polls GitHub /releases/latest with a 3-second timeout. If a newer
version is available, prints a yellow notice and offers to open the
download page. Silent on offline / API errors.