Homebrew-tapcontrole laten wijzen naar de zelfbijwerkworkflow en het volledige minisign-contract #2365

Closed
opened 2026-10-08 18:44:36 +00:00 by brenno · 0 comments
Owner

Probleem

De periodieke OciDeck-run #5521 constateert terecht dat de canonieke Homebrew-tap en zijn GitHub-spiegel nog v0.6.13 aanbieden terwijl v0.6.14 publiek is. De foutmelding stuurt de beheerder echter naar HOMEBREW_TAP_TOKEN:

The push into LibreKAT/homebrew-ocideck did not land -- check HOMEBREW_TAP_TOKEN.

Dat advies is verouderd en onjuist. De releaseketen duwt de tap bewust niet meer met een persoonlijk token. LibreKAT/homebrew-ocideck haalt zichzelf halfuurlijks bij met het repo-beperkte Actions-token. De werkelijke fout is zichtbaar in de tapworkflow: minisign verifier not found.

Daarnaast beschrijft test/homebrew_cask_verify_test.dart nog een tweedelig extern contract (generatiescript + template), terwijl het generatiescript sinds v0.6.14 ook de bij dezelfde tag behorende minisign.pub en het minisign-programma vereist. Daardoor bleef de incompatibele tapworkflow buiten de OciDeck-poorten.

De uitvoeringsreparatie in de tap-repository wordt gevolgd in homebrew-ocideck#2.

Oorzaak

Commit afecb58be maakte de caskgenerator terecht fail-closed op de handtekening van SHA256SUMS. De externe integratie-aannames en diagnostiek zijn daarbij niet volledig meegegaan:

  • scripts/verify_homebrew_cask.sh noemt nog het afgeschafte HOMEBREW_TAP_TOKEN;
  • de bijbehorende test eist die verouderde tekst zelfs expliciet;
  • de contracttest noemt alleen scripts/update_homebrew_cask.sh en homebrew/ocideck.rb.tmpl, niet minisign.pub;
  • de periodieke controle meldt alleen dat de tap achterloopt en verwijst niet naar de zelfbijwerkworkflow waar de echte oorzaak staat.

Oplossingsrichting

  1. Vervang de tokenmelding in scripts/verify_homebrew_cask.sh door een concrete verwijzing naar de zelfbijwerkworkflow van LibreKAT/homebrew-ocideck.
  2. Houd de twee foutklassen uit elkaar:
    • canonieke tap achter: de zelfbijwerkworkflow of diens bouwcontract faalt;
    • canonieke tap goed maar GitHub-spiegel achter na het respijt: de push-mirror faalt.
  3. Pas test/homebrew_cask_verify_test.dart aan:
    • verbied HOMEBREW_TAP_TOKEN in deze diagnose;
    • eis een verwijzing naar de tapworkflow/actionspagina;
    • leg minisign.pub vast als derde publieke bouwsteen van het externe contract.
  4. Voeg één gerichte regressietest toe die de v0.6.14-layout nabootst en bewijst dat script, template en sleutel samen op de verwachte paden staan. Verzwak of mock de handtekeningcontrole niet weg; gebruik de bestaande hermetische minisign-testondersteuning.
  5. Werk de toelichtende comments/documentatie bij waar ze nog zeggen dat de tap slechts twee bestanden nodig heeft.

Acceptatiecriteria

  • Een achterlopende canonieke tap noemt in stderr de repository en actionspagina van de zelfbijwerkworkflow.
  • Geen fouttekst of test verwijst nog naar HOMEBREW_TAP_TOKEN als herstelroute.
  • Een achterlopende GitHub-spiegel blijft afzonderlijk naar de mirrorinstellingen en -credentials wijzen.
  • De contracttest noemt en controleert alle drie taggebonden bouwstenen: generator, template en minisign.pub.
  • Tests bewijzen dat een ontbrekende publieke sleutel of mislukte handtekening fail-closed blijft.
  • Na oplossing van homebrew-ocideck#2 zijn scripts/verify_homebrew_cask.sh v0.6.14 en scripts/verify_homebrew_cask.sh --mirror v0.6.14 groen.
  • Een handmatige run van tap-mirror-check.yml eindigt groen en de samenvatting plus staplog wijzen bij een toekomstige fout naar dezelfde juiste herstelroute.

Reikwijdte

Geen wijziging aan het OciDeck-bestandsformaat, geen nieuwe runtime-afhankelijkheid voor de applicatie en geen nieuw geheim. Dit betreft uitsluitend packagingdiagnostiek, het externe integratiecontract en bijbehorende tests.

