release: the curated release package + a tag-triggered workflow
release / release (push) Waiting to run

The READMEs now point users at a release package instead of a clone; this
adds the machinery behind it.

- tools/build_release.py builds dist/simple-<version>.zip: the runtime
  tree (the server package incl. its bundled MCC/MNC list, the PWA
  runtime files, docs/, tools/, the setup/start scripts, pyproject,
  requirements-pysim.txt, the READMEs, LICENSE and THIRD-PARTY-NOTICES)
  under a single top-level directory, with no tests, no frontend
  sources/build config, no bytecode and no git metadata.  The version
  comes from server.py; --expect-version guards a mislabeled tag.
- .github/workflows/release.yml runs both test suites, builds the
  package and publishes it on a v* tag (workflow_dispatch for an
  existing tag); a re-run uploads with --clobber.  pysim is checked out
  next to the repo for the Python suite and is NOT bundled.
- tests/test_release_package.py pins the package's shape: the runtime
  files, the absence of the development files, and that sw.js's
  precache list is fully covered - so a new asset cannot silently go
  missing.
- dist/ is gitignored; the READMEs name the artifact.

Verified: 997 Python + 953 frontend green; the built zip (53 files,
~0.95 MB) was unpacked in a clean directory and its setup.sh installed it
into a fresh venv - the console script runs and the installed server
resolves web_dir to the unpacked frontend/ (index.html, sw.js,
uicc_files.json present).  The workflow YAML parses; GitHub-side
execution is unverified until the first tag is pushed.
This commit is contained in:
2026-10-20 23:29:44 +03:00
parent 5cea89cc66
commit 9ee9c85b09
6 changed files with 302 additions and 3 deletions
+2 -2
View File
@@ -18,8 +18,8 @@ SIMple — инструментарий для специалистов по UIC
**Полная установка (PWA + сервер карт)** — два способа:
**1. Скачать релизный пакет (рекомендуется).** На странице
[Releases](https://github.com/anttro/simple/releases) возьмите последний пакет (ZIP),
распакуйте в любое место и один раз запустите setup:
[Releases](https://github.com/anttro/simple/releases) возьмите последний пакет
(`simple-<version>.zip`), распакуйте в любое место и один раз запустите setup:
```sh
./setup.sh # или setup.bat в Windows — создаёт .venv, ставит pysim + сервер