Skip to content

chore: release json2xml 6.5.0#342

Merged
vinitkumar merged 4 commits into
masterfrom
release/json2xml-6.5.0
Jul 15, 2026
Merged

chore: release json2xml 6.5.0#342
vinitkumar merged 4 commits into
masterfrom
release/json2xml-6.5.0

Conversation

@vinitkumar

@vinitkumar vinitkumar commented Jul 15, 2026

Copy link
Copy Markdown
Owner

Summary

  • bump json2xml from 6.4.0 to 6.5.0 in package metadata and the public module version
  • require the already-published json2xml-rs>=0.4.2 accelerator from the fast extra
  • resolve and lock the published Rust 0.4.2 artifacts with uv
  • add Python and Rust flamegraph-guided performance results to the history and release notes

Performance

On the deterministic 5,000-record uv-managed CPython 3.15.0b3 workload, pure Python conversion improved from 83.0 ms to 57.2 ms (31.1%). The Rust 0.4.2 accelerator released first and improved from 6.007 ms to 5.632 ms (6.23%) with identical output.

Validation

  • 421 tests passed with 762/762 statements and exactly 100% coverage
  • Ruff and ty passed
  • wheel and sdist built successfully; Twine passed both artifacts
  • clean Python 3.15.0b3 install resolved json2xml==6.5.0 and published json2xml-rs==0.4.2
  • fast backend reported rust; CLI reported version 6.5.0
  • lat check passed

Summary by Sourcery

Release json2xml 6.5.0 with performance optimizations, updated fast-accelerator dependency, and refreshed release documentation and metadata.

Enhancements:

  • Improve pure Python JSON-to-XML serialization performance and document measured gains for the 5,000-record workload.
  • Align the fast extra with the published json2xml-rs>=0.4.2 Rust accelerator and lock resolved artifacts.
  • Update project metadata and public module version to 6.5.0.

Build:

  • Refresh uv lockfile to capture the 0.4.2 Rust artifacts for the accelerator.

Documentation:

  • Add detailed 6.5.0 release notes including performance tables, profiling flamegraphs, and verification details.

Tests:

  • Gate the Python suite on achieving exact 100% statement coverage as part of the 6.5.0 release process.

@sourcery-ai

sourcery-ai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Release prep for json2xml 6.5.0: bump the library’s public version, update the fast extra to require json2xml-rs 0.4.2, refresh uv lockfile to the new Rust accelerator artifacts, and add detailed 6.5.0 release notes, performance profiling references, and history entries.

File-Level Changes

Change Details Files
Document the 6.5.0 Python release, its performance improvements, and verification details.
  • Added a new json2xml 6.5.0 section describing highlights, performance metrics, and package versions.
  • Linked pre/post Python and Rust flamegraph SVGs as profiling evidence.
  • Documented the full verification matrix including Python, Rust, and install tests against Rust 0.4.2 wheels.
RELEASE_NOTES.md
Update project metadata to publish json2xml 6.5.0 and require the latest Rust accelerator in the fast extra.
  • Bumped the project version field from 6.4.0 to 6.5.0.
  • Raised the fast extra dependency requirement from json2xml-rs>=0.4.1 to json2xml-rs>=0.4.2.
pyproject.toml
Expose the new public json2xml version constant.
  • Updated the package version attribute from 6.4.0 to 6.5.0.
json2xml/__init__.py
Align history and lockfile with the 6.5.0 / Rust 0.4.2 release.
  • Extended the project history with an entry for the 6.5.0 release and its key changes.
  • Regenerated the uv lockfile to resolve and lock the json2xml-rs 0.4.2 artifacts and any associated dependency updates.
HISTORY.rst
uv.lock

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@codecov

codecov Bot commented Jul 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (d6f1100) to head (11f6e8f).

Additional details and impacted files
@@            Coverage Diff            @@
##            master      #342   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            7         7           
  Lines          759       759           
=========================================
  Hits           759       759           
Flag Coverage Δ
unittests 100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="HISTORY.rst" line_range="8" />
<code_context>
+  * perf: reduce pure Python serializer time by 31.1% on the deterministic 5,000-record benchmark through exact native-type dispatch
+  * perf: release ``json2xml-rs`` 0.4.2 with hybrid SIMD/word XML escape scanning and a 6.23% benchmark reduction
+  * fix: preserve numeric, string, dictionary, and sequence subclass behavior across the optimized Python dispatch paths
+  * test: require exactly 100% statement coverage from the complete Python suite and add dense Rust escape-scanner regression coverage
+  * chore: require ``json2xml-rs>=0.4.2`` from ``json2xml[fast]`` and validate release wheels before PyPI publication
+  * docs: add Python and Rust before/after flamegraphs, buffer-capacity measurements, and release performance notes
</code_context>
<issue_to_address>
**nitpick (typo):** Consider aligning "escape-scanner" wording with "escape scanning" used elsewhere for consistency.

Here you use "escape-scanner", while elsewhere you say "XML escape scanning"; choosing one phrasing and using it consistently across the docs would improve clarity.

```suggestion
  * test: require exactly 100% statement coverage from the complete Python suite and add dense Rust XML escape scanning regression coverage
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread HISTORY.rst Outdated
@vinitkumar
vinitkumar merged commit 32038e6 into master Jul 15, 2026
48 checks passed
@vinitkumar
vinitkumar deleted the release/json2xml-6.5.0 branch July 15, 2026 19:48
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.

1 participant