Files
simple/setup.bat
T
catarrh aa8c9c6f12
release / release (push) Waiting to run
v3.32.0: the packaged-install updater + a repo CHANGELOG
Reinstalling the package was slow because setup rebuilds pysim's
prerequisites (pyscard compiles from source on Linux), while a clone
updates with a plain `git pull`.

- tools/update.py (+ update.sh / update.bat in the package, and the
  release workflow shipping them) updates a packaged install in place:
  it downloads the latest release package, extracts it (zip-slip guard,
  permission bits restored - zipfile drops them), replaces the app files
  over the app directory and re-installs the app into the existing
  .venv.  The .venv and simple_lastrun.log are not in the package, so
  pysim and its prerequisites survive: seconds, not a rebuild.
  --check / --version / --zip (offline) / --no-pip / --force; the same
  version is a no-op.
- CHANGELOG.md (Keep a Changelog, from the first packaged release;
  earlier history is the git log).  The release workflow now uses the
  version's CHANGELOG section as the release body
  (tools/changelog_section.py, falling back to generated notes).
- The READMEs document the update path and the `git clone --depth 1`
  option for the clone path; setup prints the update hint.
- Version strings + the PWA cache bumped together (simple-v458).

Verified: 1007 Python + 953 frontend; the release-package test covers
the new files; the updater was exercised end to end (a v3.31.2 install
with a real venv updated to the 3.32.0 package: files replaced, the
venv marker kept, pip metadata 3.32.0, exec bits kept, a second run a
no-op, --check correct).
2026-10-21 00:35:47 +03:00

90 lines
2.4 KiB
Batchfile

@echo off
REM pysim-simple-server setup script for Windows
REM Creates a venv and installs pysim and its dependencies.
setlocal enabledelayedexpansion
set VENV_DIR=%~dp0.venv
echo === pysim-simple-server setup ===
echo.
REM Check Python
python --version >nul 2>&1
if %errorlevel% neq 0 (
echo Error: Python is required but not found.
echo Install Python 3.9+ from https://python.org
pause
exit /b 1
)
echo Found Python
python --version
REM Check Git
git --version >nul 2>&1
if %errorlevel% neq 0 (
echo Error: Git is required but not found.
echo Install Git from https://git-scm.com
pause
exit /b 1
)
echo Found Git
git --version
echo.
REM Create venv
if not exist "%VENV_DIR%" (
echo Creating virtual environment...
python -m venv "%VENV_DIR%"
)
call "%VENV_DIR%\Scripts\activate.bat"
REM Upgrade pip
python -m pip install --upgrade pip -q
REM Python 3.13 is strongly recommended: pyscard ships precompiled wheels up
REM to 3.13, the SCP81 TLS-PSK listener needs 3.13+, and on 3.14 pyscard and
REM some pysim dependency wheels are unavailable (source builds need MSVC).
echo Note: Python 3.13 is strongly recommended.
echo pyscard has precompiled wheels up to 3.13 and the SCP81 TLS-PSK
echo listener needs 3.13+. On Python 3.14 pyscard and some pysim
echo dependency wheels are unavailable; those build from source and
echo require Microsoft C++ Build Tools ("Desktop development with C++").
echo.
REM Install pysim dependencies first, then pysim itself (without the SMPP
REM bridge - not needed by pysim-shell). Installing pysim with --no-deps after
REM its dependencies avoids pip's resolver warning about the intentionally
REM omitted smpp.twisted3 (SMPP bridge) dependency.
echo === Installing pysim dependencies ===
pip install -r "%~dp0requirements-pysim.txt"
if %errorlevel% neq 0 (
echo Error: Failed to install pysim dependencies.
pause
exit /b 1
)
echo === Installing pysim ===
pip install --no-deps git+https://github.com/osmocom/pysim.git
if %errorlevel% neq 0 (
echo Error: Failed to install pysim.
pause
exit /b 1
)
echo.
REM Install pysim-simple-server
echo === Installing pysim-simple-server ===
pip install -e "%~dp0."
if %errorlevel% neq 0 (
echo Error: Failed to install pysim-simple-server.
pause
exit /b 1
)
echo.
echo === Setup complete ===
echo Run start.bat to start the server.
echo Updating later: update.bat ^(reuses .venv - pysim is not re-installed^).
pause