diff --git a/CLAUDE.md b/CLAUDE.md index 70a7c44..722a0c2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,7 +9,7 @@ Python-Redlines generates `.docx` redline/tracked-changes documents by comparing Two comparison engines are available: - **XmlPowerToolsEngine** — wraps Open-XML-PowerTools WmlComparer (original engine). Deprecated as of 1.0.0: instantiating it emits a `DeprecationWarning`. Still published. -- **DocxodusEngine** — wraps Docxodus, a modernized .NET 10.0 fork with better move detection. +- **DocxodusEngine** — wraps Docxodus v14.1.0, a modernized .NET 10.0 fork with better move detection. Runs `DocxDiff`, its only algorithm — Docxodus v11.0.0 deleted `WmlComparer`. ## Monorepo structure — three published packages diff --git a/README.md b/README.md index 8baf02f..2b5a719 100644 --- a/README.md +++ b/README.md @@ -164,9 +164,9 @@ argument raises `ValueError`. ### 1. `DocxodusEngine` — the default **[Docxodus](https://github.com/JSv4/Docxodus)** is an actively-maintained .NET 10.0 document -toolchain. Its `DocxDiff` algorithm models the document as an intermediate representation rather -than a stream of runs, which lets it attribute a change to the exact paragraph, cell, row, or -section it touched: +toolchain. Python-Redlines 1.1.0 bundles Docxodus v14.1.0. Its `DocxDiff` algorithm +models the document as an intermediate representation rather than a stream of runs, +which lets it attribute a change to the exact paragraph, cell, row, or section it touched: - **Structure-aware** — tracks table cell and row properties, section properties, and header and footer content that a run-stream diff reports coarsely or not at all diff --git a/docxodus b/docxodus index 5ab5ac8..1b05750 160000 --- a/docxodus +++ b/docxodus @@ -1 +1 @@ -Subproject commit 5ab5ac87bbc81d5348ea2f2de87f6237d479d4b2 +Subproject commit 1b05750689afc432d24a5e9fd9849a01899a9994 diff --git a/packages/core/src/python_redlines/__about__.py b/packages/core/src/python_redlines/__about__.py index 7452bc7..52b09ba 100644 --- a/packages/core/src/python_redlines/__about__.py +++ b/packages/core/src/python_redlines/__about__.py @@ -1,4 +1,4 @@ # SPDX-FileCopyrightText: 2024-present U.N. Owen # # SPDX-License-Identifier: MIT -__version__ = "1.0.1" +__version__ = "1.1.0" diff --git a/packages/docxodus/README.md b/packages/docxodus/README.md index d94c0f3..36d176f 100644 --- a/packages/docxodus/README.md +++ b/packages/docxodus/README.md @@ -3,6 +3,8 @@ Compiled Docxodus redline engine binary for [`python-redlines`](https://pypi.org/project/python-redlines/). +Version 1.1.0 bundles the engine built from Docxodus v14.1.0. + This package only contains the platform-specific engine binary. Install it via the `python-redlines` extra rather than directly: diff --git a/tests/test_docxodus_engine.py b/tests/test_docxodus_engine.py index abb961a..1113884 100644 --- a/tests/test_docxodus_engine.py +++ b/tests/test_docxodus_engine.py @@ -1,12 +1,13 @@ import io import re import zipfile +import xml.etree.ElementTree as ET import pytest from python_redlines.engines import DocxodusEngine -# Measured against the Docxodus v12.1.0 binary on tests/fixtures/. Docxodus +# Measured against the Docxodus v14.1.0 binary on tests/fixtures/. Docxodus # v11.0.0 removed WmlComparer, so DocxDiff is the only algorithm; the count is # neither the 9 the old default reported nor the 11 the old opt-in reported. EXPECTED_REVISIONS = 10 @@ -71,6 +72,37 @@ def test_docxodus_output_is_a_valid_docx_with_tracked_changes(original_docx, mod assert "