Skip to content

Conversation

shumkov
Copy link
Collaborator

@shumkov shumkov commented Sep 18, 2025

Issue being fixed or feature implemented

Release new Dash Platform version

What was done?

  • Updated changelog
  • Bumped packages version

How Has This Been Tested?

None

Breaking Changes

None

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 made corresponding changes to the documentation

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

Summary by CodeRabbit

  • Breaking Changes

    • Identity transition signing changed across key types; removal of unused key parameters in state transitions.
  • New Features

    • Full getStatus info exposed; added missing token/NFT transitions and Evo SDK improvements; broader platform support (incl. iOS).
  • Bug Fixes

    • Fixes for document/proof retrieval, NFT transitions, identity signing, compiler warnings, and CI/test failures.
  • CI/Build

    • Added exact-version release option, selective CI runs, macOS runner use; Tenderdash and Rust version updates.
  • Documentation

    • Added 2.1.0-dev.4 changelog entry.
  • Chores

    • Version bumps across packages.

@shumkov shumkov added this to the v2.1.0 milestone Sep 18, 2025
Copy link
Contributor

coderabbitai bot commented Sep 18, 2025

Walkthrough

Adds a new 2.1.0-dev.4 changelog entry, bumps many npm package and Rust crate versions across the monorepo, updates dashmate migration to set platform Docker image fields, and extends release tooling: scripts/release/release.sh gains a -v/--version option and validation/inference, while scripts/release/bump_version.js gains CLI parsing and an exact-target-version flow.

Changes

Cohort / File(s) Summary
Changelog
CHANGELOG.md
New 2.1.0-dev.4 entry documenting breaking changes, features, fixes, tests, CI/build notes for the 2.1 dev line.
Root package metadata
package.json
Version bumped: 2.0.02.1.0-dev.4.
JS package version bumps
packages/*/*.package.json (examples)
packages/dapi/package.json, packages/js-dash-sdk/package.json, packages/wasm-dpp/package.json, packages/wallet-lib/package.json, packages/dash-spv/package.json, packages/*-contract/package.json, packages/platform-test-suite/package.json, packages/wasm-drive-verify/package.json, ...
Many JS package version fields updated (primarily 2.1.0-dev.4, some packages to 5.1.0-dev.4/9.1.0-dev.4 etc.). No other content changes.
Rust crate version bumps
packages/*/Cargo.toml (examples)
packages/rs-*/Cargo.toml, packages/*-contract/Cargo.toml, packages/wasm-*/Cargo.toml, ...
Crate version fields updated to 2.1.0-dev.4 (e.g., wasm-drive-verify from 1.8.02.1.0-dev.4). Manifests only; no code changes.
dashmate migration update
packages/dashmate/configs/getConfigFileMigrationsFactory.js
2.1.0-dev.1 migration now sets options.platform.drive.abci.docker.image = 'dashpay/drive:2-dev' and options.platform.dapi.api.docker.image = 'dashpay/dapi:2-dev' for configs after ensuring options.core.zmq.
Release tooling
scripts/release/bump_version.js, scripts/release/release.sh
bump_version.js: adds parseArgs(argv) and setExactVersion(targetVersion), and an exact-target-version path that validates semver and applies the exact version to npm and Cargo files. release.sh: adds -v/--version option, validates/infers release type from target semver, passes --target-version to bump_version.js, and uses cargo metadata --format-version 1.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Dev as Developer
  participant SH as release.sh
  participant JS as bump_version.js
  participant FS as Files (package.json/Cargo.toml)
  participant GIT as Git

  Dev->>SH: ./release.sh [-t TYPE] [-v VERSION]
  alt VERSION provided
    SH->>SH: validate TARGET_VERSION (semver) & infer RELEASE_TYPE
    SH->>JS: node bump_version.js --target-version=VERSION [--type TYPE]
    JS->>JS: parseArgs(argv) & validate semver
    JS->>FS: setExactVersion(VERSION) → update all package.json and Cargo.toml
    JS->>GIT: write root package.json with target version
  else No VERSION provided
    SH->>JS: node bump_version.js --type TYPE
    JS->>FS: bump versions by release type (prerelease/release)
  end
  SH->>GIT: continue normal release flow (changelog/PR/metadata)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • QuantumExplorer
  • lklimek

Poem

Hop, hop — I bump and tag tonight,
Crates and packages into flight.
A script, a version, tidy tree,
Docker images set with glee.
Dev-line dances — rabbit cheers! 🐇✨

Pre-merge checks and finishing touches

✅ 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 succinctly and accurately describes the primary change in this PR — a release chore that updates the changelog and bumps package versions to 2.1.0-dev.4 — and matches the file-level changes in the diff. It is concise, specific, and appropriate for a release/version bump PR.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release_2.1.0-dev.4

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.

@shumkov shumkov self-assigned this Sep 18, 2025
Copy link

github-actions bot commented Sep 18, 2025

✅ gRPC Query Coverage Report

================================================================================
gRPC Query Coverage Report - NEW QUERIES ONLY
================================================================================

Total queries in proto: 47
Previously known queries: 47
New queries found: 0


================================================================================
Summary:
--------------------------------------------------------------------------------
No new queries found

Total known queries: 47
  - Implemented: 44
  - Not implemented: 2
  - Excluded: 1

Not implemented queries:
  - getConsensusParams
  - getTokenPreProgrammedDistributions

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

🧹 Nitpick comments (9)
packages/withdrawals-contract/Cargo.toml (1)

3-4: Fix minor typo in description.

Spelling nit.

Apply this diff:

-description = "Witdrawals data contract schema and tools"
+description = "Withdrawals data contract schema and tools"
packages/wallet-lib/package.json (1)

3-3: Confirm publish strategy for prerelease/major version shift.

Going from 9.x to 2.1.0-dev.4 can surprise npm consumers if published to latest. Recommend using a dev dist-tag.

Consider adding publishConfig to enforce dev tag:

   "homepage": "https://github.com/dashevo/wallet-lib#readme",
+  "publishConfig": {
+    "tag": "dev"
+  },
   "dependencies": {

And publish with: npm publish --tag dev (or via your release tooling).

packages/rs-drive/Cargo.toml (1)

5-10: Fix malformed author entry (missing '>').
The last author string lacks a closing angle bracket, which is untidy and could surface in packaging metadata.

Apply:

 authors = [
   "Samuel Westrich <sam@dash.org>",
   "Ivan Shumkov <ivan@shumkov.ru>",
   "Djavid Gabibiyan <djavid@dash.org>",
-  "Wisdom Ogwu <wisdom@dash.org",
+  "Wisdom Ogwu <wisdom@dash.org>",
 ]
CHANGELOG.md (1)

59-61: Typo: use “don’t” instead of “dont”.

Minor wording fix for polish.

- * dont do CI when it's not needed ([#2774](https://github.com/dashpay/platform/issues/2774))
+ * don't do CI when it's not needed ([#2774](https://github.com/dashpay/platform/issues/2774))
scripts/release/release.sh (1)

15-18: Good: new -v/--version option documented. Also accept space-separated args?

Currently parsing supports only -v=2.1.0-dev.4. Many users type -v 2.1.0-dev.4. Consider accepting both forms for better UX.

 for i in "$@"
 do
 case ${i} in
@@
-    -t=*|--type=*)
+    -t=*|--type=*)
       RELEASE_TYPE="${i#*=}"
     ;;
-    -v=*|--version=*)
+    -v=*|--version=*)
       TARGET_VERSION="${i#*=}"
     ;;
