Packaging: the wheel carries the PWA, so a release install serves the UI (v2.7.10)
- 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.
This commit is contained in:
1 parent
4a03f83459
commit
25aa87ba1e
11 files changed
+196
-16
No files matched your search
+27
-3
@@ -113,12 +113,34 @@ pip install -e .
|
||||
# или: simtrace2-pysniff [opts]
|
||||
```
|
||||
|
||||
### Из релиза (без клонирования репозитория)
|
||||
|
||||
Релизные артефакты содержат PWA внутри пакета, поэтому установленный сервер
|
||||
отдаёт тот же интерфейс, что и при запуске из клона. Скачайте wheel со
|
||||
страницы [последнего релиза](https://github.com/anttro/simtrace-analyser/releases/latest)
|
||||
и установите его:
|
||||
|
||||
```sh
|
||||
pipx install ./simtrace_analyser-2.7.10-py3-none-any.whl
|
||||
# или: pip install ./simtrace_analyser-2.7.10-py3-none-any.whl
|
||||
|
||||
# затем запуск (интерфейс отдаётся на http://127.0.0.1:8081/):
|
||||
simtrace-analyser-server --capture gsmtap
|
||||
```
|
||||
|
||||
`pip` также может скачать wheel прямо со страницы релиза:
|
||||
|
||||
```sh
|
||||
pip install https://github.com/anttro/simtrace-analyser/releases/download/v2.7.10/simtrace_analyser-2.7.10-py3-none-any.whl
|
||||
```
|
||||
|
||||
## Запуск
|
||||
|
||||
### Анализирующий сервер + PWA (`simtrace-analyser-server`)
|
||||
|
||||
Сохраняет захваченный APDU-трафик в SQLite и отдаёт его по HTTP вместе
|
||||
со встроенной PWA **SIMtrace Analyser** (`frontend/`) на том же origin.
|
||||
со встроенной PWA **SIMtrace Analyser** (`frontend/` в исходном клоне, при
|
||||
установке — внутри пакета) на том же origin.
|
||||
Три режима захвата:
|
||||
|
||||
```sh
|
||||
@@ -289,13 +311,15 @@ TS 51.011), поэтому FID, повторно используемый в р
|
||||
--db FILE путь к базе SQLite (по умолчанию: ~/.simtrace-analyser/sessions.db)
|
||||
--capture MODE gsmtap | direct | disabled (по умолчанию: gsmtap)
|
||||
--gsmtap-port PORT UDP-порт листенера GSMTAP (по умолчанию: 4729)
|
||||
--web-dir PATH каталог статических файлов PWA (по умолчанию: <repo>/frontend)
|
||||
--web-dir PATH каталог статических файлов PWA (по умолчанию: PWA внутри
|
||||
установленного пакета или <repo>/frontend при запуске из исходников)
|
||||
```
|
||||
|
||||
Затем откройте **http://127.0.0.1:8081/** в браузере — PWA отдаётся
|
||||
сервером, поэтому UI и API используют один origin, и настройка
|
||||
CORS/Private-Network-Access не требуется. Используйте `--web-dir PATH`,
|
||||
чтобы отдавать другой каталог PWA (по умолчанию: `<repo>/frontend`).
|
||||
чтобы отдавать другой каталог PWA (по умолчанию: PWA внутри пакета или
|
||||
`<repo>/frontend` при запуске из исходников).
|
||||
|
||||
### Размещённая PWA (лендинг)
|
||||
|
||||
|
||||
Reference in new issue
Block a user