Skip to content

Prepare json2xml 8.0.1 security release and changelog - #457

Merged
vinitkumar merged 1 commit into
masterfrom
release/8.0.1
Oct 15, 2026
Merged

vinitkumar merged 1 commit into
masterfrom
release/8.0.1

Conversation

@vinitkumar

@vinitkumar vinitkumar commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Why

PR #456 is merged and excludes urllib3 releases affected by CVE-2026-97687, CVE-2026-97688, and CVE-2026-97689. Prepare the next Python patch release with a complete changelog and clear publication checks.

Changes

  • Bump json2xml to 8.0.1 in pyproject.toml, json2xml/init.py, and uv.lock; no dependency versions change.
  • Add matching unreleased entries to HISTORY.rst and RELEASE_NOTES.md, including advisory links and severity, compatibility, upgrade instructions, validation results, and PR fix: require urllib3 2.8.0 for security fixes #456.
  • Use v8.0.0 as the GitHub generated-changelog baseline; intervening rust-v* tags belong to the separately versioned accelerator.
  • Document the release process: combine generated changes with the current curated notes, verify the release commit and package metadata, publish once through the existing release-triggered PyPI workflow, then verify the registry and a fresh installation.
  • Update the architecture documentation to reflect the changelog and publication checks.

Validation

  • make check-all: Ruff and ty passed; 509 tests passed, 149 optional Rust tests skipped; 100% statement coverage.
  • uv lock --check --offline: passed.
  • uv audit --locked: no known vulnerabilities or adverse project statuses in 17 packages.
  • uv build: wheel and source distribution built.
  • Both distributions verified as version 8.0.1, Requires-Python >=3.11, Requires-Dist urllib3>=2.8.0.
  • Twine metadata checks passed for both distributions.
  • lat check and git diff --check passed.

The security-fix PR passed all 37 reported hosted checks plus Snyk and Read the Docs statuses before merge, including the stable Python 3.15 matrix. This release preparation must pass its own hosted CI. Native Rust tests remain unavailable locally because Cargo is absent; no Rust source or version changed.

Publication status

The user requested a scheduled release and complete changelog. Publication date/time has not yet been specified. Keep the release marked unreleased until that timing is set; update both date markers and final hosted validation before tagging/publishing. No tag, GitHub release, or PyPI upload has been created by this PR.

Summary by Sourcery

Prepare the unreleased json2xml 8.0.1 security release with the urllib3 fix, synchronized package metadata, and documented release checks.

Bug Fixes:

  • Require urllib3 2.8.0 or later to prevent installations from using releases affected by three upstream security advisories.

Enhancements:

  • Prepare the unreleased 8.0.1 release metadata and document compatibility, upgrade guidance, validation results, and the Python changelog baseline.
  • Clarify release and publication procedures, including pre-publication checks and post-publication verification.

Build:

  • Bump the Python package version to 8.0.1 and update the lockfile accordingly.

Documentation:

  • Update release history, release notes, contribution guidance, and architecture documentation for the 8.0.1 security release and publication process.

@sourcery-ai

sourcery-ai Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Prepares the unreleased json2xml 8.0.1 security patch by updating package metadata and the locked urllib3 requirement, adding synchronized advisory and validation notes, and documenting the Python release/changelog and publication verification process. Review should confirm version consistency, security and lockfile accuracy, note completeness, and that no tag or publication is implied before scheduling.

Flow diagram for the unreleased json2xml 8.0.1 publication process

flowchart TD
    A[Update json2xml to 8.0.1] --> B[Keep release marked unreleased]
    B --> C[Run make check-all]
    C --> D[Run uv lock --check --offline]
    D --> E[Run uv audit --locked]
    E --> F[Run uv build and Twine metadata checks]
    F --> G[Verify hosted CI and set publication date]
    G --> H[Create Python v8.0.1 release]
    H --> I[PyPI workflow]
    I --> J[Verify PyPI registry]
    J --> K[Verify fresh installation]
Loading

File-Level Changes

Change Details Files
Bump the Python package to 8.0.1 while preserving dependency resolution except for the security minimum.
  • Update project and runtime version declarations.
  • Regenerate the lockfile so urllib3 resolves to 2.8.0 with matching hashes.
  • Keep Python and optional accelerator compatibility requirements unchanged.
pyproject.toml
json2xml/__init__.py
uv.lock
Add coordinated unreleased release notes documenting the urllib3 security release.
  • Record the three advisories, severities, affected behavior, fixed version, and upgrade guidance.
  • Document compatibility, validation results, PR fix: require urllib3 2.8.0 for security fixes #456, and the v8.0.0-to-v8.0.1 changelog baseline.
  • Keep publication date, final hosted validation, tag, and upload pending scheduling.
HISTORY.rst
RELEASE_NOTES.md
Document the release and publication workflow alongside the package architecture.
  • Clarify that Python changelogs compare against Python tags rather than rust-v* tags.
  • Document release verification, the release-triggered PyPI workflow, registry checks, and fresh-install verification.
  • Describe the unreleased state and required publication-time updates.
CONTRIBUTING.rst
lat.md/architecture.md

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T09:12:39.148872Z 342bd92 PR opened
🔒 Security Review ✅ Completed 2026-10-15T09:12:46.067536Z 342bd92 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@codecov

codecov Bot commented Oct 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (a7adcaa) to head (342bd92).

Additional details and impacted files
@@            Coverage Diff            @@
##            master      #457   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            7         7           
  Lines         1032      1032           
=========================================
  Hits          1032      1032           
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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 342bd9244a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CONTRIBUTING.rst
Comment on lines +200 to +201
#. Replace the unreleased markers with the release date and publish the
GitHub release against the verified commit using the matching ``v*`` tag.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Verify the dated release commit before publishing

When maintainers follow these steps literally, replacing the tracked unreleased markers requires a new commit after the previously selected commit passed hosted CI, yet this step then instructs them to publish against the “verified commit.” The dated commit is therefore unverified (or the published tag omits the required date changes); require committing the final markers and waiting for that exact commit's checks before creating the release.

Useful? React with 👍 / 👎.

@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 reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

@vinitkumar
vinitkumar merged commit dc25e19 into master Oct 15, 2026
40 checks passed
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