Skip to content

Relax lxml upper bound to <7#46

Merged
airmang merged 1 commit into
airmang:mainfrom
rolee74:relax-lxml-upper-bound
Jul 9, 2026
Merged

Relax lxml upper bound to <7#46
airmang merged 1 commit into
airmang:mainfrom
rolee74:relax-lxml-upper-bound

Conversation

@rolee74

@rolee74 rolee74 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Why

The current pin lxml>=4.9,<6 makes pip install python-hwpx fail on Python 3.14: lxml 5.x has no prebuilt wheels for 3.14, so pip falls back to a source build (which fails without a libxml2 toolchain). lxml 6.x does ship 3.14 wheels, but the <6 bound excludes it.

Evidence that lxml 6 works

Tested on Windows, Python 3.14.x + lxml 6.0.2 (installed with pip install --no-deps python-hwpx):

  • Full test suite: 1274 passed, 0 failed (54 skipped = Hancom Office / macOS oracle tests, 1 xfailed = pre-existing expected failure test_unedited_paragraph_model_roundtrip_is_byte_stable)
  • Real-world usage: document authoring via hwpx.authoring Builder API (headings/paragraphs/tables/lists/images), save_to_path() + verify() all green — we ship python-hwpx as an optional dependency of a Claude Code plugin (visionit-harness-kit) for md→hwpx delivery conversion, and currently have to document a --no-deps workaround for 3.14 users.

Change

One line: "lxml>=4.9,<6""lxml>=4.9,<7".

(한국어 요약: lxml 5.x 는 Python 3.14 휠이 없어 현재 핀으로는 3.14 에서 설치가 실패합니다. lxml 6.0.2 로 전체 테스트 1274건 통과를 확인해 상한을 <7 로 완화 제안드립니다.)

@airmang airmang left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

CI 확인 완료: lxml 6.1.1로 Python 3.10/3.11/3.12에서 mypy·pyright·pytest 모두 통과했습니다. 코드가 사용하는 lxml API는 모두 안정적인 코어 API라 6.x와의 호환 리스크도 없습니다. 감사합니다 🙏

@airmang airmang merged commit 1b608ab into airmang:main Jul 9, 2026
3 checks passed
airmang added a commit that referenced this pull request Jul 9, 2026
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.

2 participants