Gitea fragt den Standardbranch schon beim Anlegen ab, nicht erst beim ersten Push. Mit Begruendung und dem Abgleich zu den bestehenden Repos: acht Code-Repos stehen auf unstable, main nur die drei ohne Kanalmodell.
6.1 KiB
Repository „Projektwissen" auf Gitea einrichten
Prüfliste für den Maintainer. Stand 04.09.2026. Einmalig auszuführen; danach ist dieses Dokument nur noch Nachweis, was wie eingestellt wurde.
Alles hier ist Menschenarbeit. Ein KI-Agent kann die Texte vorbereiten, aber weder Repositories anlegen noch pushen noch Schutzregeln setzen (ADR 0007).
1. Repository anlegen
Gitea → Organisation AG_QGIS → Neues Repository.
| Einstellung | Wert |
|---|---|
| Name | Projektwissen |
| Beschreibung | Gemeinsame Wissensbasis, Regeln und Werkzeuge der QGIS-Plugin-Entwicklung LNO Sachsen |
| Sichtbarkeit | öffentlich (wie die übrigen Repos der Organisation) |
.gitignore, Lizenz, README |
nicht anlegen lassen — bringt der erste Push mit |
| Issues | an |
| Wiki | aus — die Doku liegt versioniert im Repo (ADR-Begründung in docs/wissen/externe_dienste.md) |
| Standard-Branch | unstable – dort wird gearbeitet. Nicht stable (dann landet jeder Klon auf dem Releasestand) und nicht main (gibt es in diesem Modell nicht). Alle acht Code-Repos der Organisation stehen auf unstable; main haben nur Defaults, Linkliste und Repository, die kein Kanalmodell kennen. |
2. Ersten Stand pushen
Der Ordner AG_QGIS/ ist bereits als Git-Repository vorbereitet, mit einem Commit, der genau die Dateien
dieses Repositories enthält (die Plugin-Klone sind per .gitignore ausgenommen).
cd <…>/AG_QGIS
git status # erwartet: nichts Unversioniertes außer den Plugin-Klonen
git log --oneline # erwartet: der vorbereitete erste Commit
git remote add origin https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Projektwissen.git
git push -u origin unstable
Wir beginnen bewusst auf unstable, damit auch dieses Repository dem Kanal-Modell aus
../leitfaden/05_git_arbeitsweise.md folgt.
Vor dem Push prüfen:
- Autor des Commits stimmt.
git log -1 --format='%an <%ae>'– erwartet wird die Adresse des Gitea-Kontos, weil Gitea Commits darüber dem Benutzer zuordnet. Stimmt sie nicht, vor dem Push korrigieren:bash git config user.name "Vorname Nachname" git config user.email "vorname.nachname@lfulg.sachsen.de" git commit --amend --reset-author --no-edit git statuszeigt keine Plugin-Ordner (Plugin_SN_*,Repository,Linkliste,Defaults)entwuerfe/ist nicht enthalten- keine Zugangsdaten, keine Tokens, keine echten Verfahrensdaten
python scripts/run_tests.pyläuftpython scripts/testkatalog.py --pruefenmeldet „aktuell"
3. Branches anlegen
git switch -c testing unstable && git push -u origin testing
git switch -c stable unstable && git push -u origin stable
git switch unstable
Danach in Gitea unter Einstellungen → Allgemein prüfen, dass der Standard-Branch weiterhin unstable ist —
das Anlegen weiterer Branches ändert ihn zwar nicht, aber es kostet nichts, einmal hinzusehen.
4. Branch-Schutz setzen
Einstellungen → Branches (englisch: Settings → Branches), dort eine neue Branch-Schutzregel anlegen — je
einmal für stable, testing und unstable:
| Einstellung | Wert |
|---|---|
| Branch-Name | stable / testing / unstable |
| Push deaktivieren | an |
| Merge-Freigabe erforderlich | mindestens 1 |
| Veraltete Freigaben verwerfen | an |
| Statusprüfungen erforderlich | erst aktivieren, wenn CI läuft (Abschnitt 6) |
5. Dasselbe für die Plugin-Repositories
Dort fehlt bisher der stabile Kanal. Je Repo (Plugin_SN_Basis, Plugin_SN_Plan41,
Plugin_SN_Verfahrensgebiet, Plugin_SN_Widmung, Plugin_SN_FLT, Plugin_SN_Topografie,
Plugin_SN_Template):
stableanlegen — austesting, wo es das gibt, sonst ausunstable. Der Name muss exaktstablelauten, weil der Release-Workflowgit checkout "$CHANNEL"ausführt (ADR 0007).- Branch-Schutz für
stable,testing,unstablewie in Abschnitt 4 oldstableprüfen (Plugin_SN_Basis,Plugin_SN_Plan41): enthält er noch etwas Nötiges? Sonst löschen.- Verwaiste Branches prüfen und löschen:
feature/Drucklayout-überarbeiten,print_layout(Basis),bug/crash_on_exit(Plan41),alkis-nur-laden-stop,fix-fbschl-feldname(Verfahrensgebiet)
Erst danach funktioniert ein Release auf dem stabilen Kanal (Tag ohne Suffix).
6. Optional: Tests in CI
Vorlage: ../vorlagen/gitea_workflow_tests.yaml → als
.gitea/workflows/tests.yaml in Plugin_SN_Basis, Plugin_SN_Plan41 und Plugin_SN_Verfahrensgebiet.
Sie klont das Projektwissen und die Nachbar-Repos und führt den Baseline-Lauf aus.
Voraussetzung: ein Gitea-Runner mit dem Label alpine-latest (wie beim Release-Workflow). Läuft das, in
Abschnitt 4 „Statusprüfungen erforderlich" aktivieren.
Der Ausbau zu Tests gegen echtes QGIS steht in
07_qgis_tests_plan.md und braucht einen Runner mit Docker.
7. Team informieren
- Link zum Repository und zur
README.mdverteilen - Auf die Umstellung hinweisen: der Klon-Befehl heißt jetzt
git clone .../Projektwissen.git AG_QGIS(Ordnername unverändert) - Um Durchsicht der Entscheidungen 0006–0009 bitten; nach Zustimmung den Status aller ADR von „vorgeschlagen" auf „angenommen" setzen
- Jede Person trägt sich in
docs/status/STATUS.mdunter „Wer arbeitet woran" ein
8. Nach der Einrichtung zu klären
Diese Punkte liegen als Entwürfe bzw. offene Baustellen in docs/status/STATUS.md:
- QGIS-Mindestversion. Steht auf 3.40, das seit Januar 2026 End of Life ist
(
07_qgis_tests_plan.mdAbschnitt 2). Betrifftworkspace.tomlund alle.gitea/templates/metadata.template. .vscode/aus den Plugin-Repos entfernen. Liegt in vier Repos mit fest verdrahteten Pfaden eines einzelnen Arbeitsplatzes. Je ein kleiner Pull Request.- Release-Excludes ergänzen (
Repository:hidden/workflows):AGENTS.md,CLAUDE.md,.agents/,.claude/,docs/,tests/,.vscode/.