The project's only runtime dependency is PyUSB (BSD-3-Clause) and it bundles
no third-party code (the PWA's DES/3DES is written from the FIPS 46-3 tables,
AES uses WebCrypto, the decoders come from the ISO 7816/ETSI/3GPP specs), so
nothing forced GPL; the GPL-2.0-or-later declaration is replaced with MIT.
- LICENSE: the MIT text, Copyright (c) 2026 Anton Troshin.
- pyproject: license = "MIT" + license-files = ["LICENSE"] (PEP 639), and the
build requirement moves to setuptools>=77 for the SPDX form. The wheel now
carries dist-info/licenses/LICENSE and License-Expression: MIT, the sdist
and the runtime zip carry LICENSE at the top.
- READMEs (EN/RU): a License section (original decoders/DES implementation,
PyUSB as the only runtime dependency).
- tests: the packaging test pins the MIT declaration and the LICENSE text;
the release-zip test requires LICENSE in the archive.
- version 2.7.13; SW cache v95.
Copies published before this tag (v2.7.10-v2.7.12) remain under the license
they were released with.
- pyproject declared build-backend = "setuptools.backends._legacy:_Backend",
which does not exist: `python -m build`, `pip install .` and even
`pip install -e .` died with "Backend ... is not available". It is
setuptools.build_meta now.
- the wheel and sdist carried only the Python packages, and _default_web_dir()
resolved <site-packages>/../frontend, so an installed server started fine but
answered every static request with 404. setup.py's build_py now copies the
checkout's frontend/ into simtrace_analyser/web/ inside the build (the PWA's
tests excluded), and _default_web_dir() prefers that packaged copy, falling
back to <repo>/frontend for source and editable runs. The source directory
is resolved from setup.py (so an sdist build works) and a missing frontend/
fails the build loudly instead of shipping a package without its UI.
- MANIFEST.in grafts frontend/ (with the READMEs, the udev rule and the four
launch scripts) into the sdist, so a wheel built from the sdist has the PWA.
- README (EN/RU): an install-from-a-release section (pipx/pip with the wheel,
the direct release URL for pip) and the --web-dir default documented as the
bundled PWA, or <repo>/frontend from source.
- tests/test_packaging.py pins the packaged-first resolution (including the
empty-directory fallback), the source checkout default, the real build
backend, the manifest graft and setup.py's bundling.
- verified: a fresh venv install from the wheel and from the sdist serve
GET / (200, byte-identical index.html, PWA v2.7.10) out of
site-packages/simtrace_analyser/web; an editable install still resolves
<repo>/frontend. 547 Python + 80 Node tests.