Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Dodávka

zda funkce produktu existuje, vypočtené, ne zaznamenané: šest dimenzí invariantu doručení, tři verdikty a proč unknown nikdy není pass, doručení a vývojová fáze jako dva typy, jak se každá dimenze odvozuje z gitu a veřejné identity, znovupoužití `scripts/pages` a co fáze 1 nechává neznámé

Vykresleno z docs/DELIVERY.md — stejný Markdown, který ukazuje GitHub.

Zda funkce produktu existuje, se počítá, nikdy nezaznamenává. Funkce existuje, jen když projde každá ze šesti dimenzí:

EXISTS = ON_MASTER ∧ DEPLOYED ∧ PUBLICLY_VERIFIED ∧ REQUIRED_TESTS_CURRENT ∧ TEST_EVIDENCE_PUBLISHED ∧ UI_LINKED

Cokoli menšího je nedoručeno. Rozhodnutím je ADR 71; kódem je apps/majordomus-cli/src/delivery/.

Jak to číst

majordomus delivery report               # every feature, one row per feature
majordomus delivery report --check       # exit 10 unless every feature exists
majordomus delivery show evidence        # one feature: each dimension, its reason, its remedy
majordomus delivery report --format json # the document GET /api/v1/delivery returns

Stejné odpovědi jsou GET /api/v1/delivery, GET /api/v1/delivery/feature?id=<id> a nástroje MCP majordomus_delivery a majordomus_delivery_feature. Všechny promítá jedna deklarace, capability/builtin/delivery.rs.

Verdikty

Každá dimenze je pass, fail nebo unknown, s větou, která rozhodla, a nápravou. Neznámé nikdy není pass. Web, ke kterému se nedalo dostat, není nasazen; klon bez origin/master není na masteru.

Stavy

Funkce je delivered nebo not_delivered. Jen druhá nese vývojovou fázi a fáze je jiný typ než dodávka:

fázeznamená
unknowngit nedokázal říct, kde je jeho implementace
not_implementednejmenuje žádnou implementaci, nebo ji nic necommitlo
implemented_on_branchjeho poslední implementační revize není na trunku
on_masterjeho implementace je na trunku
testedna trunku, každý požadovaný test je aktuální
deployedtestováno a obsaženo v tom, co veřejný web poskytuje

Stupeň je žebřík: příčky se dosáhne, jen když projdou všechny příčky pod ní, takže funkce, jejíž testy nejsou známy, je on_master, i když ji web už poskytuje. blocking vypíše dimenze, které neprošly.

Dimenze

on_master

Cesty, kterými je funkce implementována, se odvozují z toho, co její soubor pojmenovává, nikdy se nepíší ručně: zdrojový soubor každého modulu schopnosti, lib/<command>.sh každého shellového příkazu a implementation každého tvrzení v docs/CLAIMS.yaml. Poslední commit, který se jich dotýká na HEAD, musí být předkem origin/<trunk>, nebo musí být cesty na obou bajtově shodné. Změna jen na aktuální větvi selže s implemented_on_branch; funkce, která nepojmenovává nic implementovatelného, selže s nápravou, aby to pojmenovala; klon bez trunku je neznámý.

deployed

Veřejný web poskytuje dokument identity, který .ai/repo/ci/pages.yaml jmenuje v deploy.identity (build.json), na base_url z site/config.toml. Nasazeno znamená, že commit v tom dokumentu obsahuje revizi trunku dané funkce. Čte se jednou na report. Nedostupný web nebo poskytovaný commit, který tento klon nemá, je neznámý.

publicly_verified

Nasazeno a zveřejnění ověřeno zvenčí skriptem, který ho vlastní:

  1. identita říká, že její strom byl čistý (dirty: false);
  2. scripts/pages verify --url URL --commit SHA --timeout 0 potvrdí, že ho web poskytuje;
  3. scripts/pages built --commit <origin/gh-pages> hlásí vlastní sestavení GitHubu jako sestavené.

Exit 10 kteréhokoli skriptu je selhání, exit 12 je neznámo.

required_tests_current, test_evidence_published, ui_linked

Fáze 1 je počítá jako unknown s důvodem evidence model lands with PR #577. Existují v typu, aby je fáze 2 naplnila — a aby, dokud to neudělá, žádná funkce neexistovala.

Hermetické běhy

MAJORDOMUS_DELIVERY_SITE_URL nahrazuje adresu webu. Adresář file:// obsahující build.json je web, který čtou jak modul delivery, tak scripts/pages verify přes tentýž curl: test/cases/373_delivery_is_computed.sh a test/cases/374_delivery_unknown_is_not_delivered.sh se sítě nikdy nedotknou.

Zatím ne

Veřejný web dodání nevykresluje. PUBLIC_FEATURE_FIELDS v src/product.rs je allow-list toho, co veřejná stránka nese, a řez stavu, který do něj dodání přidá, je pozdější změna.

Prohledává názvy a popisy všech stránek, které tento web publikuje.