I1980 — Vrstva pojmenovává verzi nástroje, pro kterou byla napsána, a doctor rozliší nesoulad verzí od vad
Zaznamenat do .ai/manifest.yaml verzi nástroje (nebo vrstvy), se kterou byla vrstva naposledy migrována. doctor pak nálezy, které novější nástroj vznese proti starší vrstvě, klasifikuje jako rozdíl verzí s pojmenováním migrace, která je odstraní, místo aby selhával jako defekty. Vrstvu zapsanou novějším nástrojem starší nástroj odmítne se zprávou, nikoli kaskádou.
PŘIPRAVENO vlna 0 · p0 · profil deep-work · bezpečné paralelně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I1980 bude přijato.
Cíl
Zaznamenat do .ai/manifest.yaml verzi nástroje (nebo vrstvy), se kterou byla vrstva naposledy migrována. doctor pak nálezy, které novější nástroj vznese proti starší vrstvě, klasifikuje jako rozdíl verzí s pojmenováním migrace, která je odstraní, místo aby selhával jako defekty. Vrstvu zapsanou novějším nástrojem starší nástroj odmítne se zprávou, nikoli kaskádou.
Proč
OSCILLA 34f967a (#64): instalace 0.12.0 pro celý stroj zčervenala doctor se 433 selháními: 497 nezapečetěných razítek plánu ve 181 úkolech a 135 kroků případů užití překlasifikovaných jako měnící stav. Jeho pre-commit hook spouští doctor, takže každý commit v tom repozitáři, včetně peerů, byl odmítnut, dokud se vrstva ručně nemigrovala. Migrovanou vrstvu pak odmítla 0.10, takže se nejdřív musel přepnout launcher. Ani doctor, ani dokumentace nedokázaly říct, že příčinou byl upgrade.
Aktuální stav
Na e08aec8651 neuvádí verzi nástroje ani .ai/manifest.yaml (schéma ai-repository/v1), ani policy.yaml. lib/migrate.sh řeší jen .majordomus/ na .ai/. docs/INSTALL.md 'Upgrading and reinstalling' říká spustit instalátor znovu.
Cílový stav
Klíč manifestu (například `tool: 0.12`) zapsaný init a migrate. doctor jej porovná s vlastní verzí: starší znamená, že nálezy, které nová verze zavedla, se čtou jako posun verzí s `majordomus migrate --layer`; novější znamená jedno jasné odmítnutí. INSTALL.md říká, že se má migrovat na větvi před přepnutím launcheru.
Rozsah
- share/schemas
- share/skeleton
- .ai/manifest.yaml
- lib/doctor.sh
- lib/migrate.sh
- lib/init.sh
- docs/INSTALL.md
- share/install
- test/cases
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
- I1982BLOKOVÁNO Razítka plánu zapsaná před existencí pečetí se znovu zapečetí příkazem, který zachová jejich původní časy
- I1983BLOKOVÁNO Upgrade vendorovaných pravidel ohlásí nebo použije klíče politiky a zdroje, na nichž tato pravidla závisejí
Kritéria přijetí
- Fixture vrstvy napsaný pro předchozí minor verzi a upgradovaný na místě dává výstup doctoru, který jmenuje verzní nesoulad a příkaz migrate a končí stavem nesouladu, který úkol definuje, ne 10 pro každý nález
- Vrstvu, jejíž manifest jmenuje novější nástroj, starší nástroj odmítne jedinou zprávou uvádějící obě verze
- init zapisuje klíč verze a migrate ho posouvá
Validace
- bin/majordomus plan validate
- MJ_TEST_JOBS=4 bash test/run.sh <the case this issue adds>
Požadované důkazy
- version_skew_case
- newer_layer_refused_case
- install_docs_upgrade_step
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.
Kanonický záznam: .ai/repo/project/issues/I1980.yaml. Načtěte jej zpět pomocí majordomus plan show I1980.