upgrade-changelog
Generates CHANGELOG.md entries for upgrade versions found in upgrades/software/ by parsing init.go and upgrade.go
- License 许可
- MIT
- 最近更新
- 2026-11-14
- Stars
- ★ 1
- Forks
- 1
01 前言 Front Matter
- name
- upgrade-changelog
- description
- Generates CHANGELOG.md entries for upgrade versions found in upgrades/software/ by parsing init.go and upgrade.go
03 SKILL.md 正文
Instructions
Generate changelog entries in upgrades/CHANGELOG.md for any upgrade version under upgrades/software/ that doesn't already have an entry.
Steps
-
Find semver directories — list all directories under
upgrades/software/whose names matchv<major>.<minor>.<patch>(e.g.,v2.0.0,v1.0.0). -
Read
upgrades/CHANGELOG.md— identify which versions already have entries by scanning for##### vX.Y.Zheadings. If a version already has a heading, skip it entirely. -
For each new version (no existing heading), gather data from two files:
3a. Parse
upgrades/software/<version>/init.goFind all
utypes.RegisterMigration(...)calls. Each call has the form:utypes.RegisterMigration(moduleName, version, handlerFn)moduleNameis a Go constant (e.g.,dv1.ModuleName). Resolve it:- Find the import alias (e.g.,
dv1 "pkg.akt.dev/go/node/deployment/v1") - Search the imported package for
ModuleNameconstant definition to get the actual string value
- Find the import alias (e.g.,
versionis auint64— this is the from version. The to version isversion + 1.- Record each migration as:
moduleName version -> version+1
3b. Parse
upgrades/software/<version>/upgrade.goFind the
StoreLoader()method. It returns a*storetypes.StoreUpgradesstruct with optional fields:Added: []string{...}— new storesRenamed: []storetypes.StoreRename{...}— renamed storesDeleted: []string{...}— removed stores
If
StoreLoader()returnsnil, there are no store changes.For each store key constant (e.g.,
epochstypes.StoreKey,ttypes.ModuleName):- Find the import alias in the file
- Search the imported package for the constant definition to get the actual string value
-
Insert the new entry in
upgrades/CHANGELOG.mdimmediately after the line:Add new upgrades after this line based on the template abovefollowed by
-----.Use this format (newest entries go first, right after the delimiter):
##### vX.Y.Z ###### Description - Stores - added - `storeName`: brief description if available - renamed - `oldName` -> `newName` - deleted - `storeName`: brief description if available - Migrations - moduleName `from -> to`Omission rules (match existing CHANGELOG style):
- Omit the entire
Storessection if there are no added, renamed, or deleted stores - Omit
added/renamed/deletedsubsections individually if empty - Omit the entire
Migrationssection if there are no migrations - Always include the
###### Descriptionheading (leave it for the user to fill in)
- Omit the entire
-
Report results — list each version processed and what was added. For skipped versions (already in CHANGELOG), mention they were skipped.
Important notes
- Store key constants may be named
StoreKeyorModuleName— both are used as store identifiers. Resolve whichever constant appears in the code. - When resolving Go constants from external packages, search under the Go module cache or use
go docif needed. The packages typically follow the patternpkg.akt.dev/go/node/<module>/<version>. - If a constant cannot be resolved, use the raw Go expression as a placeholder (e.g.,
`epochstypes.StoreKey`) and warn the user. - Multiple versions may need entries — process them all in one run, inserting newest first after the delimiter.
04 同仓库更多 Skills
vanity
Registers node major version vanity URL in the sibling vanity repo
build-contracts
Builds all cosmwasm contracts
setup-env
Set up development environment by loading direnv. Must be run before any make targets (tests, builds, linting).
guidelines
Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.