@@
 esac
 done
+
+# Support space-separated flags (-t dev, -v 2.1.0-dev.4)
+while [[ $# -gt 0 ]]; do
+  case "$1" in
+    -t|--type)
+      RELEASE_TYPE="$2"; shift 2; continue;;
+    -v|--version)
+      TARGET_VERSION="$2"; shift 2; continue;;
+    *)
+      shift;;
+  esac
+done
scripts/release/bump_version.js (4)

17-17: Keep versionFunc arity consistent for clarity

Align the exact-version function’s signature with callers to avoid reader confusion about ignored params.

-const setExactVersion = (targetVersion) => () => targetVersion;
+const setExactVersion = (targetVersion) => (_version, _releaseType) => targetVersion;

19-55: CLI UX: add short flags (-v/-t) and guard missing values

Release script advertises -v/--version; this parser handles only long forms. Also, add a concise value check to fail fast when a flag value is omitted.

 const parseArgs = (argv) => {
   let releaseType;
   let targetVersion;

   for (let i = 0; i < argv.length; i += 1) {
     const arg = argv[i];

+    const takeNext = () => {
+      const next = argv[i + 1];
+      if (next === undefined || next.startsWith('-')) {
+        throw new Error(`Missing value for ${arg}`);
+      }
+      i += 1;
+      return next;
+    };
+
     if (arg.startsWith('--target-version=')) {
       targetVersion = arg.split('=')[1];
       continue;
     }

     if (arg === '--target-version') {
-      targetVersion = argv[i + 1];
-      i += 1;
+      targetVersion = takeNext();
       continue;
     }
+
+    if (arg === '-t') {
+      targetVersion = takeNext();
+      continue;
+    }

     if (arg.startsWith('--version=')) {
       targetVersion = arg.split('=')[1];
       continue;
     }

     if (arg === '--version') {
-      targetVersion = argv[i + 1];
-      i += 1;
+      targetVersion = takeNext();
+      continue;
+    }
+
+    if (arg === '-v') {
+      targetVersion = takeNext();
       continue;
     }

     if (!releaseType && !arg.startsWith('-')) {
       releaseType = arg;
     }
   }

   return { releaseType, targetVersion };
 };

93-103: Normalize targetVersion once; accept common “v” prefix and reuse normalized value

Normalize/clean the provided version before validation and reuse the normalized value below. This avoids edge cases like “v2.1.0-dev.4” and eliminates repeating semver.prerelease on the raw input.

-  let releaseType = releaseTypeArg;
+  let releaseType = releaseTypeArg;

-  if (targetVersion !== undefined && !semver.valid(targetVersion)) {
-    throw new Error(`Invalid target version: ${targetVersion}`);
-  }
+  const normalizedTarget =
+    targetVersion === undefined ? undefined : (semver.valid(targetVersion) || semver.clean(targetVersion));
+  if (targetVersion !== undefined && !normalizedTarget) {
+    throw new Error(`Invalid target version: ${targetVersion}`);
+  }

