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.

Každá platforma, název artefaktu a instalační URL se odvozuje z jednoho modelu a projekce, která s ním nesouhlasí, se odmítne

share/distribution.yaml deklaruje binárku, repozitář, ze kterého releasy pocházejí,

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

share/distribution.yaml je model. Platformní tabulka instalátoru, sestavovací matice release, tabulka v dokumentaci, datová sada webu a veřejná metadata release se z něj generují a `majordomus generate --check` skončí s kódem 10 a pojmenuje každé, které zaostalo.

Co to znamená

share/distribution.yaml deklaruje binárku, repozitář, ze kterého release pocházejí, kanonickou URL a výchozí hodnoty instalátoru, funkci pojmenování archivů a každý cíl s jeho operačním systémem, architekturou, knihovnou C, Rust target tripletem, stavem a runnerem, na kterém jej release sestavuje. Cíl, který nedeklaruje, neexistuje — ne pro sestavení release, ne pro instalátor, ne pro dokumentaci, ne pro web.

Vše ostatní je projekce: matice sestavení v docs/generated/distribution-matrix.json, tabulka platforem uvnitř publikovaného install.sh, tabulka platforem v docs/INSTALL.md, datová sada, kterou web vykresluje, a veřejná metadata každého zaznamenaného release. Žádná z nich neuvádí vlastní platformu a žádná se nepíše ručně.

Princip

majordomus generate --target distribution zapíše je všechny z modelu a záznamů release pod .ai/repo/releases/. --check porovná každý s tím, co je commitnuto, a skončí kódem 10 se jménem každého, který se liší; dosáhne se toho přes just derive-check, přes kontrolu CI, kterou spouští job site, a přes release pipeline dřív, než se sestaví jediný artefakt.

Funkce pro pojmenování existuje jednou, jako Target::artifact_name, a každý volající se k ní dostane přes majordomus distribution artifact — včetně balicího skriptu, který se na jméno ptá, a nesestavuje si vlastní.

Jak to vidět

majordomus distribution                     # the install command, the defaults, the tally
majordomus distribution targets             # every declared platform and its status
majordomus distribution validate            # every invariant, exit 10 with each violation
majordomus generate distribution --check    # every projection, exit 10 if any is stale

Co nepokrývá

Že deklarovaná platforma funguje, se dokazuje jejím sestavením, ne deklarací: release sestaví každý podporovaný cíl a každý archiv ověří na runneru, na kterém vznikl. Model je to, co dělá z množiny platforem jeden fakt místo pěti.

Proč existuje

Podporovaná platforma musí být pravdivá v matici buildu, v tabulce instalátoru, v dokumentaci, na webu i v tom, co nástroj říká o sobě. Zapsaná pětkrát je špatně do jednoho releasu a objeví to ten, kdo nástroj nemůže nainstalovat. Přidání platformy je zde jedna úprava a regenerace; behaviorální případ to dokazuje přidáním jedné do kopie modelu a vyžadováním, aby se objevila všude.

Podrobnosti vykresleny z docs/claims/distribution-canonical-model.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Každá platforma, název artefaktu a instalační URL se odvozuje z jednoho modelu a projekce, která s ním nesouhlasí, se odmítne

    Vytvořeno na Instalace, Projekce.

  2. 2 · kanonické tvrzení

    distribution-canonical-modeldeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/DISTRIBUTION.md

  3. 3 · implementace

    apps/majordomus-cli/src/distribution/mod.rs

  4. 4 · test a scénáře

    Test: test/cases/84_distribution_model.sh

    Provedeno v Install the tool in one command, on a machine with no toolchain.

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 84_distribution_model

Kde se toto tvrzení používá

pokryté odpovědnosti

Související tvrzení stejná implementace

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