Okamžik
Příspěvek je dobře napsaný. Testy procházejí. Používá vzor, který projekt před dvěma lety opustil, z vynikajících důvodů, které nejsou zaznamenány nikde, kam by se přispěvatel dostal. Maintainer píše vysvětlení po jedenácté.
Proč k tomu dochází
Skutečné konvence projektu jsou usazenina jeho sporů a spory nejsou dokumenty. Přežívají v správcích a ve starých revizních vláknech. Asistenti změnili ekonomiku jen na jedné straně: vyrobit věrohodný příspěvek je nyní téměř zadarmo a předat konvence stojí přesně tolik co dřív.
Proč to lepší model nevyřeší
Asistent přispěvatele si s tím, co měl, vedl dobře — s kódem, README a testy. Žádné z nich neobsahuje důvod, proč byl opuštěný vzor opuštěn. Silnější model podává přesvědčivější argumenty pro špatný vzor.
Co to stojí
Nejvzácnější zdroj maintainera, utracený na opakování. A fronta, která roste rychleji, než se vyprazdňuje, a nakonec promění otevřený projekt v uzavřený.
Co Majordomus dělá
Pravidla jsou objekty, ne folklór: efektivní sada je vendorovaný základ plus vlastní pravidla projektu, vyřešená jako graf závislostí, a každé říká, zda ho nástroj vynucuje, nebo nikdo. Kontextové dokumenty se vážou na adresáře a cesty, které řídí, a skládají se pro cestu, která se mění, takže asistentovi přispěvatele lze říct, aby je před psaním vyřešil. Rozhodnutí nesou svůj důvod a zamítnutou alternativu, což je věta, kterou posouzení stále musí dodávat.
Před a po
before review comment #11: "we don't use that pattern here, because ..."
after $ majordomus context resolve lib/auth
$ majordomus rules list
project.no-claim-without-test blocking enforced by: review
majordomus.scope-integrity blocking enforced by: check, finish, watchCo nedělá
Nekontroluje příspěvky a nemůže nikoho přimět, aby cokoli četl. Mění konvence z něčeho, co udržovatel předává, na něco, co přispěvatel může načíst.