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.

Odevzdané projekce, dokument OpenAPI, reference schopností a povolené seznamy se znovu generují z registru a schémat a generate --check zastaralou odmítne

docs/generated/openapi.json, docs/generated/capabilities.md a share/allow/*.txt jsou cache registru a schémat, commitnuté, aby šlo rozhraní posoudit v diffu. majordomus generate je zapisuje; majordomus generate --check je odvodí znovu, porovná bajt po bajtu, nic nezapíše a skončí kódem 10 se jmény všech souborů, které se liší nebo chybí. CI spouští tuto kontrolu při každém pushi, takže změna deskriptoru nebo schématu bez znovu vygenerovaných souborů se nemerguje.

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

Při regeneraci bajtově shodné, bez časových značek, bez absolutních cest; --check nic nezapisuje a skončí s kódem 10, přičemž jmenuje každý soubor, který se liší nebo chybí. Spouští to CI.

Co to znamená

docs/generated/openapi.json, docs/generated/capabilities.md a share/allow/*.txt jsou cache registru a schémat, commitnuté, aby šlo rozhraní posoudit v diffu. majordomus generate je zapíše; majordomus generate --check je odvodí znovu, porovná bajt po bajtu, nic nezapíše a skončí s kódem 10 s výčtem každého souboru, který se liší nebo chybí. CI spouští kontrolu při každém pushi, takže změna deskriptoru či schématu bez přegenerovaných souborů se nesloučí.

Princip

generate.rs je jediná pipeline: dokument OpenAPI z http/openapi.rs, reference z vestavěných položek registru a jeden seznam povolených na schéma nesoucí x-majordomus-allow, každé setříděné vykreslení bez časových razítek. --check čte, co je na disku, a porovnává.

Jak to vidět

apps/majordomus-cli/target/debug/majordomus generate --check     # generate --check: in sync
printf '\n' >> docs/generated/openapi.json
apps/majordomus-cli/target/debug/majordomus generate --check     # exit 10: docs/generated/openapi.json (differs)
git checkout docs/generated/openapi.json

Co nepokrývá

Kontrola porovnává commitnuté soubory s registrem spustitelného souboru, který ji provádí: zastaralý spustitelný soubor kontroluje proti zastaralému registru, proto CI před kontrolou builduje. Reference vypisuje vestavěné schopnosti celé a deklarativní zdroje popisuje pravidlem, ne výčtem, takže pravidlo přidané do vrstvy nezmění žádný commitnutý soubor.

Proč existuje

Vlastní doktrína repozitáře, project.derived-files-regenerated, aplikovaná na rozhraní spustitelného souboru v Rustu: generovaný soubor se mění změnou svého zdroje a opětovným spuštěním generátoru a obojí se commituje společně. apps/majordomus-cli/tests/generate_check.rs dokazuje, že chybějící a pozměněné soubory se detekují bez zápisu; test/cases/76_capabilities_projections.sh generuje do jednorázového repozitáře, kontroluje, pozmění a vidí odmítnutí.

Detail vykreslen z docs/claims/generated-projections-checked.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Odevzdané projekce, dokument OpenAPI, reference schopností a povolené seznamy se znovu generují z registru a schémat a generate --check zastaralou odmítne

    Vytvořeno na Declare once.

  2. 2 · kanonické tvrzení

    generated-projections-checkeddeklarovaný stav: zaručeno v docs/CLAIMS.yaml

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

  3. 3 · implementace

    apps/majordomus-cli/src/generate.rs

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

    Test: test/cases/76_capabilities_projections.sh

    Provedeno v Řekněte jednou, k čemu je vaše práce, a ať to říká každý povrch.

  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 76_capabilities_projections

Kde se toto tvrzení používá

Související tvrzení stejná implementace

Okamžiky, na které to odpovídá

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