Both READMEs gain a capture-and-analysis diagram right under the screenshot:
simtrace2-pysniff and sigrok_iso7816_stream feed the GSMTAP UDP :4729
listener, SIMtrace2 hardware can be read directly over USB, PCAP/COMPRION
traces come from files, and simtrace-analyser-server decodes/stores into
SQLite and serves the web UI. The SVGs carry title/desc and role=img, use
only inline presentation attributes (no scripts, no external refs) and render
without clipped text; the RU text matches the EN layout.
The runtime zip includes both diagrams so the embedded READMEs keep working,
and a new drift guard checks that every image a README references is present
in the archive. RU wording: "устанавливаемое PWA" (neuter agreement).
558 Python + 80 Node tests.
The releases carried the wheel and the sdist; the only zip was GitHub's source
archive of the whole repository (tests, CI, tools). A Windows user just wants
to extract a folder and double-click start.bat.
- scripts/build_release_zip.py builds simtrace-analyser-<version>.zip with a
single top-level directory: the two Python packages, the PWA runtime files
(frontend/tests and package.json stay out), the four launchers, the udev
rule, the READMEs and the screenshot. The .bat entries are written with
CRLF line endings (cmd.exe mishandles bare-LF labels/goto), the .sh files
keep their executable bit; LICENSE is included automatically once the repo
has one.
- tests/test_release_zip.py pins the archive shape, the exclusions, the sw.js
PRECACHE drift (every precached asset must travel), the CRLF/LF line endings
and start.sh's mode.
- the release workflow builds the zip, checks it carries start.bat and the
PWA, uploads it with the run and attaches it to the release.
- READMEs (EN/RU) and the release-notes template offer the zip as the
Windows-friendly option; version 2.7.12, PWA cache v94.
Verified: the built zip (34 entries, 658 KB compressed) extracted and started
on Linux serves the same index.html; 553 Python + 80 Node tests.