"""
Version affichée par le client, et source unique de vérité pour l'empaquetage.

Existe parce que « est-ce que la machine d'en face tourne bien le code qui
contient le correctif ? » est revenu plusieurs fois dans ce projet, chaque fois
en coûtant du temps : `.exe` serveur oublié pendant trois modifications
(point 39), paquet Arch antérieur aux modules qu'on venait d'écrire, correctif
de préférence LAN qui devait être présent **des deux côtés** (point 43). Un
numéro visible dans l'interface répond à la question en une seconde, sans
inspecter de fichiers.

`PACKAGE_RELEASE` suit le `pkgrel` du PKGBUILD : c'est lui qui bouge à chaque
build, `VERSION` restant stable. Les deux sont comparés au PKGBUILD par un test
(`tests/test_version.py`), sinon ils divergeraient en silence — exactement le
garde-fou anti-dérive déjà employé pour le composant privilégié (point 38).
"""

from __future__ import annotations

VERSION = "0.1.0"

# Doit rester égal au `pkgrel` de packaging/arch/PKGBUILD.
PACKAGE_RELEASE = "81"


def version_affichee() -> str:
    """Version telle qu'affichée dans l'interface, ex: « 0.1.0-29 »."""
    return f"{VERSION}-{PACKAGE_RELEASE}"
