Kompatibilita verzí
Co se smí změnit v minoritní verzi DressCode a co ne: na čem můžete stavět konfiguraci, CI, nástroj, který čte výstup, i vlastní pravidlo.
Standardy a sady
Standard i sada se mohou v minoritní verzi rozrůst o nová rozhodnutí. Nové pravidlo, které do standardu patří, do
něj přibude, a fix pak po aktualizaci změní kód, který dřív nechal být. Je to záměr: standard popisuje
styl, ne seznam pravidel zmrazený ke dni instalace.
Kdo chce mít změny pod kontrolou, má dvě cesty. Verzi DressCode zamkne v composer.lock a aktualizaci pustí
vědomě, s diffem, který přinese. Nebo rozhodnutí, které mu nesedí, nastaví v konfiguraci na keep; hodnota
z konfigurace přebije každý preset, i ten, který ji dostal až v nové verzi. Co v konfiguraci stojí, se nezmění bez
vašeho zásahu.
Odkud se každá hodnota vzala, ukáže výpis dresscode config.
Výstup pro nástroje
Dokument formátu json nese klíč version. Ten se zvýší jen tehdy, když klíč zmizí,
přejmenuje se nebo změní význam. Nové klíče přibývají v minoritní verzi, a proto má nástroj, který dokument čte,
klíče, které nezná, přeskočit. Text zpráv porušení se měnit smí, ať kvůli srozumitelnosti, nebo přesnosti; nástroj,
který se rozhoduje podle porušení, ať čte cestu rozhodnutí v klíči decision, ne zprávu.
Formát lines drží svou gramatiku, jeden řádek na nález ve tvaru
cesta:řádek:sloupec: závažnost: zpráva [rozhodnutí], takže matcher editoru napsaný podle návodu přežije aktualizaci. Formát
agent je psaný pro model a jeho formulace se mění podle toho, co agentovi pomáhá; jeho význam ne: čistý
soubor mlčí, přepis se hlásí jen u zapsaného souboru a řádky patří souboru, jak je teď na disku.
Veřejné API
Co je veřejné API, popisuje stránka Rozšiřování DressCode. Pro to, co tam stojí, platí:
- Jména parametrů jsou kontrakt. Metody se volají i s pojmenovanými argumenty, a tak se parametr v minoritní verzi nepřejmenuje.
- Veřejný výčet smí přibrat case.
SeverityneboRiskmohou v minoritní verzi dostat novou hodnotu.matchnad nimi v pravidle nebo pluginu proto potřebuje větevdefault. - Nové třídy uzlů. Strom PhpSyntaxu může v minoritní verzi dostat nový uzel pro novou syntaxi PHP, a tak
matchnad třídami uzlů potřebujedefaulttaky. - Pořadí pravidel se negarantuje. Pravidla běží v pořadí registrace, ale to se v minoritní verzi změnit smí; pravidlo nesmí počítat s tím, že jiné pravidlo běží před ním nebo po něm. Co si pravidla předávají, je rozhodnutí, styl běhu nebo analýza souboru, viz Pravidlo do detailu.
Třída nebo metoda označená @internal k veřejnému API nepatří a změnit se smí kdykoli.