majordomus release
Co tento projekt dodal a co by dodal dál: changelog odvozený z vlastních záznamů vrstvy, verze psaná na jednom místě a promítnutá pro shellový nástroj a jeden příkaz, který ji zvyšuje
majordomus release
Použití
majordomus release [OPTIONS] [COMMAND]Příkazy
- majordomus release changelog Changelog složený ze záznamů o release vrstvy, rozhodnutí datovaných v okně každého release a konvenčních commitů v jeho rozsahu
- majordomus release version Verze, kterou deklaruje manifest crate, zda ji uvádí projekce, kterou čte shellový nástroj, jakákoli verze zapsaná ručně tam, kde žijí soubory nástroje, a bump, který naznačují commity od posledního release
- majordomus release analyze Co udělal veřejný kontrakt od posledního release a nejmenší verze, kterou tento strom proto smí deklarovat
- majordomus release next Verze, kterou přidělí přistání HEAD na trunk, a proč: verze trunku, naměřený posun, spodní mez politiky a případná výjimka (ADR 0134)
- majordomus release bump Zvýší verzi na jediném místě, kde se píše, alespoň na to, co vyžaduje veřejná smlouva; zbytek odvodí scripts/derive
Argumenty
| argument | hodnota | výchozí | popis |
|---|---|---|---|
| --repo | <PATH> | — | Zde začne hledání kořene repozitáře (výchozí: aktuální adresář) (přijímá každý podpříkaz) |
| --discovery | vcs | filesystem | vcs | Jak se vyhledávají deklarativní soubory (přijímá každý podpříkaz)
|
| --strict | flag | — | Odmítne pokračovat, pokud kterýkoli soubor vrstvy nese diagnostiku typu chyba (přijímá každý podpříkaz) |
| --share | <DIR> | — | Adresář share distribuce nástroje (kinds.yaml, schemas/); výchozí: $MAJORDOMUS_SHARE, poté vlastní share/ repozitáře, poté ten vedle spustitelného souboru (přijímá každý podpříkaz) |
| --format | text | json | text | Jak vykreslit odpověď (přijímá každý podpříkaz)
|
Příklady
-
Co bylo dodáno a co ne
`release` bez čehokoli za ním vykreslí changelog. Každý jeho řádek je odvozen — sekce na každý release, který vrstva eviduje, její rozhodnutí jsou ADR datovaná v okně daného releasu, její změny konvenční commity v jeho rozsahu — takže neexistuje soubor, na jehož aktualizaci by kdokoli mohl zapomenout.
$ majordomus releaseCo tvrdí: skončí s kódem 0; vypíše Changelog.
Testuje apps/majordomus-cli/tests/cli_examples.rs, který spouští příkaz nad sestaveným programem a ověřuje, co stránka uvádí.
Odkud to pochází
Deklarováno jednou v apps/majordomus-cli/src/cli.rs: clap pro strukturu, typovaná metadata v Rustu vedle něj pro příklady. Tato stránka, majordomus release --help, docs/generated/cli.md a docs/generated/cli.json jsou projekce této jediné deklarace.
Celá příkazová řádka na jedné stránce: stránka příkazové řádky registru. Životní cyklus úlohy (init, start, finish, doctor, ...) patří nástroji shell, jinému programu: Příkazy a jeho specifikace.