Skip to content

Conversation

@ckeshava
Copy link
Collaborator

High Level Overview of Change

release-4.3.1: update the patch version of the xrpl-py package and the CHANGELOG entry

Context of Change

This is a PR to create a new release. No functional changes have been made to the code in this PR.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactor (non-breaking change that only restructures code)
  • Tests (You added tests for code that already exists, or your new feature included in this PR)
  • Documentation Updates
  • Release

Did you update CHANGELOG.md?

  • Yes
  • No, this change does not impact library users

Test Plan

This is a PR to create a new release. No functional changes have been made to the code in this PR. No new tests are added either.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 12, 2025

Walkthrough

The pull request updates the project version from 4.3.0 to 4.3.1 in pyproject.toml and adds a CHANGELOG entry documenting the addition of encode_mptoken_metadata and decode_mptoken_metadata helpers for MPTokenMetadata encoding/decoding per XLS-89, and a fix for MPTCurrency binary-codec serialization.

Changes

Cohort / File(s) Summary
Version & Changelog
pyproject.toml, CHANGELOG.md
Bumped project version to 4.3.1 and added a 4.3.1 Unreleased changelog section documenting: (1) Added encode_mptoken_metadata and decode_mptoken_metadata helpers for MPTokenMetadata per XLS-89; (2) Fixed MPTCurrency binary-codec serialization issue.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Caller
  participant Helpers as encode_mptoken_metadata / decode_mptoken_metadata
  participant MPTokenMetadata
  participant BinaryCodec

  Note over Caller,Helpers: New helpers for MPTokenMetadata (XLS-89)

  Caller->>Helpers: encode_mptoken_metadata(MPTokenMetadata)
  Helpers->>MPTokenMetadata: read fields (XLS-89)
  Helpers->>BinaryCodec: serialize fields -> bytes
  BinaryCodec-->>Helpers: bytes
  Helpers-->>Caller: encoded bytes

  Caller->>Helpers: decode_mptoken_metadata(bytes)
  Helpers->>BinaryCodec: parse bytes -> fields
  BinaryCodec-->>Helpers: parsed fields
  Helpers->>MPTokenMetadata: construct object
  Helpers-->>Caller: MPTokenMetadata
Loading

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Suggested reviewers

  • pdp2121
  • Patel-Raj11
  • achowdhry-ripple

Poem

🐰 A tiny hop, a version bright,
I nibbled bytes and set them right.
Encode, decode — tokens sing,
XLS-89 gave them wing.
A changelog carrot for tonight. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and accurately describes the main change: updating the patch version for the 4.3.1 release of the xrpl-py package.
Description check ✅ Passed The description follows the template structure, includes all required sections with appropriate content, confirms CHANGELOG.md was updated, and clearly explains this is a release PR with no functional changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

kuan121
kuan121 previously approved these changes Nov 12, 2025
pdp2121
pdp2121 previously approved these changes Nov 12, 2025
@ckeshava ckeshava dismissed stale reviews from pdp2121 and kuan121 via 8d6b9c0 November 12, 2025 15:28
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: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d09e20e and 8d6b9c0.

📒 Files selected for processing (1)
  • CHANGELOG.md (2 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-09-15T15:54:25.836Z
Learnt from: ckeshava
Repo: XRPLF/xrpl-py PR: 866
File: xrpl/models/transactions/loan_set.py:158-181
Timestamp: 2025-09-15T15:54:25.836Z
Learning: In the xrpl-py codebase, validation logic for transaction fields is primarily handled by rippled (the C++ XRPL implementation) rather than being duplicated in the Python models. Python models should focus on basic structural validation rather than comprehensive field validation that rippled already performs.

Applied to files:

  • CHANGELOG.md
📚 Learning: 2025-06-04T22:17:47.164Z
Learnt from: ckeshava
Repo: XRPLF/xrpl-py PR: 814
File: xrpl/models/amounts/mpt_amount.py:54-64
Timestamp: 2025-06-04T22:17:47.164Z
Learning: For MPTIssue class in xrpl-py, the user ckeshava confirmed that a simple class implementation without BaseModel inheritance works correctly for their current requirements, even though other currency types in the same Union (IssuedCurrency, MPTCurrency, XRP) extend BaseModel.

Applied to files:

  • CHANGELOG.md
📚 Learning: 2025-06-04T22:17:47.822Z
Learnt from: ckeshava
Repo: XRPLF/xrpl-py PR: 814
File: xrpl/models/requests/vault_info.py:16-31
Timestamp: 2025-06-04T22:17:47.822Z
Learning: In the xrpl-py library, Request classes do not perform client-side validation on their contents. The library relies on the rippled node to return appropriate error codes for malformed requests, maintaining a consistent pattern across all Request models.

Applied to files:

  • CHANGELOG.md
🪛 markdownlint-cli2 (0.18.1)
CHANGELOG.md

21-21: Bare URL used

(MD034, no-bare-urls)

⏰ 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). (9)
  • GitHub Check: Integration test (3.14)
  • GitHub Check: Integration test (3.11)
  • GitHub Check: Integration test (3.13)
  • GitHub Check: Integration test (3.9)
  • GitHub Check: Integration test (3.10)
  • GitHub Check: Integration test (3.12)
  • GitHub Check: Integration test (3.8)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
