Skip to content

build!: adopt GroveDB bincode across the workspace - #1005

Merged
QuantumExplorer merged 2 commits into
devfrom
codex/grovedb-bincode
Sep 8, 2026
Merged

build!: adopt GroveDB bincode across the workspace#1005
QuantumExplorer merged 2 commits into
devfrom
codex/grovedb-bincode

Conversation

@QuantumExplorer

@QuantumExplorer QuantumExplorer commented Sep 8, 2026

Copy link
Copy Markdown
Member

Issue being fixed or feature implemented

GroveDB #938 introduces the grovedb-bincode fork. Platform is adopting it in Platform #4625, but its Encode/Decode traits are distinct from crates.io bincode's traits. Moving rust-dashcore to the same fork lets Core, wallet, GroveDB, and Platform types share those traits directly, without a compatibility package or downstream Cargo patch.

What was done?

  • Pin workspace dependencies bincode and bincode_derive to grovedb-bincode / grovedb-bincode-derive 2.1.0 from crates.io.
  • Use those dependencies in dashcore, dash-network, hashes, key-wallet, key-wallet-manager, and RPC JSON, preserving existing feature names, optional dependencies, and Serde features.
  • Document the Rust compatibility change in the changelog. Existing codec implementations, C/Swift interfaces, and build scripts are unchanged. This dependency migration does not automatically opt types into DecodeUntrusted or change ordinary decoding behavior.

How Has This Been Tested?

Passed locally on macOS. Workspace compilation, unit tests, and strict Clippy were rerun with the published 2.1.0 packages; their Rust source matches the previously tested fork revision:

  • cargo check --workspace --all-targets --all-features
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo fmt --all --check
  • cargo test --workspace --lib --all-features: 2,332 passed, 41 ignored.
  • cargo test -p dash-network -p dashcore_hashes -p dashcore -p key-wallet -p key-wallet-manager -p dashcore-rpc-json --all-features, including existing wallet serialization integration tests and documentation tests.

The dependency graph resolves only the fork's bincode runtime and derives. Live-node integration and device builds were not run locally; native FFI targets are covered by workspace compilation and unit tests.

Breaking Changes

Rust consumers serializing these types must use the published grovedb-bincode 2.1.0 crate for compatible Encode/Decode traits. Existing serialized bytes and the C ABI are unchanged.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

Summary by CodeRabbit

  • Breaking Changes

    • Rust consumers must use compatible Encode and Decode traits from grovedb-bincode 2.1.0 and its matching derive macros.
    • Existing serialized encodings and C interfaces remain unchanged.
    • Types are not automatically configured for DecodeUntrusted.
  • Documentation

    • Updated the Unreleased changelog with serialization compatibility requirements and migration guidance.
    • Clarified that the compatible serialization traits and derive macros are available through crates.io.

@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: a0165127-171a-4ee1-9585-e97633df4b7c

📥 Commits

Reviewing files that changed from the base of the PR and between 1e5e875 and 5983e62.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • Cargo.toml
🚧 Files skipped from review as they are similar to previous changes (1)
  • CHANGELOG.md

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The workspace now uses grovedb-bincode 2.1.0 and its derive package from crates.io. Package manifests inherit these dependencies, and the changelog documents the Rust trait compatibility requirements.

Changes

Bincode workspace migration

Layer / File(s) Summary
Workspace dependency source
Cargo.toml
The workspace defines bincode and bincode_derive as the grovedb-bincode packages at exact version 2.1.0.
Package dependency adoption and release notes
dash-network/Cargo.toml, dash/Cargo.toml, hashes/Cargo.toml, key-wallet-manager/Cargo.toml, key-wallet/Cargo.toml, rpc-json/Cargo.toml, CHANGELOG.md
Package manifests inherit the workspace dependencies while preserving optional and serde settings. The changelog documents the updated fork traits, encodings, C interfaces, and Rust compatibility requirements.

Priority: ⬇️ Low — Defer the workspace bincode dependency migration because it preserves existing encodings and interfaces without a stated customer or production impact.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 5983e

This updates workspace serialization dependencies to published GroveDB bincode 2.1.0 crates while preserving package feature configuration. No merge-blocking production or compatibility risk is currently identified.

Suggested reviewers: xdustinface, zocolini

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adopting the GroveDB bincode fork across the workspace.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/grovedb-bincode

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.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Sep 8, 2026
@codecov

codecov Bot commented Sep 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.04%. Comparing base (7e315af) to head (5983e62).
⚠️ Report is 1 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev    #1005      +/-   ##
==========================================
- Coverage   77.18%   77.04%   -0.14%     
==========================================
  Files         329      329              
  Lines       83603    83603              
==========================================
- Hits        64528    64413     -115     
- Misses      19075    19190     +115     
Flag Coverage Δ
core 78.25% <ø> (ø)
ffi 50.46% <ø> (-1.10%) ⬇️
rpc 20.00% <ø> (ø)
spv 92.01% <ø> (+<0.01%) ⬆️
wallet 79.63% <ø> (ø)
see 19 files with indirect coverage changes

@github-actions github-actions Bot added the ready-for-review CodeRabbit has approved this PR label Sep 8, 2026

@QuantumExplorer QuantumExplorer left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Reviewed

@QuantumExplorer
QuantumExplorer merged commit 057e79c into dev Sep 8, 2026
35 of 38 checks passed
@QuantumExplorer
QuantumExplorer deleted the codex/grovedb-bincode branch September 8, 2026 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-review CodeRabbit has approved this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant