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.

Úloha se zahajuje s deklarovaným rozsahem souborů a profilem a na jeden checkout může být aktivní jen jedna úloha

majordomus start vyžaduje --scope: cesty repozitáře, kterých se tato úloha smí dotknout. Zaznamená rozsah, profil, vlastníka a git stav do state/current.yaml. Dokud je výsledek onoho záznamu active, druhý start ve stejném checkoutu se odmítne s exit kódem 15. Úloha končí příkazem finish nebo handover --close; další start starý záznam archivuje, místo aby jej zahodil.

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

Cesta rozsahu, která uniká z kořene repozitáře, se odmítne. Spuštění druhé úlohy, zatímco jedna je aktivní, se odmítne.

Co to znamená

majordomus start vyžaduje --scope: cesty repozitáře, kterých se tato úloha smí dotknout. Zaznamenává rozsah, profil, vlastníka a stav gitu v state/current.yaml. Dokud je výsledek toho záznamu active, druhý start ve stejném checkoutu se odmítne s exit kódem 15. Úloha končí příkazem finish nebo handover --close; další start starý záznam archivuje, místo aby ho zahodil.

Princip

lib/start.sh rozdělí --scope podle čárek (opakované příznaky se kumulují), normalizuje každou cestu — bez úvodního ./, bez koncového /, bez .., bez absolutních cest — a odmítne vše, co uniká z repozitáře. Záznam zapíše atomicky a připojí task.started do knihy. Rozsah pak čtou check a finish, které před porovnáním obě strany znovu normalizují, takže ručně upravená položka s koncovým lomítkem stále obsahuje své soubory.

Jak to vidět

majordomus start "fix auth" --scope lib/auth/,./test/auth
# started t-…  profile=implementation  scope=lib/auth,test/auth
majordomus start "second" --scope lib/other
# majordomus: task t-… is active ('fix auth'); run majordomus handover or majordomus finish first

Co nepokrývá

Jedna úloha na checkout se vynucuje; jeden checkout na souběžného zapisovatele je rada. Dvě relace sdílející jeden checkout si budou blokovat pushe, dokud se nedeklarují rozsahy — což se stalo při budování tohoto webu a proč návrh žádá worktree na zapisovatele.

Proč existuje

Ve zdrojovém prostředí byla deklarace rozsahu volitelným druhým krokem po vytvoření worktree; deset z osmnácti aktivních worktrees žádnou nikdy nedeklarovalo, takže blokující kontrola byla ve většině případů nedosažitelná. Co lze přeskočit, přeskočí se; zde je deklarace součástí start.

Detail vykreslený z docs/claims/scoped-task.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Úloha se zahajuje s deklarovaným rozsahem souborů a profilem a na jeden checkout může být aktivní jen jedna úloha

    Vytvořeno na Koordinace, Rozsah.

  2. 2 · kanonické tvrzení

    scoped-taskdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

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

  3. 3 · implementace

    lib/start.sh · majordomus start

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

    Test: test/cases/04_start_check.sh

    Provedeno v Zachyťte agenta, který říká, že je hotov, a není, Provozujte několik pracovníků v jednom repozitáři, aniž by se srazili, Dodávejte úkoly ve vlnách, které spočítá graf, a berte další.

  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 04_start_check

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.