Skip to content

wardend: prepare release v0.7.0#1715

Merged
Pitasi merged 1 commit intomainfrom
prepare-release-0.7.0
Sep 22, 2025
Merged

wardend: prepare release v0.7.0#1715
Pitasi merged 1 commit intomainfrom
prepare-release-0.7.0

Conversation

@Pitasi
Copy link
Contributor

@Pitasi Pitasi commented Sep 22, 2025

This PR updates the changelog and registers a new upgrade called v0.7.0 needed for upgrading our testnet.

@Pitasi Pitasi requested a review from a team as a code owner September 22, 2025 13:19
@Pitasi Pitasi force-pushed the prepare-release-0.7.0 branch from 420e1e2 to 3f03585 Compare September 22, 2025 13:20
@vercel
Copy link

vercel bot commented Sep 22, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
warden-help-center Ignored Ignored Preview Sep 22, 2025 1:20pm

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 22, 2025

📝 Walkthrough

Walkthrough

Updates CHANGELOG structure and entries. In the app, removes wiring for CosmWasm and several Warden modules, and adds an UpgradeKeeper handler for v0.7.0 that runs ModuleManager migrations.

Changes

Cohort / File(s) Summary of Changes
Changelog structure and entries
CHANGELOG.md
Adds Unreleased subsections for non-breaking features and bug fixes; updates v0.7.0 entry to bump cosmos/evm to latest commit (pre-v0.5.0); removes prior v0.5.0-rc bump; reorders headers under v0.7.0.
App wiring and upgrade handler
warden/app/app.go
Removes/guards wiring for CosmWasm and Warden modules (act, async, sched, wardentypes); adds import for context; registers UpgradeKeeper handler for "v0.7.0" that calls ModuleManager.RunMigrations using the plan/version map; maintains remaining module initialization.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant App
  participant UpgradeKeeper as UpgradeKeeper
  participant ModuleManager as ModuleManager
  participant Modules as App Modules

  Note over App,UpgradeKeeper: App init
  App->>UpgradeKeeper: SetUpgradeHandler("v0.7.0", handler)
  Note over App: CosmWasm and select Warden modules not wired

  Note over UpgradeKeeper,ModuleManager: At on-chain plan v0.7.0
  UpgradeKeeper->>App: Invoke handler(ctx, plan, fromVM)
  App->>ModuleManager: RunMigrations(ctx, configurator, fromVM)
  ModuleManager->>Modules: Migrate modules per version map
  Modules-->>ModuleManager: Migration results
  ModuleManager-->>App: Return new version map
  App-->>UpgradeKeeper: Handler completed
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45–75 minutes

Possibly related PRs

Suggested labels

docs

Suggested reviewers

  • mn13
  • jlehtimaki

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title Check ✅ Passed The title "wardend: prepare release v0.7.0" accurately and concisely reflects the primary changes in the diff — updating the changelog and registering the v0.7.0 on-chain upgrade (seen in CHANGELOG.md and warden/app/app.go) — and is clear for team history. It is specific, not noisy, and conveys the main intent of the PR.
Description Check ✅ Passed The description states the PR updates the changelog and registers a v0.7.0 upgrade for the testnet, which directly matches the changes observed in CHANGELOG.md and the new upgrade handler in warden/app/app.go, so it is related to the changeset. The description is specific enough to pass this lenient check.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch prepare-release-0.7.0

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (3)
CHANGELOG.md (2)

45-48: Unreleased sections added — consider completeness.

Empty headings are fine as scaffolding, but please add at least one entry or drop them until content is ready. Also consider adding an "Improvements" stanza to mirror the stanza list at the top.


54-54: Pin and describe the EVM bump more precisely.

Replace "latest commit" with the short SHA and add a one-line motivation.

