I2054 — Tag nezčervená každý další pull request, dokud nepřistane jeho záznam
Od chvíle, kdy se pushne tag releasu, do chvíle, kdy je jeho záznam na masteru, pull request, který se releasů vůbec netýká, drží zelený job structure. Buď scripts/ci/release-check drží publikovaný tag bez záznamu jen tehdy, když žádný otevřený pull request tento záznam nenavrhuje, nebo se záznam navrhne dřív, než se tag pushne; volba je na implementujícím a zapíše se s tím, co stojí.
HOTOVO vlna 0 · p1 · profil implementation · běží samostatně
Součást development-runtime — The runtime has a development surface.
Cíl
Od chvíle, kdy se pushne tag releasu, do chvíle, kdy je jeho záznam na masteru, pull request, který se releasů vůbec netýká, drží zelený job structure. Buď scripts/ci/release-check drží publikovaný tag bez záznamu jen tehdy, když žádný otevřený pull request tento záznam nenavrhuje, nebo se záznam navrhne dřív, než se tag pushne; volba je na implementujícím a zapíše se s tím, co stojí.
Proč
scripts/ci/release-check selže v úloze structure každé větve, která nenese záznam publikované verze, a záznam potřebuje vlastní plný běh CI, aby přistál, takže každý tag zastaví frontu asi na dvě hodiny. Při častých releasech je to většina pracovního dne.
Aktuální stav
Změřeno 2026-10-08 s v0.17.0: pull requesty 823, 824, 820 a 821 a druhé kolo 816 každý zčervenaly kvůli jednomu nálezu — verze je publikována a vrstva pro ni nemá záznam release —, zatímco běžel pull request záznamu 822. Reprodukováno lokálně na ad3c2b93f4: release-check hlásí ten jeden nález a nic jiného. Případ 996 (v pull requestu 816) dává pull requestu záznamu jeho kontroly dispatchem, což čekání zkracuje, ale neodstraňuje.
Cílový stav
Tag a přistání jeho záznamu jsou neviditelné pro pull request, který se nedotýká žádného souboru release; publikovaná verze bez záznamu a bez pull requestu, který by jej navrhoval, je stále odmítnuta.
Rozsah
- scripts/ci/release-check
- .github/workflows
- .ai/repo/ci
- apps/majordomus-cli/src/release
- test/cases
- dokumentace
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
Kritéria přijetí
- Případ publikuje tag ve fixtuře, nechá jeho záznam navržený a nepřistálý a větev, která nemění žádný soubor release, projde release-check
- Tentýž případ ukazuje, že publikovaná verze bez záznamu, kterou nic nenavrhuje, je stále odmítnuta
- Dokument popisující release říká, v jakém pořadí se vytvářejí tag a záznam a proč
Validace
- scripts/ci/release-check
Požadované důkazy
- a_tag_does_not_freeze_the_queue
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| a_tag_does_not_freeze_the_queue | test | MJ_TEST_JOBS=2 bash test/run.sh 3021_a_tag_does_not_freeze_the_queue 103_release_projection | testy: 2 prošly, 0 selhaly; docs/DISTRIBUTION.md#releasing říká pořadí a proč (běh 2026-10-14 14:52Z na masteru 0dff496d1c plus tato změna) | 0dff496 |
Riziko
Uvolnění kontroly čtením otevřených pull requestů dělá z kontroly struktury závislost na forge; navrhování záznamu před tagem mění pořadí release, které dodržuje každá relace.
Časová osa
- zahájeno
- 2026-10-14T14:52:51Z
- ověřeno
- —
- dokončeno
- 2026-10-14T14:53:16Z
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.
Kanonický záznam: .ai/repo/project/issues/I2054.yaml. Přečtěte jej zpět pomocí majordomus plan show I2054.