fix(release): onzekere remote tagpush als point of no return (#2297) #2339

Merged
brenno merged 1 commit from fix/tag-push-uncertain into main 2026-10-07 04:53:36 +00:00
Owner

Sluit #2297.

TAG_PUSHED werd pas gezet ná push én teruglezing. Viel het antwoord of de teruglezing weg terwijl de server de tag al sloeg, dan dacht de keten dat er niets onherroepelijks was gebeurd: die() ruimde de release-branch op en het hersteladvies was een verse release naast een mogelijk bestaande publieke tag.

Vanaf de eerste pushpoging staat nu TAG_UNCERTAIN aan tot de toestand bewezen is. Zolang die aan staat laat die() de branch staan en wijst on_err naar read-only --status gevolgd door --resume van dezelfde tag — nooit een volgende release. Alleen een aantoonbaar afgewezen push (teruglezing rc 1: de server kent de tag niet) telt nog als "niets gebeurd".

Regressietest test/release_tag_push_uncertain_test.dart simuleert een server die de tag opslaat terwijl de clientverbinding faalt: branch blijft, herstelroute is --status/--resume van dezelfde tag.

make check groen.

Sluit #2297. `TAG_PUSHED` werd pas gezet ná push én teruglezing. Viel het antwoord of de teruglezing weg terwijl de server de tag al sloeg, dan dacht de keten dat er niets onherroepelijks was gebeurd: `die()` ruimde de release-branch op en het hersteladvies was een verse release naast een mogelijk bestaande publieke tag. Vanaf de eerste pushpoging staat nu `TAG_UNCERTAIN` aan tot de toestand bewezen is. Zolang die aan staat laat `die()` de branch staan en wijst `on_err` naar read-only `--status` gevolgd door `--resume` van dezelfde tag — nooit een volgende release. Alleen een aantoonbaar afgewezen push (teruglezing rc 1: de server kent de tag niet) telt nog als "niets gebeurd". Regressietest `test/release_tag_push_uncertain_test.dart` simuleert een server die de tag opslaat terwijl de clientverbinding faalt: branch blijft, herstelroute is `--status`/`--resume` van dezelfde tag. `make check` groen.
TAG_PUSHED werd pas gezet ná push én teruglezing; viel het antwoord of
de teruglezing weg terwijl de server de tag al sloeg, dan ruimde die()
de release-branch op en adviseerde de ERR-trap een verse release naast
een mogelijk bestaande tag. Nieuwe TAG_UNCERTAIN-vlag staat aan vanaf de
eerste pushpoging tot de toestand bewezen is: die() laat de branch dan
staan en on_err wijst naar read-only --status gevolgd door --resume van
dezelfde tag. Alleen een aantoonbaar afgewezen push (teruglezing rc 1)
telt nog als "niets gebeurd".
brenno merged commit 501abcbbce into main 2026-10-07 04:53:36 +00:00
brenno deleted branch fix/tag-push-uncertain 2026-10-07 04:53:37 +00:00
Sign in to join this conversation.
No description provided.