-  if (targetVersion !== undefined && releaseType === undefined) {
-    const targetPrerelease = semver.prerelease(targetVersion);
+  if (normalizedTarget !== undefined && releaseType === undefined) {
+    const targetPrerelease = semver.prerelease(normalizedTarget);
     releaseType = targetPrerelease !== null ? targetPrerelease[0] : 'release';
   }
@@
-  if (targetVersion !== undefined) {
-    const targetPrerelease = semver.prerelease(targetVersion);
+  if (normalizedTarget !== undefined) {
+    const targetPrerelease = semver.prerelease(normalizedTarget);
     const targetVersionType = targetPrerelease !== null ? targetPrerelease[0] : 'release';

     if (releaseType !== targetVersionType) {
       throw new Error(`Specified release type (${releaseType}) does not match target version type (${targetVersionType})`);
     }

-    bumpNpmPackages(setExactVersion(targetVersion), releaseType);
-    bumpRustPackages(setExactVersion(targetVersion), releaseType);
+    bumpNpmPackages(setExactVersion(normalizedTarget), releaseType);
+    bumpRustPackages(setExactVersion(normalizedTarget), releaseType);

-    rootPackageJson.version = targetVersion;
+    rootPackageJson.version = normalizedTarget;
     fs.writeFileSync(path.join(__dirname, '..', '..', 'package.json'), `${JSON.stringify(rootPackageJson, null, 2)}\n`);

     return;
   }

Also applies to: 110-125


110-125: Nit: de-duplicate root package path

Minor readability: define root path once.

 (async () => {
+  const rootPackagePath = path.join(__dirname, '..', '..', 'package.json');
@@
-    fs.writeFileSync(path.join(__dirname, '..', '..', 'package.json'), `${JSON.stringify(rootPackageJson, null, 2)}\n`);
+    fs.writeFileSync(rootPackagePath, `${JSON.stringify(rootPackageJson, null, 2)}\n`);
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 59dc8c7 and 56f23a3.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (61)
  • CHANGELOG.md (1 hunks)
  • package.json (1 hunks)
  • packages/bench-suite/package.json (1 hunks)
  • packages/check-features/Cargo.toml (1 hunks)
  • packages/dapi-grpc/Cargo.toml (1 hunks)
  • packages/dapi-grpc/package.json (1 hunks)
  • packages/dapi/package.json (1 hunks)
  • packages/dash-platform-balance-checker/Cargo.toml (1 hunks)
  • packages/dash-spv/package.json (1 hunks)
  • packages/dashmate/package.json (1 hunks)
  • packages/dashpay-contract/Cargo.toml (1 hunks)
  • packages/dashpay-contract/package.json (1 hunks)
  • packages/data-contracts/Cargo.toml (1 hunks)
  • packages/dpns-contract/Cargo.toml (1 hunks)
  • packages/dpns-contract/package.json (1 hunks)
  • packages/feature-flags-contract/Cargo.toml (1 hunks)
  • packages/feature-flags-contract/package.json (1 hunks)
  • packages/js-dapi-client/package.json (1 hunks)
  • packages/js-dash-sdk/package.json (1 hunks)
  • packages/js-evo-sdk/package.json (1 hunks)
  • packages/js-grpc-common/package.json (1 hunks)
  • packages/keyword-search-contract/Cargo.toml (1 hunks)
  • packages/keyword-search-contract/package.json (1 hunks)
  • packages/masternode-reward-shares-contract/Cargo.toml (1 hunks)
  • packages/masternode-reward-shares-contract/package.json (1 hunks)
  • packages/platform-test-suite/package.json (1 hunks)
  • packages/rs-context-provider/Cargo.toml (1 hunks)
  • packages/rs-dapi-client/Cargo.toml (1 hunks)
  • packages/rs-dapi-grpc-macros/Cargo.toml (1 hunks)
  • packages/rs-dpp/Cargo.toml (1 hunks)
  • packages/rs-drive-abci/Cargo.toml (1 hunks)
  • packages/rs-drive-proof-verifier/Cargo.toml (1 hunks)
  • packages/rs-drive/Cargo.toml (1 hunks)
  • packages/rs-json-schema-compatibility-validator/Cargo.toml (1 hunks)
  • packages/rs-platform-serialization-derive/Cargo.toml (1 hunks)
  • packages/rs-platform-serialization/Cargo.toml (1 hunks)
  • packages/rs-platform-value-convertible/Cargo.toml (1 hunks)
  • packages/rs-platform-value/Cargo.toml (1 hunks)
  • packages/rs-platform-version/Cargo.toml (1 hunks)
  • packages/rs-platform-versioning/Cargo.toml (1 hunks)
  • packages/rs-platform-wallet/Cargo.toml (1 hunks)
  • packages/rs-sdk-ffi/Cargo.toml (1 hunks)
  • packages/rs-sdk-trusted-context-provider/Cargo.toml (1 hunks)
  • packages/rs-sdk/Cargo.toml (1 hunks)
  • packages/simple-signer/Cargo.toml (1 hunks)
  • packages/strategy-tests/Cargo.toml (1 hunks)
  • packages/token-history-contract/Cargo.toml (1 hunks)
  • packages/token-history-contract/package.json (1 hunks)
  • packages/wallet-lib/package.json (1 hunks)
  • packages/wallet-utils-contract/Cargo.toml (1 hunks)
  • packages/wallet-utils-contract/package.json (1 hunks)
  • packages/wasm-dpp/Cargo.toml (1 hunks)
  • packages/wasm-dpp/package.json (1 hunks)
  • packages/wasm-drive-verify/Cargo.toml (1 hunks)
  • packages/wasm-drive-verify/package.json (1 hunks)
  • packages/wasm-sdk/Cargo.toml (1 hunks)
  • packages/wasm-sdk/package.json (1 hunks)
  • packages/withdrawals-contract/Cargo.toml (1 hunks)
  • packages/withdrawals-contract/package.json (1 hunks)
  • scripts/release/bump_version.js (3 hunks)
  • scripts/release/release.sh (3 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
packages/platform-test-suite/**

📄 CodeRabbit inference engine (AGENTS.md)

packages/platform-test-suite/**: Keep end-to-end tests and helpers in packages/platform-test-suite
Keep all E2E tests exclusively in packages/platform-test-suite

Files:

  • packages/platform-test-suite/package.json
packages/rs-sdk-ffi/**

📄 CodeRabbit inference engine (AGENTS.md)

Keep iOS/FFI Rust SDK artifacts in packages/rs-sdk-ffi

Files:

  • packages/rs-sdk-ffi/Cargo.toml
packages/wasm-sdk/**

📄 CodeRabbit inference engine (CLAUDE.md)

Keep WASM SDK docs in sync (run generate_docs.py) when updating the WASM SDK

Files:

  • packages/wasm-sdk/Cargo.toml
  • packages/wasm-sdk/package.json
scripts/**

📄 CodeRabbit inference engine (AGENTS.md)

Place automation and helper scripts in scripts/

Files:

  • scripts/release/bump_version.js
  • scripts/release/release.sh
🧠 Learnings (16)
📚 Learning: 2024-12-05T09:29:38.918Z
Learnt from: shumkov
PR: dashpay/platform#2375
File: packages/rs-drive-abci/Cargo.toml:61-63
Timestamp: 2024-12-05T09:29:38.918Z
Learning: In the `drive-abci` package, avoid adding unused dependencies like `hashbrown` to `Cargo.toml`. The team relies on CI to detect dependency version issues.

Applied to files:

  • packages/rs-drive-abci/Cargo.toml
📚 Learning: 2025-01-19T07:36:46.042Z
Learnt from: QuantumExplorer
PR: dashpay/platform#2431
File: packages/rs-drive/Cargo.toml:55-60
Timestamp: 2025-01-19T07:36:46.042Z
Learning: The grovedb dependencies in packages/rs-drive/Cargo.toml and related files are intentionally kept at specific revisions rather than using the latest stable version, with plans to update them at a later time.

Applied to files:

  • packages/rs-drive-abci/Cargo.toml
  • packages/data-contracts/Cargo.toml
  • packages/rs-json-schema-compatibility-validator/Cargo.toml
  • packages/rs-sdk-ffi/Cargo.toml
  • packages/rs-platform-serialization-derive/Cargo.toml
  • packages/rs-sdk/Cargo.toml
  • packages/rs-platform-wallet/Cargo.toml
  • packages/rs-drive-proof-verifier/Cargo.toml
  • packages/rs-platform-value-convertible/Cargo.toml
  • packages/rs-platform-value/Cargo.toml
  • packages/rs-platform-versioning/Cargo.toml
  • packages/rs-platform-serialization/Cargo.toml
  • packages/rs-drive/Cargo.toml
  • packages/rs-context-provider/Cargo.toml
  • packages/rs-platform-version/Cargo.toml
  • packages/rs-sdk-trusted-context-provider/Cargo.toml
  • packages/wasm-drive-verify/Cargo.toml
📚 Learning: 2025-09-03T16:37:11.605Z
Learnt from: QuantumExplorer
PR: dashpay/platform#2756
File: packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_list/update_state_masternode_list/v0/mod.rs:11-11
Timestamp: 2025-09-03T16:37:11.605Z
Learning: In packages/rs-dpp/Cargo.toml, the abci feature already includes core_rpc_client, and core_rpc_client is defined as ["dep:dashcore-rpc"]. This means rs-drive-abci can access dashcore-rpc types through dpp when using the abci feature.

Applied to files:

  • packages/rs-drive-abci/Cargo.toml
  • packages/rs-dapi-client/Cargo.toml
  • packages/rs-sdk-ffi/Cargo.toml
📚 Learning: 2024-10-29T10:42:00.521Z
Learnt from: lklimek
PR: dashpay/platform#2277
File: packages/rs-dapi-client/Cargo.toml:22-22
Timestamp: 2024-10-29T10:42:00.521Z
Learning: In `packages/rs-dapi-client/Cargo.toml`, `backon` will not work without the `tokio-sleep` feature in our setup, so it's unnecessary to declare `tokio-sleep` as a separate feature in the `[features]` section.

Applied to files:

  • packages/rs-dapi-client/Cargo.toml
📚 Learning: 2025-09-12T13:18:08.661Z
Learnt from: CR
PR: dashpay/platform#0
File: AGENTS.md:0-0
Timestamp: 2025-09-12T13:18:08.661Z
Learning: Applies to packages/platform-test-suite/** : Keep end-to-end tests and helpers in packages/platform-test-suite

Applied to files:

  • packages/platform-test-suite/package.json
📚 Learning: 2025-09-12T13:18:08.661Z
Learnt from: CR
PR: dashpay/platform#0
File: AGENTS.md:0-0
Timestamp: 2025-09-12T13:18:08.661Z
Learning: Applies to packages/rs-sdk-ffi/** : Keep iOS/FFI Rust SDK artifacts in packages/rs-sdk-ffi

Applied to files:

  • packages/rs-sdk-ffi/Cargo.toml
📚 Learning: 2024-10-18T15:39:51.172Z
Learnt from: lklimek
PR: dashpay/platform#2254
File: packages/rs-sdk/src/sdk.rs:585-585
Timestamp: 2024-10-18T15:39:51.172Z
Learning: The 'platform' project uses Rust version 1.80, so code in 'packages/rs-sdk' can use features available in Rust 1.80, such as the `abs_diff()` method.

Applied to files:

  • packages/rs-sdk-ffi/Cargo.toml
  • packages/rs-platform-serialization-derive/Cargo.toml
  • packages/rs-sdk/Cargo.toml
  • packages/rs-platform-wallet/Cargo.toml
  • packages/rs-platform-value-convertible/Cargo.toml
  • packages/wasm-sdk/Cargo.toml
  • packages/rs-platform-value/Cargo.toml
  • packages/rs-platform-versioning/Cargo.toml
  • packages/rs-platform-serialization/Cargo.toml
  • packages/rs-platform-version/Cargo.toml
  • packages/rs-sdk-trusted-context-provider/Cargo.toml
📚 Learning: 2025-09-07T22:18:50.883Z
Learnt from: CR
PR: dashpay/platform#0
File: CLAUDE.md:0-0
Timestamp: 2025-09-07T22:18:50.883Z
Learning: Applies to packages/rs-sdk-ffi/**/*.{h,rs} : Follow unified SDK function prefixes: dash_core_sdk_* for Core, dash_sdk_* for Platform, dash_unified_sdk_* for unified APIs

Applied to files:

  • packages/rs-sdk-ffi/Cargo.toml
  • packages/rs-sdk/Cargo.toml
📚 Learning: 2024-10-09T00:22:57.778Z
Learnt from: shumkov
PR: dashpay/platform#2206
File: packages/rs-platform-version/src/version/protocol_version.rs:155-157
Timestamp: 2024-10-09T00:22:57.778Z
Learning: In the dashmate default configurations, the default protocol version for local networks has been removed, and an update mechanism for the protocol version in the consensus parameters has been implemented.

Applied to files:

  • packages/dashmate/package.json
📚 Learning: 2024-10-08T13:28:03.529Z
Learnt from: QuantumExplorer
PR: dashpay/platform#2227
File: packages/rs-drive-abci/src/platform_types/platform_state/mod.rs:141-141
Timestamp: 2024-10-08T13:28:03.529Z
Learning: When converting `PlatformStateV0` to `PlatformStateForSavingV1` in `packages/rs-drive-abci/src/platform_types/platform_state/mod.rs`, only version `0` needs to be handled in the match on `platform_state_for_saving_structure_default` because the changes are retroactive.

Applied to files:

  • packages/rs-platform-serialization-derive/Cargo.toml
  • packages/rs-platform-wallet/Cargo.toml
  • packages/rs-platform-value-convertible/Cargo.toml
  • packages/rs-platform-value/Cargo.toml
  • packages/rs-platform-versioning/Cargo.toml
  • packages/rs-platform-version/Cargo.toml
📚 Learning: 2025-03-11T09:39:23.071Z
Learnt from: shumkov
PR: dashpay/platform#2489
File: packages/rs-dpp/Cargo.toml:32-32
Timestamp: 2025-03-11T09:39:23.071Z
Learning: In the Dash Platform project, dependencies are currently managed using Git repository references with tags (repo+tag format in Cargo.toml) rather than published crates, as the team is not currently publishing crates to crates.io.

Applied to files:

  • packages/rs-sdk/Cargo.toml
📚 Learning: 2025-09-07T22:18:50.883Z
Learnt from: CR
PR: dashpay/platform#0
File: CLAUDE.md:0-0
Timestamp: 2025-09-07T22:18:50.883Z
Learning: Applies to packages/wasm-sdk/** : Keep WASM SDK docs in sync (run generate_docs.py) when updating the WASM SDK

Applied to files:

  • packages/wasm-sdk/Cargo.toml
  • packages/wasm-sdk/package.json
📚 Learning: 2025-09-03T14:42:29.958Z
Learnt from: thephez
PR: dashpay/platform#2754
File: packages/wasm-sdk/docs.html:1970-1971
Timestamp: 2025-09-03T14:42:29.958Z
Learning: In packages/wasm-sdk/, the docs.html file is auto-generated from api-definitions.json. Any documentation fixes should be made in api-definitions.json rather than directly in docs.html, as manual changes to docs.html would be overwritten during regeneration.

Applied to files:

  • packages/wasm-sdk/Cargo.toml
  • packages/wasm-sdk/package.json
📚 Learning: 2025-09-03T14:41:16.196Z
Learnt from: thephez
PR: dashpay/platform#2754
File: packages/wasm-sdk/AI_REFERENCE.md:766-766
Timestamp: 2025-09-03T14:41:16.196Z
Learning: In packages/wasm-sdk/, the AI_REFERENCE.md file is auto-generated from api-definitions.json. Any documentation fixes should be made in api-definitions.json rather than directly in AI_REFERENCE.md, as manual changes to AI_REFERENCE.md would be overwritten during regeneration.

Applied to files:

  • packages/wasm-sdk/Cargo.toml
  • packages/wasm-sdk/package.json
📚 Learning: 2024-10-03T11:51:06.980Z
Learnt from: shumkov
PR: dashpay/platform#2201
File: packages/rs-platform-version/src/version/v2.rs:1186-1188
Timestamp: 2024-10-03T11:51:06.980Z
Learning: In the `IdentityTransitionVersions` structure within `packages/rs-platform-version/src/version/v2.rs`, the field `credit_withdrawal` does not need the `identity_` prefix since it is already encompassed within identity state transitions.

Applied to files:

  • packages/withdrawals-contract/Cargo.toml
📚 Learning: 2025-07-28T20:00:08.502Z
Learnt from: QuantumExplorer
PR: dashpay/platform#2711
File: packages/wasm-sdk/AI_REFERENCE.md:771-783
Timestamp: 2025-07-28T20:00:08.502Z
Learning: In packages/wasm-sdk/AI_REFERENCE.md, the documentation correctly shows the actual SDK method signatures (including identityCreate and identityTopUp with their full parameter lists), which may differ from the UI inputs shown in fixed_definitions.json. The UI may collect fewer parameters from users while handling additional requirements internally.

Applied to files:

  • CHANGELOG.md
⏰ 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). (175)
  • GitHub Check: Rust packages (dashpay-contract) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Detect immutable structure changes
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (wasm-sdk) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Linting
  • GitHub Check: Build Docker images (Drive, drive, drive-abci) / Build Drive image
  • GitHub Check: Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image
  • GitHub Check: Build Docker images (DAPI, dapi, dapi) / Build DAPI image
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (dashpay-contract) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (wasm-sdk) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Linting
  • GitHub Check: Build Docker images (Drive, drive, drive-abci) / Build Drive image
  • GitHub Check: Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image
  • GitHub Check: Build Docker images (DAPI, dapi, dapi) / Build DAPI image
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (dashpay-contract) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (wasm-sdk) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Linting
  • GitHub Check: Build Docker images (Drive, drive, drive-abci) / Build Drive image
  • GitHub Check: Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image
  • GitHub Check: Build Docker images (DAPI, dapi, dapi) / Build DAPI image
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (dashpay-contract) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (wasm-sdk) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Linting
  • GitHub Check: Build Docker images (Drive, drive, drive-abci) / Build Drive image
  • GitHub Check: Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image
  • GitHub Check: Build Docker images (DAPI, dapi, dapi) / Build DAPI image
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (dashpay-contract) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (wasm-sdk) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Linting
  • GitHub Check: Build Docker images (Drive, drive, drive-abci) / Build Drive image
  • GitHub Check: Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image
  • GitHub Check: Build Docker images (DAPI, dapi, dapi) / Build DAPI image
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (dashpay-contract) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (wasm-sdk) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Linting
  • GitHub Check: Build Docker images (Drive, drive, drive-abci) / Build Drive image
  • GitHub Check: Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image
  • GitHub Check: Build Docker images (DAPI, dapi, dapi) / Build DAPI image
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (dashpay-contract) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (wasm-sdk) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Tests
  • GitHub Check: Build Docker images (Drive, drive, drive-abci) / Build Drive image
  • GitHub Check: Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image
  • GitHub Check: Build Docker images (DAPI, dapi, dapi) / Build DAPI image
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (dashpay-contract) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (wasm-sdk) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Tests
  • GitHub Check: Build Docker images (Drive, drive, drive-abci) / Build Drive image
  • GitHub Check: Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image
  • GitHub Check: Build Docker images (DAPI, dapi, dapi) / Build DAPI image
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (dashpay-contract) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (wasm-sdk) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Tests
  • GitHub Check: Build Docker images (Drive, drive, drive-abci) / Build Drive image
  • GitHub Check: Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image
  • GitHub Check: Build Docker images (DAPI, dapi, dapi) / Build DAPI image
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (dashpay-contract) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (wasm-sdk) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Tests
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (json-schema-compatibility-validator) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (rs-sdk-ffi) / Tests
  • GitHub Check: Build Docker images (Drive, drive, drive-abci) / Build Drive image
  • GitHub Check: Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image
  • GitHub Check: Build Docker images (DAPI, dapi, dapi) / Build DAPI image
  • GitHub Check: Build JS packages / Build JS
🔇 Additional comments (61)
packages/rs-platform-wallet/Cargo.toml (1)

3-3: LGTM.

Metadata-only bump; no API surface change.

packages/strategy-tests/Cargo.toml (1)

3-3: LGTM.

Version aligns with workspace.

packages/rs-drive-proof-verifier/Cargo.toml (1)

3-3: LGTM.

No feature/dependency drift introduced.

packages/rs-dapi-client/Cargo.toml (1)

3-3: LGTM.

No changes to features/targets; safe metadata update.

packages/dashpay-contract/package.json (1)

3-3: LGTM.

Contract package version synced with workspace.

packages/dapi/package.json (1)

4-4: Confirm OA3 docs reflect package.json version — manual check required

Script returned no output so I couldn't verify. Manually confirm doc/swaggerDef.js and any committed swagger.json include version '2.1.0-dev.4' (CI/scripts read package.json for the version).

packages/rs-drive-abci/Cargo.toml (1)

3-3: LGTM — version bump is consistent

Repo-wide check: all package manifests (Cargo.toml and package.json) are set to 2.1.0-dev.4; remaining differing occurrences are confined to lockfiles (Cargo.lock / package-lock.json) as dependency records — expected. No dependency changes observed.

packages/wasm-sdk/package.json (1)

3-3: Regenerate WASM SDK docs for version 2.1.0-dev.4.
Regenerate docs from api-definitions.json (do not hand-edit AI_REFERENCE.md or docs.html) and commit updated artifacts under packages/wasm-sdk (AI_REFERENCE.md, docs.html). Automated verification in the sandbox failed (error: "/dev/fd/63"); confirm the generated docs contain "2.1.0-dev.4" by running the included verification script locally.

packages/feature-flags-contract/Cargo.toml (1)

4-4: Version bump looks good

Crate version set to 2.1.0-dev.4; no other manifest changes. Ensure workspace publish flow/tagging matches this prerelease.

packages/rs-dpp/Cargo.toml (1)

3-3: Aligned to 2.1.0-dev.4

Looks consistent with the release. No feature/deps changes in this diff.

packages/dapi-grpc/Cargo.toml (1)

4-4: Version updated to 2.1.0-dev.4

Matches workspace prerelease scheme.

packages/wallet-utils-contract/Cargo.toml (1)

4-4: Version bump OK

Consistent with other contracts at 2.1.0-dev.4.

packages/wasm-drive-verify/package.json (1)

6-6: NPM package version set to 2.1.0-dev.4

Looks fine. Ensure the corresponding Cargo.toml for this package is also 2.1.0-dev.4 and that the build/publish pipeline pushes matching artifacts.

packages/dpns-contract/package.json (1)

3-3: Version bump OK

No other changes; aligns with monorepo version.

packages/js-dapi-client/package.json (1)

3-3: Approve — client lib version set to 2.1.0-dev.4.

All package.json versions are 2.1.0-dev.4. After merge run a workspace install to refresh lockfiles and ensure workspace:* deps resolve.

packages/rs-platform-value-convertible/Cargo.toml (1)

5-5: LGTM: crate version bumped to 2.1.0-dev.4.

No other manifest changes; fine for a metadata-only release. If any external crates depend on this by version (not path), ensure their constraints admit the pre-release tag.

packages/dashmate/package.json (1)

3-3: LGTM: package version set to 2.1.0-dev.4.

No script/deps changes. Remember to publish only after all workspace packages are bumped to the same dev version to avoid mixed installs.

packages/dapi-grpc/package.json (1)

3-3: LGTM: version bump only.

Nothing else changed; safe.

packages/rs-platform-versioning/Cargo.toml (1)

5-5: LGTM: proc-macro crate version bumped.

Pre-release is fine. Downstream crates should use path dependencies (as they do in this repo), so no further action expected.

packages/feature-flags-contract/package.json (1)

3-3: LGTM: version bump only.

No build/test changes; fine.

packages/bench-suite/package.json (1)

4-4: LGTM: version bump only.

Private package; no publish concerns.

packages/wasm-sdk/Cargo.toml (1)

3-3: Regenerate WASM SDK docs (docs.html & AI_REFERENCE.md) from packages/wasm-sdk/api-definitions.json and commit the changes. Automated check did not find packages/wasm-sdk/generate_docs.py (output: "generate_docs.py not found"); run the repo's doc generator and commit any diffs, or provide the correct generator path so I can re-run verification.

package.json (1)

3-3: LGTM — root and workspace bumped to 2.1.0-dev.4
Checked all package.json files: each reports 2.1.0-dev.4; no package.json remains at 2.0.0.

packages/wallet-utils-contract/package.json (1)

3-3: LGTM: version bump only.

No functional changes; aligns with workspace 2.1.0-dev.4.

packages/rs-sdk/Cargo.toml (1)

3-3: LGTM: crate version bump.

Manifest otherwise unchanged; no API impact.

packages/rs-platform-serialization-derive/Cargo.toml (1)

5-5: LGTM: derive crate version bump.

Proc-macro manifest stable; no behavior change.

packages/platform-test-suite/package.json (1)

4-4: LGTM: test suite version bump.

File remains private; E2E stays in packages/platform-test-suite per guidelines.

packages/simple-signer/Cargo.toml (1)

3-3: LGTM: crate version bump.

No other manifest changes.

packages/wasm-dpp/package.json (1)

3-3: LGTM: version bump only.

No dependency/script changes.

packages/dpns-contract/Cargo.toml (1)

4-4: LGTM: crate version bump.

Metadata-only change.

packages/rs-platform-version/Cargo.toml (1)

5-5: LGTM on metadata-only bump.

Pre-release format is valid for Cargo; no dependency changes. Ensure any external crates (if published) that depend on this one are coordinated.

packages/rs-platform-value/Cargo.toml (1)

5-5: LGTM.

Version aligns with workspace target; deps unchanged. No further action.

packages/js-evo-sdk/package.json (1)

3-3: LGTM; confirm build step before publish.

Version matches 2.1.0-dev.4. Please ensure “yarn build” (prepack) still passes with this release.

packages/masternode-reward-shares-contract/Cargo.toml (1)

4-4: LGTM.

Crate version updated; no other manifest changes.

packages/token-history-contract/package.json (1)

3-3: LGTM; Rust/JS package parity maintained.

Version matches the corresponding Cargo.toml (2.1.0-dev.4). Good cross-language consistency.

packages/js-grpc-common/package.json (1)

3-3: LGTM.

Metadata-only bump; scripts and deps unchanged.

packages/rs-sdk-trusted-context-provider/Cargo.toml (1)

3-3: LGTM.

Crate version bumped; dependency set unchanged (reqwest 0.12 with rustls).

packages/token-history-contract/Cargo.toml (1)

4-4: Version bump looks good; workspace-wide sync couldn't be confirmed

Sandbox verification failed with "/bin/bash: -c: line 14: conditional binary operator expected". Run the check below locally and paste the output.

#!/usr/bin/env python3
import os, sys, json, re

TARGET = "2.1.0-dev.4"
mismatch = []
pkgjson_found = False
cargo_found = False

for root, _, files in os.walk("."):
    for name in files:
        if name == "package.json":
            pkgjson_found = True
            path = os.path.join(root, name)
            try:
                with open(path, "r", encoding="utf-8") as fh:
                    data = json.load(fh)
                v = data.get("version")
                if v is not None and v != TARGET:
                    mismatch.append((path, v))
            except Exception as e:
                print(f"Error parsing {path}: {e}", file=sys.stderr)

for root, _, files in os.walk("."):
    if "Cargo.toml" in files:
        cargo_found = True
        path = os.path.join(root, "Cargo.toml")
        try:
            with open(path, "rb") as fh:
                data = None
                try:
                    import tomllib as toml
                    fh.seek(0)
                    data = toml.load(fh)
                except Exception:
                    try:
                        import tomli as toml
                        fh.seek(0)
                        data = toml.load(fh)
                    except Exception:
                        fh.seek(0)
                        text = fh.read().decode("utf-8", errors="ignore")
                        pkg_section = False
                        ver = None
                        for line in text.splitlines():
                            if line.strip().startswith("[package]"):
                                pkg_section = True
                                continue
                            if pkg_section:
                                m = re.match(r'\s*version\s*=\s*["\']([^"\']+)["\']', line)
                                if m:
                                    ver = m.group(1)
                                    break
                                if line.strip().startswith("["):
                                    break
                        data = {"package": {"version": ver}} if ver else {}
                pkg = data.get("package", {})
                v = pkg.get("version")
                if v and v != TARGET:
                    mismatch.append((path, v))
        except Exception as e:
            print(f"Error parsing {path}: {e}", file=sys.stderr)

if not pkgjson_found:
    print("No package.json files found.", file=sys.stderr)
if not cargo_found:
    print("No Cargo.toml files found.", file=sys.stderr)

for p, v in mismatch:
    print(f"Mismatch: {p} -> {v}")

sys.exit(0 if not mismatch else 1)
packages/check-features/Cargo.toml (1)

3-3: LGTM on package version.

Tooling crate; safe metadata update.

packages/withdrawals-contract/Cargo.toml (1)

4-4: Version bump OK.

No dependency drift introduced.

packages/masternode-reward-shares-contract/package.json (1)

3-3: Package version bump looks consistent.

Nothing else changed; OK for the dev.4 release line.

packages/dashpay-contract/Cargo.toml (1)

4-4: LGTM on version update.

No feature/deps adjustments; metadata-only.

packages/rs-dapi-grpc-macros/Cargo.toml (1)

4-4: Macro crate version bump approved — no version-pinned deps found.

rg check returned: "No version-pinned deps found (expected)".

packages/data-contracts/Cargo.toml (1)

4-4: Action: verify/update stray 2.0.0 dependency references found by audit.

Found matches — align to the intended bump or confirm they should remain:

  • packages/wasm-drive-verify/Cargo.toml:37 — indexmap = { version = "2.0.0" }
  • packages/wasm-drive-verify/Cargo.toml:39 — bincode = { version = "2.0.0-rc.3" }
  • packages/rs-sdk/Cargo.toml:25 — rustls-pemfile = { version = "2.0.0" }
packages/rs-sdk-ffi/Cargo.toml (1)

3-3: Approve: FFI crate version bump verified — no stray iOS/FFI artifacts found outside packages/rs-sdk-ffi

rg output shows many false positives (e.g. ".to.be.a" in JS tests). Actual FFI header/libs (e.g. packages/rs-sdk-ffi/include/dash_sdk_ffi.h and XCFramework artifacts) are under packages/rs-sdk-ffi; swift-sdk only references/symlinks/copies them via scripts. No action required.

packages/keyword-search-contract/package.json (1)

3-3: LGTM: package.json bumped to 2.1.0-dev.4.
If publishing to npm, consider publishConfig.tag = "next" (or similar) so prereleases don’t land under “latest.”

packages/rs-drive/Cargo.toml (1)

4-4: LGTM: drive crate version 2.1.0-dev.4.
Grovedb pins remain at the known revs; no changes—good.

packages/rs-json-schema-compatibility-validator/Cargo.toml (1)

3-3: LGTM: version to 2.1.0-dev.4.
Self-dev-dep via path + features remains valid.

packages/rs-context-provider/Cargo.toml (1)

3-3: LGTM: version updated to 2.1.0-dev.4.
No other manifest changes.

packages/keyword-search-contract/Cargo.toml (1)

4-4: LGTM: crate version 2.1.0-dev.4.
Matches package.json; good cross-ecosystem consistency.

packages/wasm-dpp/Cargo.toml (1)

3-3: LGTM: version bump aligns with workspace.
wasm-bindgen is pinned to =0.2.100 (Line 21). Ensure all scripts referencing wasm-bindgen match this version to avoid cargo/script drift.

Quick check:

packages/dash-platform-balance-checker/Cargo.toml (1)

3-3: LGTM — crate version bumped to 2.1.0-dev.4
packages/dash-platform-balance-checker/Cargo.toml updated to 2.1.0-dev.4; no other manifest changes seen in this PR. Repo-wide verification script errored with a Python SyntaxError (escaped '!='). Re-run the corrected check or manually verify there are no mismatched versions across Cargo.toml/package.json files.

packages/rs-platform-serialization/Cargo.toml (1)

5-5: Version bump looks fine; verify workspace toolchain alignment.

Crate version bump to 2.1.0-dev.4 is consistent. Since the changelog mentions "update rust to 1.89", please confirm the workspace rust-toolchain/rust-version also reflects 1.89 and CI images are updated accordingly, as this crate inherits rust-version from the workspace.

packages/withdrawals-contract/package.json (1)

3-3: LGTM: package version updated to 2.1.0-dev.4.

No functional changes. Ensure any paired Rust manifests for this package were also bumped to avoid mixed versions in the workspace.

CHANGELOG.md (2)

1-18: Changelog entry is comprehensive; date/tag look correct.

Compare link v2.0.0...v2.1.0-dev.4 and date 2025-09-18 align with the release. No structural issues.


66-69: Confirm toolchain upgrade note matches repo config.

Entry says “update rust to 1.89”; please ensure rust-toolchain.toml and CI runners use 1.89 to avoid mismatch during releases.

scripts/release/release.sh (2)

68-72: Correct integration with bump_version.js.

Passing --target-version when provided is the right behavior; confirms deterministic bumps.

Please ensure scripts/release/bump_version.js actually supports --target-version and rejects mismatched --type/--target-version combinations.


74-74: cargo metadata flag update is fine.

No behavior change; keeps the Rust workspace ready for subsequent steps. Ensure cargo is available in release environments.

scripts/release/bump_version.js (3)

82-82: LGTM: centralized arg parsing

Switching to parseArgs simplifies the main flow. No issues.


118-123: Sanity-check propagation: re-run verification (script failed)

Verification errored: "/bin/bash: -c: line 10: conditional binary operator expected". Re-run this POSIX-safe check from the repo root and paste the output.

#!/usr/bin/env bash
set -euo pipefail

root_js_version=$(jq -r '.version' package.json)

echo "root_js_version=$root_js_version"
echo "Verifying package.json versions..."
found=0
while IFS= read -r -d $'\0' f; do
  v=$(jq -r '.version // empty' "$f")
  if [ -n "$v" ] && [ "$v" != "$root_js_version" ]; then
    printf 'Mismatch: %s -> %s (root: %s)\n' "$f" "$v" "$root_js_version"
    found=1
  fi
done < <(find . -type f -name 'package.json' -not -path '*/node_modules/*' -not -path '*/dist/*' -not -path '*/build/*' -print0)
[ "$found" -eq 0 ] && echo "OK"

echo
echo "Verifying Cargo package versions (best-effort)…"
rg -nUP '(?s)^\[package\].*?^version\s*=\s*"([^"]+)"' --glob 'Cargo.toml' \
  | awk -v root="$root_js_version" -F':' '
  {
    file=$1; sub(/:.*/,"",file);
    match($0,/version\s*=\s*"([^"]+)"/,m);
    v=m[1];
    if (v != root) { printf("Mismatch: %s -> %s (root: %s)\n", file, v, root); found=1 }
  }
  END { exit(found?1:0) }' || echo "OK (or review mismatches above)"

19-55: Verify script routing and flags between release.sh and bump_version.js

  • scripts/release/release.sh (lines ~66–72): when TARGET_VERSION is set it calls bump_version.js with --target-version (line 69); otherwise it invokes bump_version.js with only the positional RELEASE_TYPE.
  • No usages of the short '-v' flag were found in the repo.
  • Repo-wide check for other callers passing positional target/version failed due to a PCRE2 regex error during the run; cannot conclusively rule out other call sites — re-run the positional-invocation search or allow a follow-up run with a corrected command.

pauldelucia
pauldelucia previously approved these changes Sep 18, 2025
Copy link
Member

@pauldelucia pauldelucia left a comment

Choose a reason for hiding this comment

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

See CodeRabbit comments, other than that LGTM

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
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: 0

🧹 Nitpick comments (1)
packages/dashmate/configs/getConfigFileMigrationsFactory.js (1)

1106-1109: Prefer sourcing images from defaults instead of hardcoding

To keep migrations aligned with default configs and reduce future churn, consider reading the image from base (or the resolved default for the config) rather than hardcoding tags.

Proposed minimal change (use base config values):

-            options.platform.drive.abci.docker.image = 'dashpay/drive:2-dev';
-            options.platform.dapi.api.docker.image = 'dashpay/dapi:2-dev';
+            options.platform.drive.abci.docker.image = base.get('platform.drive.abci.docker.image');
+            options.platform.dapi.api.docker.image = base.get('platform.dapi.api.docker.image');

If you want per-config specificity (name/group-aware), switch the iterator to ([name, options]) and resolve via getDefaultConfigByNameOrGroup(name, options.group).

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 16ce0e5 and f840c92.

📒 Files selected for processing (2)
  • packages/dash-spv/package.json (1 hunks)
  • packages/dashmate/configs/getConfigFileMigrationsFactory.js (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/dash-spv/package.json
🧰 Additional context used
📓 Path-based instructions (1)
packages/**/**/*.{js,ts,jsx,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

packages/**/**/*.{js,ts,jsx,tsx}: Adhere to ESLint with Airbnb/TypeScript configs for JS/TS code
Use camelCase for JS/TS variables and functions
Use PascalCase for JS/TS classes
Prefer kebab-case filenames within JS packages

Files:

  • packages/dashmate/configs/getConfigFileMigrationsFactory.js
⏰ 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). (178)
  • GitHub Check: Rust packages (wasm-sdk) / Formatting
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (dapi-grpc) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (dapi-grpc) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Tests
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (dapi-grpc) / Check each feature
  • GitHub Check: Rust packages (drive) / Tests
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (drive) / Unused dependencies
  • GitHub Check: Rust packages (drive) / Linting
  • GitHub Check: Rust packages (wallet-utils-contract) / Unused dependencies
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (wasm-sdk) / Formatting
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (dapi-grpc) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (dapi-grpc) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Tests
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (dapi-grpc) / Check each feature
  • GitHub Check: Rust packages (drive) / Tests
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (drive) / Unused dependencies
  • GitHub Check: Rust packages (wallet-utils-contract) / Unused dependencies
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (wasm-sdk) / Formatting
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (dapi-grpc) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (dapi-grpc) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Tests
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (dapi-grpc) / Check each feature
  • GitHub Check: Rust packages (drive) / Tests
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (drive) / Unused dependencies
  • GitHub Check: Rust packages (wallet-utils-contract) / Unused dependencies
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (wasm-sdk) / Formatting
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (dpns-contract) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (dapi-grpc) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (dapi-grpc) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Tests
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (dapi-grpc) / Check each feature
  • GitHub Check: Rust packages (drive) / Tests
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (drive) / Unused dependencies
  • GitHub Check: Rust packages (wallet-utils-contract) / Unused dependencies
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (wasm-sdk) / Formatting
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (dpns-contract) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (dapi-grpc) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (dapi-grpc) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Tests
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (dapi-grpc) / Check each feature
  • GitHub Check: Rust packages (drive) / Tests
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (drive) / Unused dependencies
  • GitHub Check: Rust packages (wallet-utils-contract) / Unused dependencies
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (wasm-sdk) / Formatting
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (dpns-contract) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (dapi-grpc) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (dapi-grpc) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Tests
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (dapi-grpc) / Check each feature
  • GitHub Check: Rust packages (drive) / Tests
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (drive) / Unused dependencies
  • GitHub Check: Rust packages (wallet-utils-contract) / Unused dependencies
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (wasm-sdk) / Formatting
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (dpns-contract) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (dapi-grpc) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (dapi-grpc) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Tests
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (dapi-grpc) / Check each feature
  • GitHub Check: Rust packages (drive) / Tests
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (drive) / Unused dependencies
  • GitHub Check: Rust packages (wallet-utils-contract) / Unused dependencies
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (wasm-sdk) / Formatting
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (dpns-contract) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (dapi-grpc) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (dapi-grpc) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Tests
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (dapi-grpc) / Check each feature
  • GitHub Check: Rust packages (drive) / Tests
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (drive) / Unused dependencies
  • GitHub Check: Rust packages (wallet-utils-contract) / Unused dependencies
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (wasm-sdk) / Formatting
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (dpns-contract) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (dapi-grpc) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (dapi-grpc) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Tests
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (dapi-grpc) / Check each feature
  • GitHub Check: Rust packages (drive) / Tests
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (drive) / Unused dependencies
  • GitHub Check: Rust packages (wallet-utils-contract) / Unused dependencies
  • GitHub Check: Build JS packages / Build JS
  • GitHub Check: Rust packages (wasm-sdk) / Formatting
  • GitHub Check: Rust packages (dpns-contract) / Tests
  • GitHub Check: Rust packages (dpns-contract) / Linting
  • GitHub Check: Rust packages (dpns-contract) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Unused dependencies
  • GitHub Check: Rust packages (wasm-sdk) / Linting
  • GitHub Check: Rust packages (dapi-grpc) / Formatting
  • GitHub Check: Rust packages (drive-abci) / Check each feature
  • GitHub Check: Rust packages (dapi-grpc) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Tests
  • GitHub Check: Rust packages (drive-abci) / Formatting
  • GitHub Check: Rust packages (dapi-grpc) / Check each feature
  • GitHub Check: Rust packages (drive) / Tests
  • GitHub Check: Rust packages (drive-abci) / Unused dependencies
  • GitHub Check: Rust packages (drive-abci) / Linting
  • GitHub Check: Rust packages (drive) / Unused dependencies
  • GitHub Check: Rust packages (wallet-utils-contract) / Unused dependencies
  • GitHub Check: Build JS packages / Build JS
🔇 Additional comments (1)
packages/dashmate/configs/getConfigFileMigrationsFactory.js (1)

1106-1109: Confirm intent: unconditionally set Drive/DAPI images to 2-dev for all configs

The migration in packages/dashmate/configs/getConfigFileMigrationsFactory.js unconditionally sets options.platform.drive.abci.docker.image = 'dashpay/drive:2-dev' and options.platform.dapi.api.docker.image = 'dashpay/dapi:2-dev' for every config (lines 1106–1109). The file contains mixed precedent — some dev migrations set '*-dev' images unconditionally (e.g., 944–947, 1038–1040) while others gate by network (e.g., 891–894). Confirm whether overriding mainnet/base configs is intended; if not, gate this change (options.network === NETWORK_TESTNET/NETWORK_LOCAL) or restrict it to dev profiles.

@shumkov shumkov merged commit ac0e18f into v2.1-dev Sep 19, 2025
294 of 305 checks passed
@shumkov shumkov deleted the release_2.1.0-dev.4 branch September 19, 2025 04:36
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.

3 participants