-
Notifications
You must be signed in to change notification settings - Fork 64
Release v1.9.0 #1931
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release v1.9.0 #1931
Conversation
WalkthroughThis update introduces a new upgrade handler for version 1.9.0, optimizes error slice allocation, and refreshes dependencies across the main project and submodules. The GitHub Actions workflow for golangci-lint is also updated to use a newer action version. No changes to public APIs except for the new upgrade handler. Changes
Sequence Diagram(s)sequenceDiagram
participant App as App
participant Handler as V010900UpgradeHandler
participant Rewards as ParticipationRewardsKeeper
participant MM as ModuleManager
participant Config as Configurator
App->>Handler: Invoke upgrade handler
Handler->>Handler: Log start of migrations
Handler->>Handler: Check if mainnet
alt If mainnet
Handler->>Handler: Create MembraneProtocolData
Handler->>Handler: Marshal to JSON
Handler->>Rewards: SetProtocolData(key, data)
end
Handler->>Handler: Log completion
Handler->>MM: RunMigrations(Config)
MM-->>Handler: Return versionMap, err
Handler-->>App: Return versionMap, err
Estimated code review effort2 (~15 minutes) Suggested labels
Suggested reviewers
Poem
✨ Finishing Touches
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (2)
go.mod (2)
277-277: Fix the malformed comment syntax.There's a missing space in the comment separator on this line.
- github.com/petermattis/goid v0.0.0-20250508124226-395b08cebbdb //indirect + github.com/petermattis/goid v0.0.0-20250508124226-395b08cebbdb // indirect
356-356: Fix the malformed comment syntax.There's a missing space in the comment separator on this line.
- golang.org/x/exp/typeparams v0.0.0-20250718183923-645b1fa84792 //indirect + golang.org/x/exp/typeparams v0.0.0-20250718183923-645b1fa84792 // indirect
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (4)
go.sumis excluded by!**/*.sumgo.work.sumis excluded by!**/*.sumicq-relayer/go.sumis excluded by!**/*.sumxcclookup/go.sumis excluded by!**/*.sum
📒 Files selected for processing (6)
.github/workflows/golangci.yml(3 hunks)app/upgrades/v1_9.go(1 hunks)go.mod(16 hunks)icq-relayer/go.mod(6 hunks)utils/error.go(1 hunks)xcclookup/go.mod(11 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
app/upgrades/v1_9.go (2)
x/participationrewards/types/protocol_data.go (1)
NewProtocolData(13-15)x/participationrewards/types/participationrewards.pb.go (2)
ProtocolDataType_name(52-70)ProtocolDataTypeMembraneParams(38-38)
⏰ 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). (15)
- GitHub Check: lint
- GitHub Check: build (1.24.5, ubuntu-latest)
- GitHub Check: build quicksilver (amd64, linux)
- GitHub Check: test (1.24.5, ubuntu-latest)
- GitHub Check: build quicksilver (amd64, darwin)
- GitHub Check: test (1.24.5, macos-latest)
- GitHub Check: test quicksilver (amd64, windows)
- GitHub Check: build quicksilver (amd64, windows)
- GitHub Check: build (1.24.5, macos-latest)
- GitHub Check: build quicksilver (darwin, arm64)
- GitHub Check: test quicksilver (darwin, arm64)
- GitHub Check: test quicksilver (amd64, linux)
- GitHub Check: Analyze
- GitHub Check: test (1.24.5, macos-latest)
- GitHub Check: build (1.24.5, macos-latest)
🔇 Additional comments (15)
utils/error.go (1)
9-9: LGTM! Good performance optimization.Pre-allocating the slice capacity based on the map size prevents multiple reallocations during the append operations, which improves performance.
.github/workflows/golangci.yml (1)
31-31: LGTM! Consistent version update across all jobs.The golangci-lint-action version is properly updated to v2.2.2 across all jobs, including the commented-out configuration, maintaining consistency.
Also applies to: 46-46, 63-63
app/upgrades/v1_9.go (2)
15-41: Well-structured upgrade handler with proper mainnet-specific logic.The upgrade handler follows the standard pattern with appropriate error handling and module migrations. The mainnet-specific setup for membrane protocol data is properly isolated and uses the correct type system.
23-23: isMainnet implementation verified
The functionisMainnet(ctx sdk.Context) boolis defined in app/upgrades/types.go (lines 65–67) and correctly returnsctx.ChainID() == ProductionChainID. No further changes required.xcclookup/go.mod (2)
11-11: LGTM! Direct dependency updates look appropriate.The updates to key direct dependencies like
golangci-lint/v2(v2.2.2) andgolang.org/x/tools(v0.35.0) are incremental and align with the broader dependency refresh effort.Also applies to: 16-16
24-319: Dependency refresh verified – build and tests passedRan in xcclookup:
• go mod tidy
• go build ./...
• go test ./...All commands succeeded with no errors or failures. No breaking changes detected.
icq-relayer/go.mod (2)
8-8: LGTM! Direct dependency updates are incremental and safe.The updates to
avast/retry-go/v4(v4.6.1) andrs/zerolog(v1.34.0) are incremental version bumps that should be safe to adopt.Also applies to: 17-17
23-214: Extensive indirect dependency refresh aligns with project-wide updates.The comprehensive update of indirect dependencies across OpenTelemetry, Google Cloud libraries, cryptography, and core Go packages is consistent with the coordinated dependency refresh effort seen across other modules.
go.mod (7)
37-41: LGTM! Core dependency updates look good.The updates to
golang.org/x/exp,golang.org/x/tools, andgoogle.golang.org/genprotopackages represent standard maintenance updates that should be compatible with the existing codebase.
51-57: Approve Google Cloud dependency updates.The Google Cloud SDK dependencies have been updated to newer versions, which is good for security and feature improvements. These are patch/minor version updates that should maintain compatibility.
143-144: Note the addition of new indirect dependency.The addition of
github.com/dgraph-io/ristretto/v2 v2.2.0as a new indirect dependency suggests thatdgraph-io/badger/v4now uses ristretto v2 for caching. This is expected with the badger upgrade to v4.8.0.
263-263: Note the addition of new indirect dependency.The addition of
github.com/moby/sys/user v0.4.0as a new indirect dependency is likely pulled in by one of the updated dependencies. This is a standard system utility package from the Moby project.
343-351: Action Required: Confirm OpenTelemetry Version CompatibilityAutomated scans did not detect any direct imports or telemetry configuration files referencing
go.opentelemetry.io. Please manually verify that upgrading all OpenTelemetry modules to v1.37.0 is compatible with your project’s instrumentation code and telemetry requirements.
23-23: Verify golangci-lint v2.2.2 upgrade impact on CI
- No
.golangci.yml/.yaml/.tomlconfiguration file found in the repo, so both workflows will run golangci-lint with default settings.- Two GitHub Actions workflows (
.github/workflows/golangci.yml) are pinned to versionv2.2.2.Please review the golangci-lint v2.2.2 release notes for any newly enabled default linters or rule changes that could break your CI pipeline.
90-90: No AWS SDK imports detected – indirect only
A search forgithub.com/aws/aws-sdk-goin Go files returned no direct or service-subpackage imports, so the SDK is only an indirect dependency. There’s no code relying on AWS APIs to break.
| if isMainnet(ctx) { | ||
| // add MembraneParams protocol data | ||
| membranePd := prtypes.MembraneProtocolData{ | ||
| ContractAddress: "osmo1gy5gpqqlth0jpm9ydxlmff6g5mpnfvrfxd3mfc8dhyt03waumtzqt8exxr", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Verify the hardcoded contract address.
The contract address is hardcoded in the upgrade handler. Please ensure this address is correct for the mainnet membrane protocol deployment and consider documenting its purpose.
🏁 Script executed:
#!/bin/bash
# Verify if this contract address is referenced elsewhere or documented
rg -A 3 -B 3 "osmo1gy5gpqqlth0jpm9ydxlmff6g5mpnfvrfxd3mfc8dhyt03waumtzqt8exxr"Length of output: 4525
Extract and Document the Membrane Contract Address
The address “osmo1gy5gpqqlth0jpm9ydxlmff6g5mpnfvrfxd3mfc8dhyt03waumtzqt8exxr” is used in multiple places:
- app/upgrades/v1_9.go (upgrade handler)
- x/participationrewards/keeper/submodule_membrane_test.go
- utils/cw_test.go
To avoid duplication and ensure correctness:
• Extract this literal into a single constant (for example prtypes.MembraneContractAddress) in your module’s types or config package.
• Replace the hardcoded strings in the upgrade handler and both test files with that constant:
- ContractAddress: "osmo1gy5gpqqlth0jpm9ydxlmff6g5mpnfvrfxd3mfc8dhyt03waumtzqt8exxr",
+ ContractAddress: prtypes.MembraneContractAddress,• Add a doc comment on the constant explaining its origin (mainnet deployment tx or protocol spec) and its role in the Membrane protocol.
• Optionally, update your module’s README or upgrade notes to reference this constant and its purpose.
This centralizes future updates and makes the address’s provenance clear.
📝 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.
| ContractAddress: "osmo1gy5gpqqlth0jpm9ydxlmff6g5mpnfvrfxd3mfc8dhyt03waumtzqt8exxr", | |
| ContractAddress: prtypes.MembraneContractAddress, |
🤖 Prompt for AI Agents
In app/upgrades/v1_9.go at line 26 and the related test files, the Membrane
contract address is hardcoded multiple times. Extract this address into a single
constant named MembraneContractAddress in your module’s types or config package.
Replace all occurrences of the hardcoded string in the upgrade handler and test
files with this constant. Add a doc comment to the constant explaining its
origin and role in the Membrane protocol. Optionally, update the module’s README
or upgrade notes to reference this constant and its purpose.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1931 +/- ##
==========================================
- Coverage 57.70% 57.63% -0.07%
==========================================
Files 171 172 +1
Lines 15251 15268 +17
==========================================
Hits 8800 8800
- Misses 5685 5702 +17
Partials 766 766
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
ajansari95
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
1. Summary
Releases v1.9.0
Adds upgrade handler, and bumps depdendencies ahead of v1.9.0 release.
Summary by CodeRabbit
New Features
Chores