De uitbrengpoort remt de release niet, en wat live staat hoort bij geen enkele release #1893
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1893
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Twee losse waarnemingen aan het eind van de keten, met dezelfde oorzaak: de
poort en het uitleveren zijn niet aan elkaar geknoopt.
1. De uitbrengpoort remt de release niet
.forgejo/workflows/ci.yml(de volle suite,make check-no-coverageop deMac-runner) en
.forgejo/workflows/release.yml(bouwen, publiceren,ondertekenen, live zetten) vuren allebei onafhankelijk op
push: tags: ['v*'].release.ymlheeft geenneedsnaarci.yml, wacht niet op eenstatus, en kijkt nergens of de poort groen is.
Valt
ci / gateom op een tag, dan bouwt en publiceertrelease.ymlgewoondoor. De kop van
ci.ymlerkent de helft hiervan —— maar dat is een argument over waar het defect vandaan komt, niet over of het
uitgeleverd moet worden. Op de laatste vier tags (
v0.4.6–v0.4.9) stondci / gatetelkens groen (12–18 min), dus het heeft nog niet gebeten. Het is eenopen deur, geen geleden schade.
2. Wat live staat, hoort bij geen enkele release
https://ocideck.librekat.nl/version.json:main.dart.jsdraagtLast-Modified: Tue, 25 Aug 2026 23:35:26 GMT. De laatstetag is
v0.4.9van 23-08-2026;0.4.10+24is de onuitgebrachteontwikkelversie uit
pubspec.yaml. De publieke demo draait dus een build die bijgeen tag, geen release, geen SHA256SUMS-in-een-release en geen ondertekend
artefact hoort.
Dat is deels bewust:
deploy_web.shis een handmatige route (make deploy-web),en de
deploy-web-job inrelease.ymlslaat zichzelf over zolangDEPLOY_SSH_KEY/DEPLOY_KNOWN_HOSTSniet gezet zijn — dat staat er ook zo in.Het gevolg is alleen dat de gegate route uit staat en de ongegate route de
echte is.
deploy_web.shdoet zelf netjes werk (hij waarschuwt bij een vuilewerkkopie, drukt
git describeaf, hertoetstSHA256SUMSlive), maar nietsdaarvan is een poort en niets ervan is achteraf terug te vinden: de bundel zelf
draagt geen commit-aanduiding, en
version.jsongeeft0.4.10+24— een waardedie ~200 commits delen.
Voor een project dat reproduceerbare webbundels heeft gebouwd (#1027/#1033) is
dat de ontbrekende helft: reproduceerbaarheid is waardeloos als de invoer niet
te benoemen is.
Voorstel
release.ymllaten wachten op de poort. Simpelste vorm: één extra jobvooraan die de commitstatus van
ci / gateop deze tag pollt en faalt alsdie niet groen wordt; alle bouwjobs krijgen die als
needs. Alternatief:de poortstap ín
release.ymlals eerste job, enci.ymlop een tag latenvervallen — één keer draaien in plaats van twee.
git describeinversion.json, of eenbuild-info.jsonnaastSHA256SUMS), zodat "welkecommit staat er live" beantwoordbaar is.
deploy_web.shberekent hem al.ocideck.librekat.nlis: een rollende demo vanmain(prima —maar zeg het, en zet er de commit bij) of de laatste release (dan hoort de
deploy in de releaseketen en horen de secrets gezet te worden). Nu is het
allebei half.
Gevonden bij een kritische review van het kwaliteitsbewakingssysteem, 31-08-2026.