Conversation
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including You can disable this status message by setting the 📝 WalkthroughWalkthroughThis PR bumps package versions across multiple crates in program-libs, sdk-libs, and prover/client directories. It introduces CLAUDE.md documentation for core Rust library descriptions and updates metadata for token SDK crates. Changes
Estimated Code Review Effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly Related PRs
Suggested Reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
6ba49f5 to
3d95936
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@program-libs/CLAUDE.md`:
- Around line 63-70: The fenced code block under the "## Testing" section lacks
blank lines before and after; add a single blank line between the paragraph
"Unit tests run with `cargo test`:" and the opening ```bash fence, and add a
single blank line after the closing ``` fence so the block is properly separated
(update the text around the "Unit tests run with `cargo test`:" paragraph and
the three cargo test lines accordingly).
- Around line 1-72: The CLAUDE.md is missing the mandated top-level sections;
update the document to include a Summary (2–5 bullet points highlighting purpose
and scope), a "Used in" list of projects/crates that consume these libraries, a
"Navigation" section explaining how to browse the doc (e.g., table of contents
and where to find crate details), and a "Source Code Structure" section that
outlines library-oriented modules (core types, hashing, merkle, utilities,
tests), integrating these into the existing content (keep the Reverse Dependency
Hierarchy and Crate Descriptions) and ensure each new section is clearly labeled
(Summary, Used in, Navigation, Source Code Structure) so readers can quickly
locate information.
| # Program Libraries | ||
|
|
||
| Core Rust libraries used in on-chain programs and sdk-libs. These crates are designed for Solana program environments with careful attention to compute budget and memory constraints. | ||
|
|
||
| ## Reverse Dependency Hierarchy | ||
|
|
||
| For each crate, lists all crates that depend on it (dependents). | ||
|
|
||
| | Crate | Depended On By | | ||
| |-------|----------------| | ||
| | account-checks | batched-merkle-tree, compressible, token-interface | | ||
| | aligned-sized | (none) | | ||
| | array-map | token-interface | | ||
| | batched-merkle-tree | (none) | | ||
| | bloom-filter | batched-merkle-tree | | ||
| | compressed-account | batched-merkle-tree, compressible, merkle-tree-metadata, token-interface, verifier | | ||
| | compressible | token-interface | | ||
| | concurrent-merkle-tree | indexed-merkle-tree | | ||
| | hash-set | concurrent-merkle-tree, indexed-merkle-tree | | ||
| | hasher | batched-merkle-tree, bloom-filter, compressed-account, compressible, concurrent-merkle-tree, hash-set, indexed-array, indexed-merkle-tree, token-interface | | ||
| | heap | compressed-account, compressible, token-interface | | ||
| | indexed-array | (none) | | ||
| | indexed-merkle-tree | (none) | | ||
| | macros | batched-merkle-tree, compressed-account, compressible, token-interface | | ||
| | merkle-tree-metadata | batched-merkle-tree | | ||
| | token-interface | (none) | | ||
| | verifier | batched-merkle-tree | | ||
| | zero-copy | batched-merkle-tree, compressed-account, compressible, token-interface | | ||
| | zero-copy-derive | zero-copy | | ||
|
|
||
| ## Crate Descriptions | ||
|
|
||
| | Crate | Description | | ||
| |-------|-------------| | ||
| | account-checks | Solana account validation (solana-program + pinocchio) | | ||
| | aligned-sized | Macro to get aligned size of Rust structs | | ||
| | array-map | Array-based map data structure | | ||
| | batched-merkle-tree | Merkle tree updates with ZK proofs | | ||
| | bloom-filter | Bloom filter implementation | | ||
| | compressed-account | Compressed account types and utilities | | ||
| | compressible | Configuration for compressible token accounts | | ||
| | concurrent-merkle-tree | Concurrent Merkle tree operations | | ||
| | hash-set | Hash set for Solana programs | | ||
| | hasher | Poseidon hash implementation | | ||
| | heap | Heap data structure for Solana programs | | ||
| | indexed-array | Indexed array utilities | | ||
| | indexed-merkle-tree | Indexed Merkle tree with address management | | ||
| | macros | Procedural macros for Light Protocol | | ||
| | merkle-tree-metadata | Metadata types for Merkle trees | | ||
| | token-interface | Compressed token types and interfaces | | ||
| | verifier | ZKP verification logic in Solana programs | | ||
| | zero-copy | Zero-copy serialization for efficient account access | | ||
| | zero-copy-derive | Derive macros for zero-copy serialization | | ||
|
|
||
| ## External Dependencies | ||
|
|
||
| Some crates depend on external Light Protocol crates not in program-libs: | ||
| - `light-poseidon` - Poseidon hash primitive | ||
| - `light-bounded-vec` - Bounded vector implementation | ||
| - `light-merkle-tree-reference` - Reference Merkle tree implementation for testing | ||
| - `light-program-profiler` - Profiling utilities | ||
|
|
||
| ## Testing | ||
|
|
||
| Unit tests run with `cargo test`: | ||
| ```bash | ||
| cargo test -p light-hasher --all-features | ||
| cargo test -p light-compressed-account --all-features | ||
| cargo test -p light-batched-merkle-tree | ||
| ``` | ||
|
|
||
| Integration tests that require Solana runtime are in `program-tests/`. |
There was a problem hiding this comment.
Add required CLAUDE.md sections (Summary/Used in/Navigation/Source Code Structure).
This file doesn’t follow the mandated CLAUDE.md structure. Please add:
- Summary (2–5 bullets),
- Used in section,
- Navigation instructions,
- Source Code Structure section (library-oriented, e.g., core types / modules).
As per coding guidelines, ...
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
66-66: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
🤖 Prompt for AI Agents
In `@program-libs/CLAUDE.md` around lines 1 - 72, The CLAUDE.md is missing the
mandated top-level sections; update the document to include a Summary (2–5
bullet points highlighting purpose and scope), a "Used in" list of
projects/crates that consume these libraries, a "Navigation" section explaining
how to browse the doc (e.g., table of contents and where to find crate details),
and a "Source Code Structure" section that outlines library-oriented modules
(core types, hashing, merkle, utilities, tests), integrating these into the
existing content (keep the Reverse Dependency Hierarchy and Crate Descriptions)
and ensure each new section is clearly labeled (Summary, Used in, Navigation,
Source Code Structure) so readers can quickly locate information.
| ## Testing | ||
|
|
||
| Unit tests run with `cargo test`: | ||
| ```bash | ||
| cargo test -p light-hasher --all-features | ||
| cargo test -p light-compressed-account --all-features | ||
| cargo test -p light-batched-merkle-tree | ||
| ``` |
There was a problem hiding this comment.
Fix fenced code block spacing (MD031).
Add blank lines before and after the fenced block.
🛠️ Proposed fix
-Unit tests run with `cargo test`:
-```bash
+Unit tests run with `cargo test`:
+
+```bash
cargo test -p light-hasher --all-features
cargo test -p light-compressed-account --all-features
cargo test -p light-batched-merkle-tree</details>
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **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.
```suggestion
## Testing
Unit tests run with `cargo test`:
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
66-66: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
🤖 Prompt for AI Agents
In `@program-libs/CLAUDE.md` around lines 63 - 70, The fenced code block under the
"## Testing" section lacks blank lines before and after; add a single blank line
between the paragraph "Unit tests run with `cargo test`:" and the opening
```bash fence, and add a single blank line after the closing ``` fence so the
block is properly separated (update the text around the "Unit tests run with
`cargo test`:" paragraph and the three cargo test lines accordingly).
The cargo publish --dry-run command fails when packages in the same release batch depend on each other, because it tries to resolve dependencies from crates.io where the new versions don't exist yet. This fix: - Detects interdependencies between packages being released - Skips dry-run when interdependencies are found - Relies on the compilation check to validate the packages - Allows actual publish to proceed (where cargo handles ordering) Fixes the validation failure for releases that include packages with internal dependencies (e.g., light-program-test depending on light-instruction-decoder).
* chore(libs): bump versions * fix: skip dry-run validation for interdependent packages The cargo publish --dry-run command fails when packages in the same release batch depend on each other, because it tries to resolve dependencies from crates.io where the new versions don't exist yet. This fix: - Detects interdependencies between packages being released - Skips dry-run when interdependencies are found - Relies on the compilation check to validate the packages - Allows actual publish to proceed (where cargo handles ordering) Fixes the validation failure for releases that include packages with internal dependencies (e.g., light-program-test depending on light-instruction-decoder).
Libs Release
This PR bumps versions for program-libs and sdk-libs crates.
Version Bumps
Release Process
Generated by
scripts/release/create-release-pr.shSummary by CodeRabbit
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.