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.

Urychlené přistání je slovo vlastníka, posuzované na sloučeném stromu, a nikdy nedosáhne tagu

Urychlené přistání je slovo vlastníka, posuzované na sloučeném stromu, a nikdy nedosáhne tagu

majordomus://adr/adr-0155navrženo integracegovernancecirelease

odkazuje na

odkazuje na něj

155. Urychlené přistání je slovo vlastníka, posuzované na mergnutém stromu, a nikdy nedosáhne tagu

Kontext

ADR 0101 udělalo z integrace jeden typovaný subsystém a mezi zamítnutými alternativami uvedlo „merge s --admin“: odmítnutí ochrany větve je odpověď, ne překážka. Pravidlo project.integration-follows-the-current-master nese tu větu.

Dne 2026-10-12 trvala povinná kontrola na hostovaných runnerech zhruba hodinu a pool posuzoval vždy jeden pull request. Pull request se záznamem v0.21.0, který měnil jeden soubor, čekal dvě a půl hodiny; web mezitím uváděl v0.20.0. Vlastník napsal „almost 24h with no release on gh pages + binaries, this is tragic“, zvolil jednorázový admin merge toho pull requestu a poté vydal trvalý příkaz. Jeho slova tak, jak je napsal relacím:

  • 2026-10-12: „deploy using --admin, bump, deploy, verify, rinse and repeat“ a „proceed use --admin“.
  • 2026-10-12, na otázku, jak to souhlasí s „nikdy neobcházet selhávající požadované kontroly“: „--admin po lokálních kontrolách“, přičemž tag stále vyžaduje zelený ci.
  • 2026-10-13: „use --admin mode, merge and deploy asap, review and cancel staled jobs, be agressively efficient in delivery, you have my max clearance and this should be .ai rule / adr / knowledge base / article / post, enforced and used asap“.

Mezi oběma daty přistálo tímto způsobem asi dvacet přistání, od několika relací. To, co se v nich pokazilo, jsou důkazy, z nichž je toto rozhodnutí napsáno:

co se stalokolik to stálo
větve zelené na vlastním headu přistály na masteru, který se mezitím posunulsedm červených na master za jeden večer
dvě relace zmergovaly během několika minut po sobělokální kontroly každého posuzovaly strom, který už neexistoval
přistání proběhlo s nedokončenou úlohou structureshell-lint a finding-reproduce červené na masteru
běh sloučené větve pokračoval dálběh trunku sloučeného commitu se zařadil za něj
dvě relace nesly stejnou opravu červené, dvakrátdruhý studený build srazil disk na 1 GiB volného místa
mezi tagem a jeho záznamovým pull requestem přistály další změnyzáznam potřeboval merge masteru a odvození; web jmenoval předchozí release 2,5 hodiny
byl sloučen odkaz uvnitř dokumentace na soukromou položkupublikace selhala a produkce zůstala na starém commitu celé hodiny

V release se nic nepokazilo: každý tag v daném období byl vytvořen na commitu, jehož ci skončil úspěchem, protože release workflow se ptá scripts/ci/release-verdict a odmítá.

Rozhodnutí

Ochranu větve smí využít vlastník a jen vlastník. Oprávněním jsou vlastníkova vlastní slova, citovaná s datem v rozhodnutí tohoto repozitáře — tohoto, dokud je nenahradí pozdější. Relace si ho nedomýšlí, nenese ho do jiného repozitáře a nejedná podle cizího popisu relace.

Urychlené přistání je činem jmenovaného přistávajícího, nikdy exekutoru. majordomus prs nadále slučuje jen to, co ochrana větve dovolí, a žádný integrační kód nepředává --admin. Zamítnutí z ADR 0101 pro tento kód platí dál.

Lander posuzuje sloučený strom a říká, co posoudil. Drží výlučný nárok na přistání, mergne aktuální master do větve, commitne merge, odvodí a spustí celou strukturální úlohu, knihovní testy, build rustdocu, když se crate změnil, a případy, kterých se změna dotýká. Jmenuje commit, na němž každé běželo, a jmenuje, co neběželo. Merge je připnut: gh pr merge --admin --merge --match-head-commit <head>.

