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.

I3448 — A deploy of master keeps every pre-release's metadata the site already serves

Make an ordinary deploy of master keep each releases/<tag>.json that gh-pages carries and the build lacks, so that a pre-release's metadata, published by the release's own job before its record reaches master, is never removed by the next deploy.

PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné paralelně

Součást M004 — Výkon je spustitelný důkaz a horká cesta nedělá žádnou kanonickou práci dvakrát.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3448 bude přijato.

Cíl

Make an ordinary deploy of master keep each releases/<tag>.json that gh-pages carries and the build lacks, so that a pre-release's metadata, published by the release's own job before its record reaches master, is never removed by the next deploy.

Proč

Found on 2026-10-20 after v1.0.0-alpha.1 was tagged at 9a5a9b77520. release.yml's publish job pushed gh-pages 54b6c8f94f1 ('release: v1.0.0-alpha.1 pre-release metadata, published beside the latest'), and the next master deploys of the same commit (d830fa03091, dd9c60d7445) carried no releases/v1.0.0-alpha.1.json, so https://majordomus.dev/releases/v1.0.0-alpha.1.json answered the site's 404 page while the GitHub release existed. It stays missing until the release record pull request lands on master.

Aktuální stav

scripts/site-deploy keeps, on an ordinary deploy, the releases/latest.json gh-pages carries and the tag file it names when that names a newer version than the build (ADR 0131). A pre-release is never named by latest.json (I2829 refuses that), so its tag file is not kept and is deleted by the copy of site/public over the gh-pages worktree.

Cílový stav

An ordinary deploy keeps every releases/<tag>.json on gh-pages that site/public does not hold, stable or pre-release, and says which it kept; latest.json keeps its present rule. The deploy after a pre-release's metadata publication still serves that file.

Rozsah

  • scripts/site-deploy
  • docs/RELEASE.md

Mimo rozsah

  • Which release latest.json names, which stays the newest stable release
  • Publishing a pre-release's metadata from master before its record lands

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • A fixture gh-pages carrying releases/v9.9.9-alpha.1.json and a build without it: after an ordinary deploy the file is still there, byte-identical, and the deploy names it as kept
  • Negative: a releases/<tag>.json the build itself holds is replaced by the build's copy, not kept from gh-pages
  • latest.json behaves as before: kept when it names a newer stable release than the build, replaced otherwise

Validace

  • bash test/run.sh 3721_a_deploy_keeps_every_pre_release_it_serves
  • majordomus plan validate

Požadované důkazy

  • test_a_deploy_keeps_every_pre_release_it_serves

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3448.yaml. Read it back with majordomus plan show I3448.

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