Skip to content

Conversation

@jbernal87
Copy link
Contributor

@jbernal87 jbernal87 commented Aug 16, 2025

Summary by CodeRabbit

  • Chores
    • Upgraded CosmWasm and Injective libraries to latest compatible versions for improved stability and compatibility.
    • Migrated from workspace-managed to pinned dependencies across packages for reproducible builds.
    • Removed unused package workspace and a deprecated dependency.
    • Updated authorship metadata.
  • Performance
    • Enabled optimized release build profile (LTO, opt-level 3, single codegen unit) for smaller, faster binaries.

@coderabbitai
Copy link

coderabbitai bot commented Aug 16, 2025

Walkthrough

The workspace narrows to contracts only. Multiple Cargo.toml files switch from workspace-managed dependencies to explicit pinned versions, apply version bumps across CosmWasm and Injective crates, remove a dev tool, and add optimized release profiles to select packages.

Changes

Cohort / File(s) Summary of changes
Workspace scope and global deps
Cargo.toml
Workspace members reduced to contracts/*. Bumped cosmwasm-std and cw-multi-test to 2.2.x. Upgraded Injective crates (injective-std, injective-test-tube) and moved injective-{cosmwasm,math} from path to version 0.3.4-1. Updated prost to 0.13.5. Removed test-tube-inj.
Pinned package manifests and release profiles
packages/injective-cosmwasm/Cargo.toml, packages/injective-math/Cargo.toml, packages/injective-testing/Cargo.toml
Bumped package versions (injective-cosmwasm 0.3.4-1; injective-math 0.3.4-1; injective-testing 1.1.12-1). Replaced workspace deps with explicit versions and features (cosmwasm-std 2.2.2, injective-* 1.16.3-1/0.3.4-1, prost 0.13.5, etc.). Removed dev/workspace refs. Added [profile.release] with optimized settings to injective-cosmwasm and injective-math; removed features block in injective-math.

Sequence Diagram(s)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

I thump my paws on tidy soil,
Versions hop to fresher loam,
Workspaces trim, dependencies coil,
Release winds sharpen, lean as foam.
Carrots pinned, the garden set—
Ship it swift; no nettles yet. 🥕🐇

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/update-to-1.16.3

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@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: 0

🧹 Nitpick comments (8)
Cargo.toml (2)

14-15: Align CosmWasm crate versions to avoid duplicate builds and feature skew

Root workspace uses cosmwasm-std = 2.2.0 and cw-multi-test = 2.2.0, while packages pin 2.2.2 (std) and 2.2.1 (multi-test). This can pull multiple versions into the graph and cause feature mismatches. Recommend aligning all to a single version.

Suggested change (root manifest) to match the latest pins used downstream:

- cosmwasm-std        = { version = "2.2.0", features = [ "abort", "cosmwasm_1_2", "cosmwasm_1_3", "cosmwasm_1_4", "cosmwasm_2_0", "iterator", "stargate" ] }
- cw-multi-test       = { version = "2.2.0" }
+ cosmwasm-std        = { version = "2.2.2", features = [ "abort", "cosmwasm_1_2", "cosmwasm_1_3", "cosmwasm_1_4", "cosmwasm_2_0", "iterator", "stargate" ] }
+ cw-multi-test       = { version = "2.2.2" }

Note: This also requires bumping cw-multi-test in packages/injective-testing to 2.2.2 (see comment in that file).


5-8: Redundant profile overrides: duplicated with the crate’s own [profile.release]

You set [profile.release.package.injective-cosmwasm] here, and packages/injective-cosmwasm also defines its own [profile.release] with identical values. The workspace override will take precedence for builds from this workspace; the crate’s local profile applies when built outside this workspace. If you aim to keep all knobs centralized, consider dropping one to reduce confusion.

packages/injective-testing/Cargo.toml (2)

13-13: Unify cw-multi-test version with workspace

Root is proposed to use cw-multi-test 2.2.2 to avoid duplicates. Please align this crate accordingly.

- cw-multi-test       = { version = "2.2.1" }
+ cw-multi-test       = { version = "2.2.2" }

12-12: cosmwasm-std version alignment

This crate pins 2.2.2 while the root has 2.2.0. I suggested bumping the root to 2.2.2 to match here and in other packages to avoid duplicate versions.

packages/injective-cosmwasm/Cargo.toml (4)

2-2: Normalize authors formatting for consistency

The authors field mixes formats across crates. Prefer the standard “Name ” format used elsewhere in the repo.

- authors = [ "Albert Chon [email protected]", "F Grabner [email protected]", "Markus Waas [email protected]", "Jose Luis [email protected]" ]
+ authors = [
+   "Albert Chon <[email protected]>",
+   "F Grabner <[email protected]>",
+   "Markus Waas <[email protected]>",
+   "Jose Luis <[email protected]>"
+ ]

12-12: cosmwasm-std version alignment with workspace

This crate uses 2.2.2; root currently pins 2.2.0. I suggested bumping the root to 2.2.2 to avoid pulling multiple versions.


22-22: Prefer explicit no-std posture for ed25519-zebra

If this crate or its dependents are compiled to Wasm targets in no_std contexts, it’s safer to disable default features and enable only alloc.

- ed25519-zebra   = { version = "4.1.0", features = ["alloc"] }
+ ed25519-zebra   = { version = "4.1.0", default-features = false, features = ["alloc"] }

If you intentionally rely on std here, feel free to ignore.


29-39: Release profile duplication with workspace overrides

This crate defines [profile.release], while the workspace root defines [profile.release.package.injective-cosmwasm] with the same values. For builds from the workspace, the root override will win; this local profile only matters when building the crate outside the workspace. Keeping both is fine; consider removing one to reduce duplication.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between e5b8849 and 092bcfa.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • Cargo.toml (2 hunks)
  • packages/injective-cosmwasm/Cargo.toml (1 hunks)
  • packages/injective-math/Cargo.toml (1 hunks)
  • packages/injective-testing/Cargo.toml (1 hunks)
⏰ 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: Lints
  • GitHub Check: Lints
🔇 Additional comments (7)
Cargo.toml (2)

2-2: Confirm intent to narrow workspace to contracts only

Dropping packages/* from members changes how profiles, publishing, and [patch.crates-io] overrides apply. It looks intentional given the per-crate pins, but please confirm this is the desired long-term structure (local packages become external dependencies rather than workspace members).

Would you like me to scan the repo for any cargo commands, CI jobs, or docs that still assume packages/* are workspace members?


24-24: Path + version for injective-testing is good; verify intent for others

injective-testing references a local path (with a version), ensuring you use the local crate. injective-cosmwasm and injective-math are version-only (no path), so the workspace will pull from crates.io even though local copies exist under packages/. Confirm that’s intentional.

packages/injective-testing/Cargo.toml (1)

8-8: Version bump looks good

The crate version bump to 1.1.12-1 is consistent with the broader Injective stack updates (1.16.3-1).

packages/injective-cosmwasm/Cargo.toml (1)

9-9: Version update LGTM

Version bump to 0.3.4-1 aligns with dependent crates in the workspace and external releases.

packages/injective-math/Cargo.toml (3)

9-9: Version update LGTM

0.3.4-1 matches the overall dependency updates.


14-17: Pinned dependencies and features look consistent

Pins for cosmwasm-std 2.2.2 and serde/schemars/primitive-types are consistent with the rest of the stack.


19-29: Release profile matches the project-wide optimization settings

The profile settings align with the other crates. No issues.

@jbernal87 jbernal87 closed this Sep 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants