"""
Version du serveur de signalisation, exposée par `/health`.

Jumeau de `client/version.py`, et il existe pour une raison plus forte que lui :
**le serveur est précisément le composant qu'on oublie**. Le point 39 l'a montré
une première fois (trois modifications du serveur dans la même journée, `.exe`
jamais reconstruit, et un serveur antérieur qui plantait en lisant une base
migrée), et le 2026-07-31 une seconde fois — un `pyinstaller` qui n'affichait que
des lignes `checking` a laissé croire à un build alors que rien n'avait été
reconstruit. Le garde-fou avait été posé sur le client, qui affiche son numéro à
l'écran ; le serveur, lui, n'avait aucun moyen de dire ce qu'il tournait.

Contrairement au client, ce numéro doit être lisible **à distance** : un serveur
tourne sur un VPS ou derrière Caddy, personne n'a d'écran en face. D'où son
exposition dans `/health`, qui répond déjà sans authentification et sert déjà de
test de vie — un `curl` suffit alors à répondre à « cette instance a-t-elle le
correctif ? », y compris pour le `.exe` Windows qui se reconstruit rarement.

`PACKAGE_RELEASE` suit le `pkgrel` du PKGBUILD, comme côté client : c'est lui qui
bouge à chaque build. Les deux fichiers sont comparés au PKGBUILD **et l'un à
l'autre** par `tests/test_version.py`, sinon ils divergeraient en silence — un
numéro faux est pire que pas de numéro, puisqu'il fait conclure « à jour ».
"""

from __future__ import annotations

VERSION = "0.1.0"

# Doit rester égal au `pkgrel` de packaging/arch/PKGBUILD, et donc à
# client/version.py : le paquet Arch installe le client ET le serveur depuis le
# point 45, il n'y a qu'un seul numéro de build pour les deux.
PACKAGE_RELEASE = "81"


def version_affichee() -> str:
    """Version telle que renvoyée par `/health`, ex: « 0.1.0-39 »."""
    return f"{VERSION}-{PACKAGE_RELEASE}"
