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.

Build webu složí každý publikovaný statický povrch do svého výstupu na jeho přípojném bodě, načtený z commitnuté topologie bez ručně pojmenovaného povrchu, a odmítne build s uvedením producenta, pokud artefakt publikovaného povrchu chybí

Publikovaný web je víc než to, co vykreslí Zola. Každý statický povrch, který topologie publikuje,

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

Seznam je docs/generated/web.json, čtený přes mj_web_composed v lib/common.sh, na který se ptá i každá kontrola, která musí odlišit stránky webu od složeného povrchu. Přípojný bod, který web sám už vyplňuje, se odmítne jako druhý vlastník jedné cesty, místo aby se přepsal. Skládání běží po Zole a po přístupnostním průchodu webu, takže normalizace webu se stránek jiného producenta nikdy nedotkne.

Co to znamená

Publikovaný web je víc než to, co vykreslí Zola. Každý statický povrch, který topologie publikuje, jiný než web sám, se zkopíruje do buildu na vlastní mount — dnes je to rustdoc crate na /rustdoc — a nic v buildu nejmenuje, které povrchy to jsou. Povrch přidaný do topologie zítra je složen zítra. Povrch, který topologie publikuje a jehož producent neběžel, build odmítne, jmenuje producenta a nepublikuje nic, protože web, který tiše ztratil povrch, je zastaralé nasazení, které nikdo nevidí.

Princip

scripts/site-build se ptá mj_web_composed v lib/common.sh na složené povrchy: každý povrch docs/generated/web.json druhu statický adresář, který publikovaný web nese, jiný než aplikace. Ptá se dřív, než se vynaloží jakákoli generace nebo vykreslování, a končí s 12 se jmenováním povrchu, jeho mountu, artefaktu a producenta, když artefakt chybí. Poté, co Zola zapsala svůj výstup a proběhl přístupnostní průchod webu, zkopíruje každý artefakt na jeho mount. Mount, který web sám už zaplnil, je odmítnut s exit 10, a ne přepsán, protože jedna cesta má jednoho vlastníka a to, který z nich čtenář dostal, by jinak záviselo na pořadí dvou řádků.

Tentýž výběr říká každé kontrole, které stránky jsou vlastní stránky webu a které patří složenému povrchu, takže smlouva stránek webu posuzuje stránky webu a majordomus quality rustdoc posuzuje stránky reference. Sestavení také zapisuje každý složený povrch s commitem, který deklaroval jeho producent, do /build.json.

Jak to vidět

jq -r '.surfaces[] | select(.kind == "static-directory")
       | [.id, .mount, .availability] | @tsv' docs/generated/web.json
scripts/site-build               # refuses, naming the producer, until the reference exists
scripts/rust-check --doc         # the producer
scripts/site-build               # "== compose rustdoc at /rustdoc", then the route count
jq .surfaces site/data/build.json
bash test/run.sh 486_rustdoc_composition

Co nepokrývá

Zda je složený strom úplný, aktuální a bez rozbitých odkazů, rozhoduje vlastní kontrola povrchu a scripts/site-check nad složeným výstupem, ne sestavení. Publikování složeného stromu je rustdoc-published. Servírované sestavení dokumentace na /docs se skládá stejně a nic zde nenutí běžící server číst site/public.

Proč existuje

Alternativou je krok kopírování na povrch, což je registrace, kterou ADR 0013 odmítlo: správná v den zápisu a špatná ve chvíli, kdy se povrch přidá nebo přejmenuje bez ní. Čtení commitnuté topologie znamená, že publikace nese přesně to, co topologie říká, že publikuje, a odmítnutí znamená, že jediný způsob, jak publikovat bez povrchu, je odebrat jej z topologie, což je viditelná změna. test/cases/486_rustdoc_composition.sh se sestaví bez artefaktu i s ním.

Detail vykreslený z docs/claims/rustdoc-composed-from-the-topology.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Build webu složí každý publikovaný statický povrch do svého výstupu na jeho přípojném bodě, načtený z commitnuté topologie bez ručně pojmenovaného povrchu, a odmítne build s uvedením producenta, pokud artefakt publikovaného povrchu chybí

    Žádná funkce ani odpovědnost v README ji nepojmenovává; tato stránka je místo, kde je uvedena.

  2. 2 · kanonické tvrzení

    rustdoc-composed-from-the-topologydeklarovaný stav: zaručeno v docs/CLAIMS.yaml

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

  3. 3 · implementace

    scripts/site-build

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

    Test: test/cases/486_rustdoc_composition.sh

  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 486_rustdoc_composition

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