Skip to content

0.24.0: drop PyMuPDF and xgen-contextifier — xgen-pdf + vendored raw layer - #8

Merged
CocoRoF merged 1 commit into
mainfrom
feat/drop-pymupdf
Sep 21, 2026
Merged

CocoRoF merged 1 commit into
mainfrom
feat/drop-pymupdf

Conversation

@CocoRoF

@CocoRoF CocoRoF commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Removes the AGPL chain from xgen-edit2docs.

  • pdf_to_md / render/rasterize run on xgen-pdf (pdfium via pypdfium2, BSD/Apache) with the same call surface.
  • The lossless raw OOXML layer is vendored as xgen_edit2docs.raw from xgen-contextifier 0.9.0 (Apache-2.0, same authors). No dependency on xgen-contextifier remains, so pymupdf no longer reaches any consumer (xgen-agent-runtime, xgen-workflow).
  • olefile declared directly (previously indirect).
  • Tests importing fitz switched to xgen_pdf. Full suite: 939 passed, 1 pre-existing skip, in an environment where neither fitz nor xgen_contextifier is importable.

Consumers to follow: xgen-agent-runtime 4.37.0 (pin bump), xgen-workflow (pin bump).

🤖 Generated with Claude Code

…vendored raw layer

- pdf_to_md / rasterize now run on xgen-pdf (pdfium): same API surface
  (get_text dict/blocks, find_tables, get_drawings, get_pixmap, new_page,
  insert_image, tobytes).
- The lossless raw OOXML layer (open_raw, OpcPackage, ChartModel, ...)
  is vendored as xgen_edit2docs.raw from xgen-contextifier 0.9.0
  (Apache-2.0), so edit2docs no longer depends on xgen-contextifier, which
  required pymupdf. olefile is declared directly (it came via that path).
- Tests that imported fitz use xgen_pdf. 939 tests pass with neither
  fitz nor xgen_contextifier importable.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@CocoRoF
CocoRoF merged commit 03d654e into main Sep 21, 2026
4 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