## Probleem De periodieke OciDeck-run [#5521](https://pawprint.vigilis.online/LibreKAT/Ocideck/actions/runs/5521) constateert terecht dat de canonieke Homebrew-tap en zijn GitHub-spiegel nog v0.6.13 aanbieden terwijl v0.6.14 publiek is. De foutmelding stuurt de beheerder echter naar `HOMEBREW_TAP_TOKEN`: ``` The push into LibreKAT/homebrew-ocideck did not land -- check HOMEBREW_TAP_TOKEN. ``` Dat advies is verouderd en onjuist. De releaseketen duwt de tap bewust niet meer met een persoonlijk token. `LibreKAT/homebrew-ocideck` haalt zichzelf halfuurlijks bij met het repo-beperkte Actions-token. De werkelijke fout is zichtbaar in de tapworkflow: `minisign verifier not found`. Daarnaast beschrijft `test/homebrew_cask_verify_test.dart` nog een tweedelig extern contract (generatiescript + template), terwijl het generatiescript sinds v0.6.14 ook de bij dezelfde tag behorende `minisign.pub` en het `minisign`-programma vereist. Daardoor bleef de incompatibele tapworkflow buiten de OciDeck-poorten. De uitvoeringsreparatie in de tap-repository wordt gevolgd in [homebrew-ocideck#2](https://pawprint.vigilis.online/LibreKAT/homebrew-ocideck/issues/2). ## Oorzaak Commit `afecb58be` maakte de caskgenerator terecht fail-closed op de handtekening van `SHA256SUMS`. De externe integratie-aannames en diagnostiek zijn daarbij niet volledig meegegaan: - `scripts/verify_homebrew_cask.sh` noemt nog het afgeschafte `HOMEBREW_TAP_TOKEN`; - de bijbehorende test eist die verouderde tekst zelfs expliciet; - de contracttest noemt alleen `scripts/update_homebrew_cask.sh` en `homebrew/ocideck.rb.tmpl`, niet `minisign.pub`; - de periodieke controle meldt alleen dat de tap achterloopt en verwijst niet naar de zelfbijwerkworkflow waar de echte oorzaak staat. ## Oplossingsrichting 1. Vervang de tokenmelding in `scripts/verify_homebrew_cask.sh` door een concrete verwijzing naar de zelfbijwerkworkflow van `LibreKAT/homebrew-ocideck`. 2. Houd de twee foutklassen uit elkaar: - canonieke tap achter: de zelfbijwerkworkflow of diens bouwcontract faalt; - canonieke tap goed maar GitHub-spiegel achter na het respijt: de push-mirror faalt. 3. Pas `test/homebrew_cask_verify_test.dart` aan: - verbied `HOMEBREW_TAP_TOKEN` in deze diagnose; - eis een verwijzing naar de tapworkflow/actionspagina; - leg `minisign.pub` vast als derde publieke bouwsteen van het externe contract. 4. Voeg één gerichte regressietest toe die de v0.6.14-layout nabootst en bewijst dat script, template en sleutel samen op de verwachte paden staan. Verzwak of mock de handtekeningcontrole niet weg; gebruik de bestaande hermetische minisign-testondersteuning. 5. Werk de toelichtende comments/documentatie bij waar ze nog zeggen dat de tap slechts twee bestanden nodig heeft. ## Acceptatiecriteria - Een achterlopende canonieke tap noemt in stderr de repository en actionspagina van de zelfbijwerkworkflow. - Geen fouttekst of test verwijst nog naar `HOMEBREW_TAP_TOKEN` als herstelroute. - Een achterlopende GitHub-spiegel blijft afzonderlijk naar de mirrorinstellingen en -credentials wijzen. - De contracttest noemt en controleert alle drie taggebonden bouwstenen: generator, template en `minisign.pub`. - Tests bewijzen dat een ontbrekende publieke sleutel of mislukte handtekening fail-closed blijft. - Na oplossing van homebrew-ocideck#2 zijn `scripts/verify_homebrew_cask.sh v0.6.14` en `scripts/verify_homebrew_cask.sh --mirror v0.6.14` groen. - Een handmatige run van `tap-mirror-check.yml` eindigt groen en de samenvatting plus staplog wijzen bij een toekomstige fout naar dezelfde juiste herstelroute. ## Reikwijdte Geen wijziging aan het OciDeck-bestandsformaat, geen nieuwe runtime-afhankelijkheid voor de applicatie en geen nieuw geheim. Dit betreft uitsluitend packagingdiagnostiek, het externe integratiecontract en bijbehorende tests.
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#2365
No description provided.