Metadata-Version: 2.4
Name: update-server
Version: 0.0.42
Summary: Update Server
Author-email: Adam Schubert <adam.schubert@sg1-game.net>
License-Expression: GPL-3.0-only
Project-URL: Homepage, https://gitlab.salamek.cz/sadam/update-server.git
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: flask<4.0,>=3.0.2
Requires-Dist: flask-cors<5.0,>=4.0.0
Requires-Dist: pyyaml<7.0,>=6.0
Requires-Dist: docopt-ng<1.0,>=0.9
Requires-Dist: flask-migrate<5.0,>=4.0.5
Requires-Dist: Flask-SQLAlchemy<4.0,>=3.1.1
Requires-Dist: SQLAlchemy<2.2,>=2.1
Requires-Dist: psycopg[binary]<4.0,>=3.3
Requires-Dist: gunicorn<24.0,>=23.0.0
Requires-Dist: packaging<27.0,>=26.0
Requires-Dist: requests<3.0,>=2.31
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"

# Update Server

Requires Python 3.11 or newer. Shared dependency ranges match Portal API,
including Flask 3, Flask-SQLAlchemy 3, SQLAlchemy 2.1 and psycopg 3.

## Installation and validation

```sh
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade '.[test,dev]'
.venv/bin/python -m pip check
.venv/bin/python -m pytest
.venv/bin/python -m build
```

Package metadata and dependencies live in `pyproject.toml`. The package version
is read from `update_server.__version__`, also used by the existing release tool.
There is no `setup.py` compatibility shim.

System configuration and the systemd unit remain in `etc/` and `lib/` in the
source distribution. Native Debian packages install them in their
system locations; pip installs only the Python application and its resources.

For production, install `.` without the test/dev extras. Existing configuration
file locations and REST endpoints are unchanged. Use a virtualenv when matching
Portal's package versions; distribution-provided dependencies may be older.

PostgreSQL uses `postgresql+psycopg://` URLs. Existing `postgres://`,
`postgresql://` and `postgresql+psycopg2://` configuration URLs are automatically
mapped to psycopg 3 without changing credentials or connection parameters.
No database schema migration is required for this dependency upgrade.

The existing CLI syntax is preserved by `docopt-ng` (the maintained fork exposing
the same `docopt` import). Migration commands continue to use, for example:

```sh
.venv/bin/update-server db current --config_prod
.venv/bin/update-server db upgrade --config_prod
```
