Hopp til innhold

Bygde en commit‑port med 22 enlinjes lintere pluss fem som fortjener et avsnitt, uten advarselsnivå og uten tillatte undertrykkinger i koden, som dekker HTML, CSS, JavaScript, Python, YAML, Markdown, shell, lenker, staving, hemmeligheter og typografi.

22 enlinjes lintere, og fem som fortjener et avsnitt

Situasjon. En bidragsveiledning er et sett med forslag. Alle er enige i den, og så er det fredag, endringen er liten, og veiledningen taper. I et enpersonsprosjekt er det verre og ikke bedre, fordi det ikke finnes noen som gjennomgår endringene i det hele tatt — det eneste som står mellom en dårlig endring og produksjon, er personen som skrev den, i det øyeblikket vedkommende er minst tilbøyelig til å krangle med seg selv.

Oppgave. Standardene måtte være kjørbare, slik at et brudd på én av dem får en commit til å feile i stedet for å vente på å bli lagt merke til.

Handling. Det som vokste frem, er en kvalitetsport med 22 lintere uten noe advarselsnivå: hver diagnostikk er en feil, og selve nettstedsgeneratoren kjører med advarsler oppgradert til feil, slik at selv en melding om utfasing stopper byggingen. De åpenbare er der — HTML‑validering, CSS, JavaScript, Python, YAML, Markdown, shell, staving, hemmeligheter, døde lenker. De interessante er de prosjektspesifikke sjekkene som intet hyllevareverktøy har noen mening om: at begge fargetemaene maler hver lagdelte flate med like mange lag, at intet fotografi vises bredere enn halvparten av kildebildets piksler, at treet som settes i produksjon, ikke inneholder noen private stier eller vertsnavn, at teksten følger tonereglene på alle tre språk, at en side har en Markdown‑tvilling og en gyldig representasjon i en alternativ protokoll. Inline‑undertrykking er forbudt uten unntak — ingen ignore‑kommentarer, ingen disable‑direktiver, ingen omgåelse av hooken og ingen omdøping av filer for å slippe unna et filmønster. Regelen som holder dette ærlig, er at en feil som fantes fra før, ikke er en unnskyldning: når en sjekk avdekker en feil ingen har innført, rettes den i samme omgang.

Resultat. Mekaniske innvendinger kommer fra en maskin før en commit finnes, og kvalitetsporten er den eneste som gjennomgår endringer i dette prosjektet. Kostnaden er oppgitt og ikke skjult: det går tregt å committe, og en dårlig skrevet sperre er rett og slett til å bli gal av når den må omgås, og det er grunnen til at sperrene selv senere ble lagt under et eget formateringsverktøy og en egen linter.

Ett stykke av en lengre oversikt — og den ligger i sin helhet her.

Hver oppføring er skrevet på samme måte: situasjonen, oppgaven, hva vi gjorde, og hva som endret seg.

Se hele oversikten