upgrade templates
Az upgrade templates visszaszinkronizálja a projekt oapi-codegen template-másolatát a CLI beágyazott készletéből, hogy egy újabb kit-verzió codegen-kimenete elérje a projektet. Kit-verzióemelés után futtasd, a következő mise run generate előtt.
go tool gpsystem upgrade templates [--force]
Miért a projektben élnek a template-ek
A kit minden projektbe bemásolja az oapi-codegen template-jeit (api/oapi-codegen/templates/), így a codegen hermetikus: a kódgenerálás sosem nyúl vissza a kit saját checkoutjához vagy hálózati letöltéshez, csak a repóban ülő másolathoz. Egyetlen, chi-alapú template-készlet létezik (az oapi-codegen beépített chi-server sablonjai, plusz a kit strict-handler override-jai). Ennek ára, hogy a másolat a kit fejlődése közben elmaradhat; az upgrade templates hozza vissza szinkronba.
Mikor futtasd
Az upgrade templates-et minden kit-verzióemelés után futtasd, a frissítés szokásos részeként: ha egy új kit-kiadás megváltoztatja a strict-handler generálást (új válasz-forma, javítás egy meglévő override-ban, egy új TypeSpec konstrukció támogatása), a változás csak akkor jut el a projekt generált kódjához, ha a lokális template-másolat frissül, és utána újra lefut a mise run generate. Kit-verzióemelésen kívül nincs mit visszaszinkronizálni, így a parancsnak sincs oka futni.
Módosítás-védelem
A gpsystem.yaml rögzíti a template-készlet telepítéskori checksumját (templatesSHA). Frissítéskor:
| Lemezen lévő állapot | Viselkedés |
|---|---|
| egyezik a beágyazott készlettel | "already up to date", nincs írás |
| egyezik a rögzített checksummal (érintetlen régebbi készlet) | helyben frissül |
| bármi más (lokálisan módosított) | elutasít; --force-szal írható felül |
Mivel a lemezen lévő template-készlet cseréje ennek a parancsnak a lényege, felülírás-engedéllyel fut, és minden lecserélt template-fájlra kiír egy overwriting <path> sort, így pontosan látod, mi változott. Sikeres frissítés után a manifest checksumja és kit-verziója frissül. Utána:
mise run generate # kód újragenerálása az új template-ekkel
Amihez nem nyúl
Az upgrade templates kizárólag az api/oapi-codegen/templates/ alá ír: a TypeSpec-fájlokat, a handler-implementációkat, a register.go-t és a projekt bármely más generált vagy kézzel írt kódját nem érinti. Maga az újragenerált Go kód csak az utána futtatott mise run generate hatására jelenik meg; az upgrade templates önmagában egyetlen .go fájlt sem változtat.