원클릭으로
upgrade-changelog
// Generates CHANGELOG.md entries for upgrade versions found in upgrades/software/ by parsing init.go and upgrade.go
// Generates CHANGELOG.md entries for upgrade versions found in upgrades/software/ by parsing init.go and upgrade.go
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.
Set up development environment by loading direnv. Must be run before any make targets (tests, builds, linting).
Builds all cosmwasm contracts
Registers node major version vanity URL in the sibling vanity repo
| name | upgrade-changelog |
| description | Generates CHANGELOG.md entries for upgrade versions found in upgrades/software/ by parsing init.go and upgrade.go |
Generate changelog entries in upgrades/CHANGELOG.md for any upgrade version under upgrades/software/ that doesn't already have an entry.
Find semver directories — list all directories under upgrades/software/ whose names match v<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.Z headings. If a version already has a heading, skip it entirely.
For each new version (no existing heading), gather data from two files:
upgrades/software/<version>/init.goFind all utypes.RegisterMigration(...) calls. Each call has the form:
utypes.RegisterMigration(moduleName, version, handlerFn)
moduleName is a Go constant (e.g., dv1.ModuleName). Resolve it:
dv1 "pkg.akt.dev/go/node/deployment/v1")ModuleName constant definition to get the actual string valueversion is a uint64 — this is the from version. The to version is version + 1.moduleName version -> version+1upgrades/software/<version>/upgrade.goFind the StoreLoader() method. It returns a *storetypes.StoreUpgrades struct with optional fields:
Added: []string{...} — new storesRenamed: []storetypes.StoreRename{...} — renamed storesDeleted: []string{...} — removed storesIf StoreLoader() returns nil, there are no store changes.
For each store key constant (e.g., epochstypes.StoreKey, ttypes.ModuleName):
Insert the new entry in upgrades/CHANGELOG.md immediately after the line:
Add new upgrades after this line based on the template above
followed 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):
Stores section if there are no added, renamed, or deleted storesadded/renamed/deleted subsections individually if emptyMigrations section if there are no migrations###### Description heading (leave it for the user to fill in)Report results — list each version processed and what was added. For skipped versions (already in CHANGELOG), mention they were skipped.
StoreKey or ModuleName — both are used as store identifiers. Resolve whichever constant appears in the code.go doc if needed. The packages typically follow the pattern pkg.akt.dev/go/node/<module>/<version>.`epochstypes.StoreKey`) and warn the user.