diff --git a/HISTORY.rst b/HISTORY.rst index 861dba4..bb60f7b 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,4 +1,11 @@ +7.1.1 / 2026-09-23 +================== + + * fix: include the JSON decoder's line and column in ``JSONReadError``, ``StringReadError``, and ``URLReadError`` messages, so the CLI reports where the input breaks instead of only that it is invalid + * fix: accept a UTF-8 byte order mark in file, URL, string, and stdin JSON input + * chore: fix the diagnostics ty 0.0.83 reports in tests and make the list-omission test compare its result + 7.1.0 / 2026-09-03 ================== diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 99ca620..2551df0 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,3 +1,29 @@ +# json2xml 7.1.1 + +Released 2026-09-23. + +## Highlights + +- Reader errors now carry the JSON decoder's line and column, so `json2xml-py` says where a document breaks: `Invalid JSON File: Expecting ',' delimiter: line 372 column 3 (char 8920)`. +- A UTF-8 byte order mark, as written by PowerShell and Notepad, no longer makes file, URL, string, or stdin input fail as invalid JSON. +- The test suite type-checks cleanly under ty 0.0.83. + +## Behaviour changes and migration guidance + +- `JSONReadError`, `StringReadError`, and `URLReadError` messages keep their existing prefixes and append the decoder message after a colon. Callers matching on the prefix are unaffected; callers comparing whole messages should match on the prefix. +- A leading U+FEFF in string input is dropped before parsing. No other input handling changed. + +## Package Versions + +- Python package: `json2xml==7.1.1` +- Rust accelerator: `json2xml-rs==0.6.0` (unchanged) +- Fast install: `pip install "json2xml[fast]==7.1.1"` + +## Verification + +The release passed Ruff, ty 0.0.83, and 658 Python tests with 100% statement coverage on CPython and PyPy 3.10. No Rust sources changed. + + # json2xml 7.1.0 Released 2026-09-03. diff --git a/json2xml/__init__.py b/json2xml/__init__.py index 55a3d4f..fbfb3ff 100644 --- a/json2xml/__init__.py +++ b/json2xml/__init__.py @@ -2,4 +2,4 @@ __author__ = """Vinit Kumar""" __email__ = "mail@vinitkumar.me" -__version__ = "7.1.0" +__version__ = "7.1.1" diff --git a/pyproject.toml b/pyproject.toml index c983727..e63405e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "json2xml" -version = "7.1.0" +version = "7.1.1" description = "Simple Python Library to convert JSON to XML" readme = "README.rst" requires-python = ">=3.10" diff --git a/uv.lock b/uv.lock index d39d34a..059c3f3 100644 --- a/uv.lock +++ b/uv.lock @@ -185,7 +185,7 @@ wheels = [ [[package]] name = "json2xml" -version = "7.1.0" +version = "7.1.1" source = { editable = "." } dependencies = [ { name = "defusedxml" },