diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..3f9aaee --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,18 @@ +# PIVOT – afspraken voor Claude + +## Versienummer bij elke commit + +Het versienummer van PIVOT staat in het bestand `VERSION` (onderaan elke pagina: "PIVOT – Versie x.y.z"). + +**Vóór elke commit** het versienummer één stap verhogen en `VERSION` mee in de commit opnemen: + +```bash +python verhoog_versie.py +git add VERSION +``` + +- Eén verhoging per commit, niet per gewijzigd bestand. +- Regels: het laatste cijfer telt op tot 99, daarna gaat het middelste cijfer omhoog (`1.1.99` → `1.2.0`); het middelste cijfer gaat ook tot 99 (`1.99.99` → `2.0.0`). Het eerste cijfer heeft geen maximum. +- Nooit `VERSION` met de hand aanpassen of nummers overslaan. +- Geeft een merge of pull een conflict in `VERSION` (twee branches verhoogden tegelijk)? Neem het **hoogste** van de twee nummers en voer daarna `python verhoog_versie.py` nog één keer uit. +- Vermeld het nieuwe nummer in de commitboodschap, bv. `Logo leesbaar maken in het donkere thema (1.1.2)`. diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..524cb55 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +1.1.1 diff --git a/config.py b/config.py index 8c8fb05..e6bead2 100644 --- a/config.py +++ b/config.py @@ -27,6 +27,15 @@ def _get(section, key, fallback='', env=None): return config_file.get(section, key, fallback=fallback) +def _versie(): + """Versienummer uit het bestand VERSION (wordt bij elke commit verhoogd met verhoog_versie.py, zie CLAUDE.md).""" + try: + with open(os.path.join(base_dir, 'VERSION'), encoding='utf-8') as f: + return f.read().strip() + except OSError: + return _get('algemeen', 'app_version', 'onbekend') + + def _secret_key(): """FLASK_SECRET_KEY, config.ini, of anders een willekeurige sleutel die bewaard wordt in geheimen/flask.key. (Nooit een vaste standaardsleutel: daarmee kan iemand een sessie voor eender welke school vervalsen.)""" @@ -86,7 +95,7 @@ class Config(metaclass=_SchoolConfigMeta): _get('algemeen', 'superbeheerders', env='PIVOT_SUPERBEHEERDERS').replace(';', ',').split(',') if x.strip()] - APP_VERSION = _get('algemeen', 'app_version', '1.1.0') + APP_VERSION = _versie() # Elke bezochte pagina bewaren in de tabel Logs (centrale database) LOGBOEK = _get('algemeen', 'logboek', 'ja').strip().lower() in ('ja', 'yes', 'true', '1', 'on') diff --git a/verhoog_versie.py b/verhoog_versie.py new file mode 100644 index 0000000..2e3104a --- /dev/null +++ b/verhoog_versie.py @@ -0,0 +1,33 @@ +""" +Verhoogt het versienummer in VERSION met één stap. Uitvoeren vóór elke commit: + + python verhoog_versie.py + +Regels: het laatste cijfer gaat telkens één omhoog, tot 99. + 1.1.0 -> 1.1.1 + 1.1.99 -> 1.2.0 + 1.99.99 -> 2.0.0 (het eerste cijfer heeft geen maximum) +""" +import os + +PAD = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'VERSION') +MAX = 99 + + +def volgende(versie): + hoofd, sub, patch = (int(x) for x in versie.strip().split('.')) + patch += 1 + if patch > MAX: + patch, sub = 0, sub + 1 + if sub > MAX: + sub, hoofd = 0, hoofd + 1 + return f"{hoofd}.{sub}.{patch}" + + +if __name__ == '__main__': + with open(PAD, encoding='utf-8') as f: + oud = f.read().strip() + nieuw = volgende(oud) + with open(PAD, 'w', encoding='utf-8') as f: + f.write(nieuw + '\n') + print(f"{oud} -> {nieuw}")