CLI referencia

upgrade templates

A projekt codegen template-jeinek újraszinkronizálása a CLI beágyazott készletéből.

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ő állapotViselkedé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
Ha szándékosan tartasz fenn lokális template-módosításokat, őrizd őket diffként a kit készletéhez képest: forszolt frissítés után visszajátszhatod, és látod, mi változott upstreamben.

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.

Copyright © 2026