Skip to content

Split into 3 packages + Docxodus engine + OIDC publishing (v0.2.0)#22

Merged
JSv4 merged 2 commits into
mainfrom
packaging-optional-engines
May 23, 2026
Merged

Split into 3 packages + Docxodus engine + OIDC publishing (v0.2.0)#22
JSv4 merged 2 commits into
mainfrom
packaging-optional-engines

Conversation

@JSv4
Copy link
Copy Markdown
Owner

@JSv4 JSv4 commented May 23, 2026

Summary

  • Restructure the repo into three separately-published PyPI packages: python-redlines (pure-Python core), python-redlines-ooxmlpowertools (legacy engine binary), and python-redlines-docxodus (new default engine binary). Engines are now optional extras: pip install python-redlines[docxodus], [ooxmlpowertools], or [all].
  • Add DocxodusEngine — a .NET 8 fork of Open-XML-PowerTools (Docxodus) with move detection, format-change detection, and improved table handling. Made the default in the README.
  • Switch the release workflow to PyPI Trusted Publishing (OIDC) via pypa/gh-action-pypi-publish; removes the long-lived PYPI_API_TOKEN and runs the publish job in the pypi environment matching three pending publishers configured on PyPI.
  • Bump version to 0.2.0 (single source: packages/core/src/python_redlines/__about__.py, read by both binary packages).

Test plan

  • Editable install of all three packages succeeds locally
  • README Quick Start runs end-to-end with DocxodusEngine → valid .docx, 9 revisions, Reviewer author
  • Legacy XmlPowerToolsEngine path still works; stdout matches Revisions found: 9
  • Comparison-settings kwargs (detect_moves, simplify_move_markup, detail_threshold, case_insensitive) accepted
  • EngineNotInstalledError raised with correct install hint when companion package missing
  • CI passes on this PR
  • After merge: tag v0.2.0, create GitHub Release, confirm publish workflow uploads all wheels to PyPI via OIDC

JSv4 added 2 commits May 22, 2026 21:13
Replace twine + PYPI_API_TOKEN with pypa/gh-action-pypi-publish and
id-token OIDC exchange. Publish job runs in the `pypi` environment to
match the trusted-publisher records configured for all three projects.
@JSv4 JSv4 merged commit ffa5202 into main May 23, 2026
13 checks passed
@JSv4 JSv4 deleted the packaging-optional-engines branch May 23, 2026 02:22
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