To, co čte lander, následuje to, čeho se změna dotýká (doplněno 2026-10-14, I2664). Záznam, který čte test crate — dovednost, pravidlo, tvrzení, základní linie kvality, záznam plánu — je změnou crate pro testy, které otevírají samotný repozitář (tests/skills.rs, tests/quality.rs a jejich sourozenci) a pro kontrolu intent-check, ačkoli se žádný Rust nepohnul, a ty běží jen v rust drahách. 2026-10-13 přistála aktivní dovednost nejmenovaná ani tests/skills.rs, ani případem 391 se zelenou úlohou structure a o hodinu později zčervenala rust dráha trunku; úloha structure nyní tuto absenci sama odmítá (kontrola skill-naming) a klauzule 4 pravidla uvádí, co každý druh změny dluží.

Každé přistání je nasazení a ověřuje se jako nasazení, jak už project.land-and-publish vyžaduje od každého merge.

Běh, který nikdo nepřečte, se zruší. Zastaralý znamená: pull request je sloučen nebo uzavřen, hlava už není hlavou větve, nebo jiný běh téhož workflow posuzuje stejný commit. Jediný běh commitu na trunku, probíhající nasazení, release běh a běh jiné relace na aktuální hlavě nejsou zastaralé a neruší se. Běh větve, který selhal v jobu, nemůže být zelený a validační workflow ho ruší z posledního kroku selhavšího jobu; běh trunku, plánovaný a dispatch se nechají doběhnout (I2664, případ 3019).

Červený kmen má jednoho nositele, jmenovaného integrátorem.

Mezi tagem a jeho záznamem nepřistane nic jiného. Pull request se záznamem nese soubory odvozené proti masteru té minuty a mergne se první.

Release se nikdy neurychluje. Tag jde na commit, jehož kontrola ci skončila úspěchem. Žádná kontrola, hook ani check se nevypíná, nepřeskakuje ani neupravuje, aby se k němu dospělo.

Pravidlo je project.an-expedited-landing-is-the-owners-word. Jeho mechanická polovina je případ 2999 s případy 362, 720 a 97. Jeho druhá polovina je záznam: claim na přistání v meshi, kontroly, které pull request jmenuje, nástěnka.

Zamítnuté alternativy

Ponechat „nikdy --admin“ a zrychlit povinnou kontrolu natolik, aby stačila. To je správný cílový stav a práce na něm probíhá: záznam release plánuje lehkou validaci, článek zásobníku se posuzuje proti masteru, derive přeskakuje to, co se nezměnilo. Dnes neexistuje a vlastník se rozhodl na něj nečekat.

Nechat executor předat --admin, když to říká pole politiky. Pak by hodnota konfigurace utrácela ochranu větve strojovou rychlostí pro každý pull request, který fronta označí za připravený. Výjimka je rozhodnutí člověka o konkrétním dni; zůstává slovem člověka a úkonem landeru.

Odebrat požadovanou kontrolu z ochrany větve. Pak nic nerozlišuje urychlené přistání od běžného a verdikt release nemá kontrolu, kterou by četl.

Urychlit i tag. v0.3.1, v0.5.0, v0.6.0 a v0.7.0 byly publikovány z červených commitů, než release-verdict existovalo. Merge se opraví dalším mergem; publikované spustitelné soubory se instalují.

Důsledky

  • Znění project.integration-follows-the-current-master@3 říká „nikdy nemergeovat s --admin“. Platí to pro executor a je to příliš široké pro lander podle tohoto rozhodnutí. Verze 4 tohoto pravidla, která jmenuje tuto výjimku, je dlužná; než přistane, je výjimka zapsána v tomto rozhodnutí a jeho pravidle a obě jmenují starší pravidlo.
  • Revize a rušení zastaralých běhů je dnes úsudek činěný ručně. Schopnost, která vypíše běhy, jež toto rozhodnutí nazývá zastaralými, a na požádání je zruší, je dalším krokem a činí z článku 7 pravidla mechanismus.
  • Cena povinné kontroly je nyní viditelná jako číslo, na něž byl příkaz vlastníka reakcí. Latence od merge k nasazení patří mezi odvozená měření.
  • Toto rozhodnutí je proposed. Vlastník nařídil praxi i její sepsání; přijetí textu je aktem vlastníka. Bude-li zamítnuto, pravidlo je s ním staženo a project.integration-follows-the-current-master opět stojí samo.

Odkud to pochází

kanonický soubor
.ai/repo/adrs/0155-an-expedited-landing-is-the-owners-word.md
identity
adr-0155
dostupné také jako
Zdroj MCP majordomus://adr/adr-0155 · majordomus entity show adr/adr-0155 · GET /api/v1/entity?uri=majordomus://adr/adr-0155
v Cockpitu
/cockpit/objects/adr/adr-0155

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

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