Skip to content

chore: bump lib versions#2203

Merged
SwenSchaeferjohann merged 2 commits intomainfrom
release/libs
Jan 22, 2026
Merged

chore: bump lib versions#2203
SwenSchaeferjohann merged 2 commits intomainfrom
release/libs

Conversation

@ananas-block
Copy link
Contributor

@ananas-block ananas-block commented Jan 22, 2026

Libs Release

This PR bumps versions for program-libs and sdk-libs crates.

Version Bumps

  light-account-checks: 0.6.0 -> 0.7.0
  light-array-map: 0.1.1 -> 0.2.0
  light-batched-merkle-tree: 0.8.0 -> 0.9.0
  light-bloom-filter: 0.5.0 -> 0.6.0
  light-compressed-account: 0.8.0 -> 0.9.0
  light-compressible: 0.3.1 -> 0.4.0
  light-merkle-tree-metadata: 0.8.0 -> 0.9.0
  light-token-interface: 0.2.0 -> 0.3.0
  light-verifier: 7.0.0 -> 8.0.0
  light-prover-client: 5.0.1 -> 6.0.0
  light-client: 0.18.0 -> 0.19.0
  light-event: 0.3.0 -> 0.4.0
  light-instruction-decoder-derive: 0.1.0 -> 0.2.0
  light-instruction-decoder: 0.1.0 -> 0.2.0
  light-sdk-macros: 0.18.1 -> 0.19.0
  light-program-test: 0.18.0 -> 0.19.0
  light-sdk-pinocchio: 0.18.0 -> 0.19.0
  light-sdk-types: 0.18.0 -> 0.19.0
  light-sdk: 0.18.0 -> 0.19.0
  light-token: 0.3.0 -> 0.4.0
  light-token-types: 0.3.0 -> 0.4.0

Release Process

  1. Versions bumped in Cargo.toml files
  2. PR validation (dry-run) will run automatically
  3. After merge, GitHub Action will publish each crate individually to crates.io and create releases

Generated by scripts/release/create-release-pr.sh

Summary by CodeRabbit

  • Documentation

    • Added comprehensive reference documentation for Core Rust libraries, including dependency hierarchy, crate descriptions, and testing instructions.
  • Chores

    • Updated versions for 18+ packages across program, SDK, and prover libraries for compatibility and maintenance.
    • Refreshed descriptions for token-related packages.
    • Removed unused development dependencies.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 22, 2026

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • scripts/release/validate-packages.sh is excluded by none and included by none

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

📝 Walkthrough

Walkthrough

This 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

Cohort / File(s) Summary
Documentation
program-libs/CLAUDE.md
New file documenting core Rust libraries with dependency hierarchy, crate descriptions, external dependencies, and testing instructions
Program-libs Crate Versions
program-libs/{account-checks, array-map, batched-merkle-tree, bloom-filter, compressed-account, compressible, merkle-tree-metadata, token-interface, verifier}/Cargo.toml
Minor and patch version bumps across 9 crates (ranges: 0.1.1→0.2.0 through 7.0.0→8.0.0)
SDK-libs Crate Versions
sdk-libs/{client, event, instruction-decoder-derive, instruction-decoder, macros, program-test, sdk-pinocchio, sdk-types, sdk}/Cargo.toml
Consistent version bumps across 9 crates; instruction-decoder-derive also removes dev-dependency on light-instruction-decoder
Token SDK Metadata
sdk-libs/{token-sdk, token-types}/Cargo.toml
Version bumps (0.3.0→0.4.0) with updated descriptions: "SDK for Light Tokens" and "Light token sdk types" respectively
Prover Client
prover/client/Cargo.toml
Version bump from 5.0.1 to 6.0.0

Estimated Code Review Effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly Related PRs

  • #2112: Overlaps on version bumps across multiple sdk-libs crates (client, event, macros, program-test, sdk-pinocchio, sdk-types, sdk)
  • #2107: Overlaps on version bumps across program-libs Cargo.toml files
  • #2113: Overlaps on prover/client version bump and multiple sdk-libs changes

Suggested Reviewers

  • sergeytimoshin
  • SwenSchaeferjohann

Poem

Versions climb with steady grace, ✨
CLAUDE.md marks the place,
Crates evolve from old to new,
SDK and prover march right through,
Light Protocol's march advances on! 🔦

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: bump lib versions' accurately and clearly describes the main change—a version bump across multiple crates in the monorepo.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release/libs

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: 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.

Comment on lines +1 to +72
# 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/`.
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 | 🟠 Major

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.

Comment on lines +63 to +70
## 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
```
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 | 🟡 Minor

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).
@SwenSchaeferjohann SwenSchaeferjohann merged commit 4006ac3 into main Jan 22, 2026
31 of 32 checks passed
sergeytimoshin pushed a commit that referenced this pull request Jan 23, 2026
* 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).
@ananas-block ananas-block deleted the release/libs branch February 4, 2026 12:25
@coderabbitai coderabbitai bot mentioned this pull request Feb 4, 2026
@coderabbitai coderabbitai bot mentioned this pull request Feb 18, 2026
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.

2 participants