CHANGELOG.md (1)

10-20: Changelog entry is well‑structured and properly documents breaking changes.

The new 4.3.1 section follows the Keep a Changelog format consistently. The breaking changes in lines 19–20 are clearly documented with explanations, which is appropriate for a patch release addressing XLS-89 standard compliance. The reference to PR #870 provides good traceability for the binary-codec fix.

- Removed snippets files from the xrpl-py code repository. Updated the README file to point to the correct location on XRPL.org.
- [Breaking change] Fix `MPTokenMetadata` type to adhere to the XLS-89 standard. Since XLS-89 is still in a forming state and undergoing changes, this breaking change is being released as a bug fix via patch version bump. If you are using `MPTokenMetadata` in your code, please verify that it adheres to the updated type definition.
- [Breaking change] Fix `validate_mptoken_metadata` to correctly validate MPTokenMetadata as per XLS-89 standard. Since XLS-89 is still in a forming state and undergoing changes, this breaking change is being released as a bug fix via patch version bump. If you are using `validateMPTokenMetadata` in your code, expect it to change as per the XLS-89 standard.
- Fixed the binary-codec issues pertaining to the serialization of the `MPTCurrency` rippled type. (Reference PR: https://github.com/XRPLF/xrpl-py/pull/870)
Copy link
Contributor

@coderabbitai coderabbitai bot Nov 12, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Wrap the bare URL in markdown link syntax.

Line 21 contains a bare URL that should be wrapped in proper markdown link format to comply with markdown best practices.

Apply this diff to fix the formatting:

-- Fixed the binary-codec issues pertaining to the serialization of the `MPTCurrency` rippled type. (Reference PR: https://github.com/XRPLF/xrpl-py/pull/870)
+- Fixed the binary-codec issues pertaining to the serialization of the `MPTCurrency` rippled type. ([Reference PR](https://github.com/XRPLF/xrpl-py/pull/870))
📝 Committable suggestion

‼️ 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.

Suggested change
- Fixed the binary-codec issues pertaining to the serialization of the `MPTCurrency` rippled type. (Reference PR: https://github.com/XRPLF/xrpl-py/pull/870)
- Fixed the binary-codec issues pertaining to the serialization of the `MPTCurrency` rippled type. ([Reference PR](https://github.com/XRPLF/xrpl-py/pull/870))
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

21-21: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In CHANGELOG.md around line 21, the PR reference is a bare URL; wrap it in
markdown link syntax so it displays as a proper link. Replace the bare URL with
a markdown link like [PR #870](https://github.com/XRPLF/xrpl-py/pull/870) (or
similar descriptive text) so the changelog uses proper markdown link formatting.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is not a critical suggestion. I will choose to ignore it for the paucity of time. We need to release this library to bring parity between the different programming languages client libraries.

Copy link
Contributor

Choose a reason for hiding this comment

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

@ckeshava, understood! No problem at all—I appreciate you prioritizing the release timeline. Best of luck with getting 4.3.1 out the door! 🚀


🧠 Learnings used
Learnt from: ckeshava
Repo: XRPLF/xrpl-py PR: 866
File: xrpl/models/transactions/loan_set.py:158-181
Timestamp: 2025-09-15T15:54:25.836Z
Learning: In the xrpl-py codebase, validation logic for transaction fields is primarily handled by rippled (the C++ XRPL implementation) rather than being duplicated in the Python models. Python models should focus on basic structural validation rather than comprehensive field validation that rippled already performs.

Learnt from: mvadari
Repo: XRPLF/xrpl-py PR: 759
File: tests/unit/models/transactions/test_account_delete.py:52-60
Timestamp: 2024-12-12T00:48:38.042Z
Learning: The credential ID format validation for xrpl-py is being tracked in issue #766 and should not be duplicated in other PRs.

@ckeshava
Copy link
Collaborator Author

Note to reviewers: I added a missing entry into the CHANGELOG file in a recent commit. @kuan121 @pdp2121

@ckeshava ckeshava requested a review from pdp2121 November 12, 2025 16:54
@ckeshava ckeshava merged commit 0b057e8 into XRPLF:main Nov 12, 2025
17 checks passed
@ckeshava
Copy link
Collaborator Author

Thanks for the quick reviews @kuan121 @pdp2121

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