- Bump cosmos/evm to [latest commit](https://github.com/cosmos/evm/commit/bb6162e10da6ed984856922cbecdd1eaf10e2f38) (pre-v0.5.0).
+ Bump cosmos/evm to [bb6162e](https://github.com/cosmos/evm/commit/bb6162e10da6ed984856922cbecdd1eaf10e2f38) (pre‑v0.5.0) – adds appside mempool e2e tests and related fixes.

Verified commit bb6162e10da6ed984856922cbecdd1eaf10e2f38 (2025-09-18).

warden/app/app.go (1)

880-883: Upgrade handler OK; prefer consolidating and using a named constant.

To avoid drift, define a single source of truth for the plan name and register this handler alongside others (RegisterUpgradeHandlers).

Apply this diff to the handler line only; add the const separately:

-app.UpgradeKeeper.SetUpgradeHandler("v0.7.0", func(ctx context.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
+app.UpgradeKeeper.SetUpgradeHandler(UpgradeNameV070, func(ctx context.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
 	return app.ModuleManager.RunMigrations(ctx, app.Configurator(), fromVM)
 })

And add near other consts:

const UpgradeNameV070 = "v0.7.0"
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d30538c and 3f03585.

📒 Files selected for processing (2)
  • CHANGELOG.md (1 hunks)
  • warden/app/app.go (6 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.md

⚙️ CodeRabbit configuration file

**/*.md: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"

Files:

  • CHANGELOG.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: lint
  • GitHub Check: Analyze (go)
🔇 Additional comments (1)
warden/app/app.go (1)

4-4: Import of context is correct for the upgrade handler.


### Bug Fixes

## [v0.7.0](https://github.com/warden-protocol/wardenprotocol/releases/tag/v0.7.0) - 2025-09-22
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

❓ Verification inconclusive

Release metadata — verify tag and date.

Ensure the tag v0.7.0 exists and the date (2025-09-22) matches the GitHub release.

Run:


🏁 Script executed:

#!/bin/bash
# Verify release tag and published date
gh release view v0.7.0 --json tagName,publishedAt,url | jq

Length of output: 88


🏁 Script executed:

#!/bin/bash
set -euo pipefail
REPO="warden-protocol/wardenprotocol"
TAG="v0.7.0"

if command -v gh >/dev/null 2>&1; then
  gh release view "$TAG" --repo "$REPO" --json tagName,publishedAt,url | jq .
  exit 0
fi

# Fallback to GitHub API
HTTP_STATUS=$(curl -sS -o /tmp/release.json -w "%{http_code}" "https://api.github.com/repos/$REPO/releases/tags/$TAG" || true)
if [[ "$HTTP_STATUS" != "200" ]]; then
  echo "GitHub API returned HTTP $HTTP_STATUS"
  cat /tmp/release.json
  exit 2
fi

jq '{tag_name: .tag_name, published_at: .published_at, html_url: .html_url, name: .name, draft: .draft, prerelease: .prerelease}' /tmp/release.json

Length of output: 17


Release tag v0.7.0 missing — create GitHub release or update CHANGELOG.md.

gh/curl check for warden-protocol/wardenprotocol returned "release not found" for tag v0.7.0; CHANGELOG.md (line 49) claims the release dated 2025-09-22. Either push/tag v0.7.0 and create the GitHub release with that published date, or correct/remove the CHANGELOG entry to the actual tag/date.

Location: CHANGELOG.md:49

🤖 Prompt for AI Agents
In CHANGELOG.md around line 49, the entry for "v0.7.0 - 2025-09-22" references a
GitHub release tag that doesn't exist; either create and push the v0.7.0 tag and
publish the GitHub release with that date, or edit CHANGELOG.md to remove or
correct the v0.7.0 entry to reflect an existing tag/date (update the version
header and link or delete the block) and commit the change so the changelog
matches the repository's actual releases.


## [v0.7.0](https://github.com/warden-protocol/wardenprotocol/releases/tag/v0.7.0) - 2025-09-22

### Consensus Breaking Changes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Add “Upgrade Notes” for operators (plan name, height, actions).

This is a consensus-breaking upgrade; operators need explicit steps (plan name v0.7.0, upgrade height, store removals, flags, known risks).

Apply this diff to add a minimal “Upgrade Notes” block; fill in height before merge:

 ### Consensus Breaking Changes
+#### Upgrade Notes
+- Plan name: `v0.7.0`
+- Upgrade height: <fill-before-merge>
+- Stores removed: CosmWasm (`wasm`), x/act (`act`), x/async (`async`), x/sched (`sched`), x/warden (`warden`).
+- Node operators: stop at height, replace binary, restart; no manual state changes required beyond upgrade handler.
+- Testnet only: yes (as of this release).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Consensus Breaking Changes
### Consensus Breaking Changes
#### Upgrade Notes
- Plan name: `v0.7.0`
- Upgrade height: <fill-before-merge>
- Stores removed: CosmWasm (`wasm`), x/act (`act`), x/async (`async`), x/sched (`sched`), x/warden (`warden`).
- Node operators: stop at height, replace binary, restart; no manual state changes required beyond upgrade handler.
- Testnet only: yes (as of this release).
🤖 Prompt for AI Agents
In CHANGELOG.md around line 51, there is a missing "Upgrade Notes" section for
this consensus-breaking change; add a minimal Upgrade Notes block under
"Consensus Breaking Changes" that lists the upgrade plan name (plan name:
v0.7.0), a placeholder for the upgrade height to be filled before merge, and
concise operator actions (e.g., required store removals/migrations, flags to set
or unset, and any known risks or caveats). Ensure the block is short, uses plain
bullet-like lines or sentences, and clearly instructs operators what to change
and where to fill the height value before merging.

Comment on lines +277 to 280
// wasmtypes.StoreKey,
// Warden Protocol store keys
acttypes.StoreKey, asynctypes.StoreKey, schedtypes.StoreKey, wardentypes.StoreKey,
// acttypes.StoreKey, asynctypes.StoreKey, schedtypes.StoreKey, wardentypes.StoreKey,
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Removing store keys without a store upgrade will brick upgrades.

You commented out the stores for wasm/warden modules but did not schedule a store deletion via SetStoreLoader. Existing chains with those stores will fail to load at upgrade height.

Add a store loader for v0.7.0 before LoadLatestVersion:

// After app.RegisterUpgradeHandlers(), before loadLatest block
upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
if err != nil {
	panic(fmt.Errorf("failed to read upgrade info: %w", err))
}
if upgradeInfo.Name == "v0.7.0" && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
	storeUpgrades := storetypes.StoreUpgrades{
		Deleted: []string{
			"wasm",   // CosmWasm
			"act",    // x/act
			"async",  // x/async
			"sched",  // x/sched
			"warden", // x/warden
		},
	}
	app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
}

This matches the changelog’s “Disable … and CosmWasm” note and ensures smooth migration.

🤖 Prompt for AI Agents
In warden/app/app.go around lines 277-280, you commented out store keys for
wasm/warden (and related modules) but did not add a corresponding store upgrade
loader, which will brick existing chains at upgrade time; add a SetStoreLoader
before LoadLatestVersion that reads UpgradeInfo from disk, checks for upgrade
name "v0.7.0" and non-skip height, and registers a storeUpgrades.Deleted list
containing the store names ("wasm", "act", "async", "sched", "warden") via
upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades) so the
stores are removed safely during the v0.7.0 upgrade.

Comment on lines +701 to 705
// wasmtypes.ModuleName,

// Warden modules
acttypes.ModuleName, wardentypes.ModuleName, asynctypes.ModuleName, schedtypes.ModuleName,
// acttypes.ModuleName, wardentypes.ModuleName, asynctypes.ModuleName, schedtypes.ModuleName,
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Module removals — sanity check for dangling references.

Since these modules are no longer wired, ensure there are no remaining imports, keeper usages, or genesis expectations referencing act/async/sched/warden/wasm.

Run:

Also applies to: 717-721, 761-765


🏁 Script executed:

#!/bin/bash
# Scan for lingering references to removed modules
rg -nP -C2 '\b(x/(act|async|sched|warden)|wasmtypes|ModuleName\s*\,\s*.*(act|async|sched|warden|wasm))\b' --type=go

# Check genesis/export paths referencing these modules
rg -nP -C3 '(InitGenesis|ExportGenesis).*?(act|async|sched|warden|wasm)' --type=go

Length of output: 95776


Module removals — fix dangling references

Multiple live references to wasm / x/act / x/async / x/sched / x/warden remain and must be removed, guarded, or the modules re‑wired.

  • Key hotspots: warden/app/app.go (commented wasmtypes.ModuleName at ~701/717/761), warden/app/wasm-interop/custom_msg.go & custom_query.go, cmd/wardend/config/wardend_config.go (wasm module account mapping), precompiles/* (precompiles/act, precompiles/async, precompiles/sched, precompiles/warden), warden/x/warden/{types,keeper,module} (expected_keepers.go, keeper.go, genesis.go), warden/app/oracle.go & vemanager/vemanager.go (x/async handlers/vote extensions), warden/app/ante/{ante.go,sched_handler.go} (x/sched ante handling), plus many tests under tests/ and testutil/ that still import/skip these modules.

Action: either restore wiring (store keys, module accounts, migrations, genesis registration, keepers) or remove/feature‑gate every usage above (imports, keeper calls, precompiles, wasm interop, ante hooks, vemanager, cmd config, genesis/migrations, tests).

🤖 Prompt for AI Agents
In warden/app/app.go around lines 701-705, there are dangling references to wasm
and other removed modules (wasm, x/act, x/async, x/sched, x/warden); you must
either fully restore their wiring or remove/feature‑gate every usage. Fix by
removing these module names and any imports/usages from the module list and app
wiring (store keys, module accounts, migrations, genesis registration, keeper
wiring), OR wrap all references behind a clear feature flag/build tag and guard
keeper calls; then update related files mentioned in the review
(warden/app/wasm-interop/*.go, cmd/wardend/config/wardend_config.go to remove
wasm module account mapping, precompiles/* to eliminate precompile
registrations, warden/x/warden/{types,keeper,module} to remove expected_keepers
and genesis/migrations or implement keepers, warden/app/oracle.go &
vemanager/vemanager.go to remove async vote extensions, warden/app/ante/* to
remove sched ante handling) and adjust tests/testutil to stop importing/skipping
these modules; after changes, run go build/test and remove any leftover
references or unused imports reported by the compiler.

@Pitasi Pitasi merged commit bbb3d8e into main Sep 22, 2025
16 checks passed
@Pitasi Pitasi deleted the prepare-release-0.7.0 branch September 22, 2025 15:04
@coderabbitai coderabbitai bot mentioned this pull request Oct 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments