Historie: chronologische commit-engine met pygit2 #30

Closed
opened 2026-03-30 07:33:35 +02:00 by coornhert · 0 comments
Owner

Beschrijving

De kern van de historie-reconstructie: een engine die per regeling alle toestanden chronologisch als git commits aanmaakt met correcte auteur-datums.

Werkwijze

  1. Sorteer toestanden op datum (oudste eerst)
  2. Parse elke toestand naar Markdown
  3. Schrijf Markdown naar de juiste plek in de repo
  4. Commit met:
    • Author date: datum inwerkingtreding van de toestand
    • Commit date: nu (of ook de toestand-datum)
    • Message: YYYY-MM-DD | BWB-ID | Beschrijving
    • Author: Coornhert <coornhert@wetgit.nl>
  5. Vervallen regelingen: status -> "vervallen" in frontmatter (niet verwijderen)

Technisch

  • pygit2 voor git operaties (performanter dan subprocess git)
  • Idempotent: opnieuw draaien mag geen duplicaten creeren
  • Moet werken op bestaande repo met al een commit (de huidige bulk)

Edge cases

  • Regeling met 100+ toestanden (grote wetten)
  • Toestanden op dezelfde datum (meerdere wijzigingen op 1 dag)
  • Vervallen en weer geldend geworden regelingen

Afhankelijkheid

  • Vereist sub-issue 8b (alle versie-XMLs gecached)

Sub-issue van #8

## Beschrijving De kern van de historie-reconstructie: een engine die per regeling alle toestanden chronologisch als git commits aanmaakt met correcte auteur-datums. ## Werkwijze 1. Sorteer toestanden op datum (oudste eerst) 2. Parse elke toestand naar Markdown 3. Schrijf Markdown naar de juiste plek in de repo 4. Commit met: - **Author date**: datum inwerkingtreding van de toestand - **Commit date**: nu (of ook de toestand-datum) - **Message**: `YYYY-MM-DD | BWB-ID | Beschrijving` - **Author**: `Coornhert <coornhert@wetgit.nl>` 5. Vervallen regelingen: status -> "vervallen" in frontmatter (niet verwijderen) ## Technisch - `pygit2` voor git operaties (performanter dan subprocess git) - Idempotent: opnieuw draaien mag geen duplicaten creeren - Moet werken op bestaande repo met al een commit (de huidige bulk) ## Edge cases - Regeling met 100+ toestanden (grote wetten) - Toestanden op dezelfde datum (meerdere wijzigingen op 1 dag) - Vervallen en weer geldend geworden regelingen ## Afhankelijkheid - Vereist sub-issue 8b (alle versie-XMLs gecached) ## Sub-issue van #8
coornhert added this to the Fase 1 — Data Foundation milestone 2026-03-30 07:33:35 +02:00
coornhert added the
type:feature
component:pipeline
labels 2026-03-30 07:33:35 +02:00
Sign in to join this conversation.
No description provided.