Scanner Manager 0.9.0a2
Pre-release
Pre-release
Cross-platform alpha. Scanner Manager now builds and runs on Windows,
macOS, and Linux. The Uniden vendor tools (Sentinel, BT885 Update
Manager) remain Windows-only because Uniden doesn't publish macOS /
Linux builds of them; the Uniden Tools panel now shows a clear
"Windows only" notice on other platforms instead of appearing broken.
Added
- macOS and Linux builds. Tag-triggered release workflow now
matrix-builds onwindows-latest,macos-latest, and
ubuntu-latest, attachingScannerManager-windows-x64.zip,
ScannerManager-macos.tar.gz, andScannerManager-linux-x64.tar.gz
(plus per-file SHA-256 sidecars) to every GitHub Release. - macOS
.appbundle. PyInstaller spec now emits a proper
ScannerManager.appwithInfo.plist(display name, version,
removable-volume usage description). Bundle identifier:
org.disturbedkh.scanner-manager. - Cross-platform file-manager opener. "Open Data Folder" now
usesos.startfileon Windows,openon macOS, andxdg-open
on Linux. - CI smoke-import check. CI now asserts every top-level module
imports cleanly on all three OSes before running the test matrix.
Changed
- PyInstaller spec is single-source. One
packaging/scanner-manager.spec
now branches onsys.platformto produce a Windows EXE, a macOS
.app, or a Linux binary. Icon selection prefersicon.icnson
macOS when present, else falls back toicon.ico. - Uniden Tools detection is OS-aware.
_candidate_exe_paths()
returns an empty list on non-Windows (truthfully, there's nowhere
real to look) and normalizes path separators so the unit tests
exercise the detection code on Linux CI runners too. - PyInstaller-aware state dir. When running from a frozen bundle,
app_settings.json/ MetaStore /.session.baklive next to the
binary instead of inside_MEIPASS(which is wiped on exit). - Bundled resource lookup. Added
bundled_resources_dir()so
data/uniden_installers.jsonanddata/zip_county_map_sample.json
are read from_MEIPASSwhen frozen and from the checkout dir
otherwise. - CI matrix extended to macOS.
.github/workflows/ci.ymlnow
runs onmacos-latest(py3.11 + py3.12) alongside Windows and
Ubuntu.
Fixed
test_detect_picks_up_installed_exewas red on Ubuntu CI. Root
cause was hard-coded backslash separators in the Uniden installer
relpaths plus%VAR%env expansion that only works on Windows.
Detection now normalizes separators and reads env vars directly,
so the same test passes on all three OSes.