Behandel een onzekere remote tagpush als point of no return #2297

Closed
opened 2026-10-05 23:41:41 +00:00 by brenno · 0 comments
Owner

Aanleiding

TAG_PUSHED wordt pas gezet nadat git push origin TAG en een aparte teruglezing met ls-remote beide slagen. Als de server de push accepteert maar het antwoord of de teruglezing wegvalt, bestaat de publieke tag al terwijl release_auto denkt dat nog niets onherroepelijks is gebeurd. De lokale releasebranch wordt dan opgeruimd en het advies is opnieuw beginnen in plaats van dezelfde tag hervatten.

Bewijs

  • scripts/release_auto.sh:138 laat die() altijd cleanup_branch aanroepen.
  • scripts/release_auto.sh:1643-1652 zet TAG_PUSHED pas na push plus teruglezing.
  • scripts/release_auto.sh:199-220 kiest hersteladvies en cleanup op basis van TAG_PUSHED.

Gewenst gedrag

  • Vanaf de eerste remote tagpushpoging is de toestand remote-onzeker en nooit meer veilig terugdraaibaar.
  • Bij ontbrekende bevestiging: geen branchcleanup en geen advies voor een verse release.
  • Herstel bestaat uit read-only statuscontrole en daarna uitsluitend --resume van dezelfde tag.
  • Een aantoonbaar afgewezen push vóór serveracceptatie mag apart worden behandeld.

Regressietoets

Simuleer een server die de tag opslaat waarna de clientverbinding faalt. De run moet de branch bewaren, dezelfde tag als herstelroute noemen en nooit een volgende release adviseren.

## Aanleiding TAG_PUSHED wordt pas gezet nadat git push origin TAG en een aparte teruglezing met ls-remote beide slagen. Als de server de push accepteert maar het antwoord of de teruglezing wegvalt, bestaat de publieke tag al terwijl release_auto denkt dat nog niets onherroepelijks is gebeurd. De lokale releasebranch wordt dan opgeruimd en het advies is opnieuw beginnen in plaats van dezelfde tag hervatten. ## Bewijs - scripts/release_auto.sh:138 laat die() altijd cleanup_branch aanroepen. - scripts/release_auto.sh:1643-1652 zet TAG_PUSHED pas na push plus teruglezing. - scripts/release_auto.sh:199-220 kiest hersteladvies en cleanup op basis van TAG_PUSHED. ## Gewenst gedrag - Vanaf de eerste remote tagpushpoging is de toestand remote-onzeker en nooit meer veilig terugdraaibaar. - Bij ontbrekende bevestiging: geen branchcleanup en geen advies voor een verse release. - Herstel bestaat uit read-only statuscontrole en daarna uitsluitend --resume van dezelfde tag. - Een aantoonbaar afgewezen push vóór serveracceptatie mag apart worden behandeld. ## Regressietoets Simuleer een server die de tag opslaat waarna de clientverbinding faalt. De run moet de branch bewaren, dezelfde tag als herstelroute noemen en nooit een volgende release adviseren.
brenno 2026-10-07 04:53:41 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2297
No description provided.