Release
Co tento projekt dodal a co dodá příště, odvozené, ne udržované: changelog skládá záznamy release vrstvy, rozhodnutí datovaná v okně každého release a konvenční commity v jeho rozsahu; zpráva o verzi čte jediné místo, kde se verze píše, a projekci, kterou vypisuje shellový nástroj, a říká, čím se podle veřejného kontraktu musí stát — nebo že to nelze změřit, a tedy nic nerozhoduje — a vedle toho jako důkaz uvádí, co naznačují commity od posledního release.
Co tento projekt dodal a co dodá příště, odvozené, ne udržované: changelog skládá záznamy release vrstvy, rozhodnutí datovaná v okně každého release a konvenční commity v jeho rozsahu; zpráva o verzi čte jediné místo, kde se verze píše, a projekci, kterou vypisuje shellový nástroj, a říká, čím se podle veřejného kontraktu musí stát — nebo že to nelze změřit, a tedy nic nerozhoduje — a vedle toho jako důkaz uvádí, co naznačují commity od posledního release.
- module release
- builtin
- implementováno
- 4 schopnosti
Schopnosti
Každý je složen v souboru tohoto modulu; každý má vlastní stránku.
release.analysisVeřejný povrch schopností tohoto stromu proti tomu, který publikoval poslední release, každý jeho pohyb pojmenovaný s důvodem, proč se počítá za to, čím je, a nejmenší verze, kterou tento strom proto smí deklarovat. Úroveň kompatibility se měří ze smlouvy, ne čte z předmětů commitů: schopnost, routa, MCP nástroj, příkaz nebo povinné pole kteréhokoli ze schémat, které volající mohl držet a už nemůže, je zásadní změna, ať se commit, který ji odstranil, nazýval jakkoli. To, co commity o sobě řekly, se nese vedle verdiktu jako důkaz a odpověď říká, kdy se obojí rozchází.query · implemented · majordomus_release_analysis · GET /api/v1/release/analysisrelease.changelogKaždý release, který vrstva zaznamenává, od nejnovějšího, s dosud nevydanou prací na začátku. Rozhodnutí sekce jsou ADR datovaná v okně toho releasu, její změny konvenční commity v jeho rozsahu, její artefakty vlastní důkazy záznamu. Nic v něm se nepíše a sekce, kterou nešlo přečíst, to řekne, místo aby se tvářila prázdně.query · implemented · majordomus_changelog · GET /api/v1/changelogrelease.nextNa co integrační executor zvedne verzi trunku, když přistane hlavu (ADR 0134): verze, kterou trunk deklaruje, jak daleko hlava posouvá veřejný kontrakt měřený proti commitovanému registru trunku, co tento posun vyžaduje v režimu verze, minimum repozitáře z `release.floor` v politice, třída výjimky, která minimum snížila, pokud do jedné spadá každá změněná cesta, větší z požadavku a minima a verze trunku jím zvýšená — s jednou větou na krok. Vše se čte z gitu ve dvou refech, takže odpověď nezávisí na tom, který spustitelný soubor běží, ani na vlastní verzi větve, a proto opakované přistání nemůže zvednout dvakrát. Rozhoduje a nic nezapisuje; vstup, který nelze přečíst, se odmítne, ne hádá.query · implemented · majordomus_release_next · GET /api/v1/release/nextrelease.versionVerze, kterou deklaruje manifest cratu — jediné místo, kde se píše — verze, kterou shellový nástroj tiskne ze své projekce `share/version.txt`, a zda je tato projekce aktuální — otázka, kterou `generate --check` odmítá a na které stojí `scripts/release-version --check`. Pak další verze, což je odpověď veřejného kontraktu: verze, kterou `release analyze` vyžaduje oproti poslednímu release — deklarovaná verze, když už kontrakt splňuje, jinak nejmenší, kterou dovoluje, a nejmenší release nad posledním, když kontrakt žádný nevyžaduje — s `decided_by` jmenujícím, kdo odpověděl. Je to tentýž výběr release, na který `release bump` také zvedá, když není pojmenován cíl, takže se report a zapisovatel nemohou rozejít. Když kontrakt nelze změřit — žádná publikovaná základní hodnota, verze, která nejsou tři čísla, nebo jakákoli jiná chyba, kvůli které je plán nezdravý, plán, ze kterého `release bump` odmítá psát — základní hodnota se odmítne, neuhaduje se: `next` chybí, `decided_by` je `undecided` a `contract_unreadable` nese každou chybu, jednu na řádek. Zvýšení, které implikují konvenční commity od posledního release, verze, kterou by vytvořilo, a samotné commity se nesou vedle toho jako důkaz a nikdy neodpovídají `next` místo kontraktu.query · implemented · majordomus_release_version · GET /api/v1/release/version