Arkitekturbeslut
Detta dokument innehåller viktiga tekniska beslut och varför de fattades.
ADR-001: main motsvarar produktion
Beslut: main är den branch som produktion bygger från.
Motivering: Det ger en enkel och tydlig modell där produktionskoden alltid kan identifieras i Git.
ADR-002: develop motsvarar test
Beslut: develop används för testmiljön.
Motivering: Nya funktioner kan verifieras utan att påverka produktion.
ADR-003: Git Worktree används
Beslut: prod/app och test/app är separata worktrees.
Motivering: Test och produktion kan ligga på olika brancher samtidigt utan manuell kopiering.
ADR-004: Data ligger utanför Git
Beslut: Datakataloger versioneras inte.
Motivering: Data är miljöspecifik, kan innehålla personuppgifter och ska inte blandas med källkod.
ADR-005: Docker används som körmiljö
Beslut: Applikationen körs i Docker med Gunicorn.
Motivering: Docker ger repeterbar körmiljö och gör test/prod mer lika.
ADR-006: Dokumentationen ligger i appen
Beslut: Dokumentation exponeras i applikationen under /docs.
Motivering: Systemet blir självdokumenterande och dokumentationen följer releaserna.
ADR-007: Releasepaket används som leveransformat
Beslut: Nya ändringar levereras som zip-baserade releasepaket.
Motivering: Det minskar manuell klipp-och-klistra och gör installation mer repeterbar.
ADR: Gemensam spelaridentitet (20.43.0)
Ranking, historiska resultat och framtida anmälningar ska inte skapa separata webbidentiteter. Tabellen players är den gemensamma identiteten. Källtabellerna behålls och länkas med canonical_player_id. Historiska spelare behandlas som auktoritativ källa vid första migreringen eftersom de redan bär relationen till tävlingsresultaten.
ADR: SGF Club Registry före Location Registry (v20.45.0)
Beslut: Officiella SGF-klubbar importeras och matchas före skapande av spelplatser och banor.
Motiv: Klubbnummer är stabilare än observerade fritextnamn. En explicit confidence score gör automatiska och manuella beslut spårbara.
Konsekvens: Endast klubbregistret får skrivas i v20.45.0. Venue/course-import aktiveras i en senare release efter granskning av den kombinerade analysrapporten.
ADR: konservativ Course Registry-import
Endast course-namn klassificerade som specific och kopplade till redan matchat venue får skrivas. Alla andra klassificeringar förblir read-only för att undvika semantiskt felaktiga banobjekt.
ADR: Venue Registry is the source of truth for distances
Accepted in v20.46.0. Distances are tied to primary venue IDs. The old name-based location table remains only as a compatibility projection during migration.