De Windows-installer rijdt mee in de releaseketen #1587
No reviewers
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!1587
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/installer-in-release"
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?
Sluit #1583. De installer uit #1208 bestond wel, maar kwam bij geen enkele release terecht.
De aanname die niet klopte
"Er is geen Windows-runner" gold voor de forge, niet voor de keten:
.github/workflows/release.ymlop de spiegel bouwt bij elkev*-tag al de Windows-zip die de forge metcurlterughaalt. De installer kan daar gewoon uit komen.Spiegel
Inno Setup zelf ophalen. Niet via Chocolatey — dat zou een extra partij in het releasepad zetten voor een bestand dat upstream gewoon als GitHub release-asset publiceert. Dubbel gepind: op versie (
INNOSETUP_VERSION, ook in.github/pinned-ci-versions.json, anders valtpinned_versions_manifest_test) én op sha256, zodat vervangen bytes luid falen in plaats van stil iets anders te bouwen. Dat is nodig omdatwindows-latestInno Setup niet meer meelevert sinds dat label naar Server 2025 wees.Installer vóór de zip. Het script tekent
ocideck.exeen de dll's ter plekke zodraOCIDECK_WIN_SIGN_SHA1gezet is. Zip je eerst, dan draagt de zip ongetekende binaries en de installer getekende — twee downloads die niet dezelfde bouw zijn. De poort houdt die volgorde vast.Versie uit de tag, niet uit pubspec. De forge haalt op onder een naam die uit de tag is afgeleid. Zou het script hier zelf
pubspec.yamllezen, dan levert een tag die even vooruitloopt een bestand op dat de forge niet kan vinden — een release die vastloopt op een naamsverschil.Forge
windows-ophalenhaalt beide bestanden op en weigert klaar te zijn met maar één. Zonder dat verlaat een halve spiegel-run (of een oude release waar alleen de zip aan hangt) deze job groen, en publiceert de forge een release waarin stilzwijgend één bestand ontbreekt. Ze landen vóór deChecksums-stap, dus de installer staat inSHA256SUMSen valt onder de minisign-handtekening.Dat is precies de voorwaarde die de bewakerstoets bij #1208 stelde — een ongetekende installer die om verhoging vraagt heeft anders geen enkele herkomst — nu niet meer als belofte in de documentatie maar afgedwongen door de keten.
De pin-monitor
Inno Setup tagt
is-7_1_0, niet7.1.0.check_pinned_versionskende die vorm niet en zou de pin élke run als verouderd melden; een monitor die altijd afgaat leest niemand. Vandaar een optioneletag_regexin het manifest.Gepind op 7.1.0, niet op de 6-lijn: 7 houdt uitdrukkelijk achterwaartse compatibiliteit, en de gedocumenteerde breekpunten zitten allemaal in Pascal Script en preprocessor-functies — waar dit
.isser geen van heeft, want een[Code]-sectie is door de poort verboden. Het pad naarISCC.exestaat niet meer in de workflow: 6 en 7 staan naast elkaar en de 64-bit-editie landt onder een andere Program Files-root, dus het script zoekt het zelf.De rest van de keten nagelopen
release_auto.shensign_release.shblijken artefact-agnostisch — die controleren alleen datSHA256SUMS+ handtekening bestaan. De installer komt vanzelf in het manifest viasha256sum ./*.release_package_layout_test.dartenhomebrew_cask_test.dartraken hem niet. Geen wijziging nodig, wel gecontroleerd in plaats van aangenomen.Toetsen
make checkgroen (9.938 tests, dekking 87,1%, per-bestand-vloer 0);make check-staticenmake check-registrationsapart groen.have_asseteist beide, de artifact-glob versmalt niet, en de releasetekst biedt hem aan mét de "werkt zichzelf niet bij"-zin.make check-secretsenmake sastgroen (zie #1582, ongewijzigd sindsdien voor deze bestanden).Documentatie
docs/BUILD.md,packaging/README.md,docs/KNOWN_LIMITATIONS.md,docs/FAQ.md,.forgejo/release-body.mden de changelog. Een deel daarvan is een correctie op mijn eigen tekst van gisteren, die nog beweerde dat de installer handwerk is en niet uit de release komt.Website
Aparte PR in
LibreKAT/website(takfeat/ocideck-windows-installer): het installerblok verschijnt daar automatisch zodra een release hem draagt. Die PR bevat ook een bugfix die hier los van staat — de site toonde een verkeerde Windows-checksum.