Hoppa till innehållet

Byggde repots kontrollmotor — 268 registrerade commit‑kontroller, 277 lintregler och 15 egna ESLint‑regler — plus 146 tester av själva kontrollerna, så att det är bygget som håller standarden, inte granskningen.

268 commit‑kontroller, och 146 tester av själva kontrollerna

Situation. Standarder som står nedskrivna i en bidragsguide är förslag. Alla håller med om dem, och sedan är det fredag, ändringen är liten och guiden förlorar. Kravet på noll varningar kunde bara hålla om något annat än god vilja höll uppe det — och de lintverktyg som följer med varje språk stannar långt före de projektspecifika regler som faktiskt spelar roll, de som handlar om hur just den här kodbasen är tänkt att fungera.

Uppgift. De regler som projektet brydde sig om måste gå att köra, så att ett brott mot en av dem stoppade committen i stället för att man fick vänta på en granskare med både tid och minne att fånga det.

Handling. Ur det växte en vaktmotor fram. Den har 274 kontrollskript, varav 268 är registrerade i commit‑hookarna, tillsammans med 277 lintverktyg för JavaScript samt 96 skalvaliderare och 17 Python‑validerare som täcker sådant som färdiga verktyg inte har någon åsikt om — att en migrering går att rulla tillbaka, att en översättningsnyckel finns i båda språkversionerna, att en registrerad route finns med i OpenAPI‑beskrivningen, att ingen i tysthet har lagt in en undertryckning av en varning direkt i koden. Femton egna ESLint‑regler upprätthåller projektets etablerade mönster i TypeScript. En regel förtjänar att nämnas för sig: varje commit med prefixet fix: måste innehålla ett test som fallerar utan ändringen, så att en bugg som är rättad förblir rättad. Och eftersom en trasig vakt är värre än ingen vakt alls — den släpper igenom allt och ingen märker det — har vakterna 146 egna tester.

Resultat. Tiden i kodgranskningen flyttades från mekanik till design, eftersom de mekaniska invändningarna redan hade gjorts av en maskin innan grenen pushades. Avvägningen är verklig och värd att säga rakt ut: det går långsamt att committa, och en dåligt skriven vakt är verkligen enerverande att ta sig runt. De 146 testerna finns för att det har hänt.

En del av en längre historik — och den finns i sin helhet här.

Varje post är skriven på samma sätt: situationen, uppgiften, vad vi gjorde och vad som förändrades.

Se hela historiken