[2.9.1] - 2026-04-27
상호운용성(interop) 버그 묶음 릴리즈입니다. 외부 기여자들이 보고하고 수정한 세 가지 문제를 정리합니다.
수정
HwpxOxmlTableCell._ensure_text_element와ensure_run_style내 modifier가 lxml 엘리먼트 상에서 또한ET.SubElement를 호출해TypeError를 발생시키던 경로를 기본 헬퍼_append_child로 정리했습니다. 이제cell.text = ...와paragraph.add_run(..., bold=True)가 monkey-patch 없이 정상 동작합니다 (#30, @hhy827)._paragraph_id/_object_id/_memo_id가uuid4().int & 0xFFFFFFFF로부터 signed int32 범위를 벗어나는 값을 약 50% 확률로 생성하던 문제를 수정했습니다. id 값을 signed 32-bit 양수 범위(0 <= x < 2^31)로 클램프해 downstream 소비자와의 상호운용성을 확보했습니다 (#34, @seonghoony).HwpxDocument.new()의 seed로 쓰이는 번들Skeleton.hwpx에 signed int32 범위를 벗어나는<hp:p id="3121190098">가 포함돼 있던 문제를 수정했습니다 (#35, @seonghoony).pyproject.toml에 PEP 639licenseexpression과 같이 남아 있던 legacyLicense :: OSI Approved :: Apache Software Licenseclassifier를 제거해setuptools>=77에서의 소스 설치/바이너리 빌드 실패를 해소했습니다.
추가
- 위 세 버그에 대한 회귀 테스트를 추가했습니다 (
tests/test_document_formatting.py,tests/test_id_generator_range.py,tests/test_skeleton_template_ids.py). - 머지된 기여를 인정하는
CONTRIBUTORS.md를 추가하고README.md/CONTRIBUTING.md에서 연결했습니다.
변경
- License relicensed to Apache-2.0 (sole author, full consent). Previous license terms no longer apply to future releases.