Skip to content

Release v0.8.0: HWPX writeback round-trip 검증 (verify_hwpx_roundtrip)#24

Merged
DanMeon merged 4 commits into
mainfrom
feature/v0.8.0
Jun 21, 2026
Merged

Release v0.8.0: HWPX writeback round-trip 검증 (verify_hwpx_roundtrip)#24
DanMeon merged 4 commits into
mainfrom
feature/v0.8.0

Conversation

@DanMeon

@DanMeon DanMeon commented Jun 21, 2026

Copy link
Copy Markdown
Owner

Summary

v0.8.0 — parse 한 Document 를 HWPX 로 저장했을 때 IR 의미가 보존되는지 검증하는 Document.verify_hwpx_roundtrip() 표면을 추가한다.

  • Document.verify_hwpx_roundtrip() -> RoundtripReport — 현재 문서를 HWPX 로 직렬화 → 재파싱 후 상류 diff_documents 로 원본 대비 IR 차이 측정. ok: bool + differences: list[str] (불변 ok == not differences). 직렬화·재파싱 실패는 ValueError.
  • rhwp.RoundtripReport public 모델 (frozen=True / extra="forbid").
  • 보존 boundary 확대: v0.7.0 의 텍스트·문단 → 상류 diff_documents 가 실제 비교하는 필드 (표 cell·캡션·page_break, 그림 크기·캡션, char_shape·lineseg, PageDef, 리소스·BinData count).
  • 상류 v0.7.13 ~ v0.7.16 sync 흡수 (pin 7d9aae7f).
  • additive only — IR schema "1.1" 불변, Cargo.toml 0.7.0 → 0.8.0 (pyproject 는 dynamic 추종).

검증: pytest -m "not slow" 606 passed / 2 skipped, clippy -D warnings clean, test_view_baseline 2/2 byte-equal, lint_docs 0 위반.

Why

parse → HWPX 저장의 충실도를 사용자가 프로그램으로 검출하는 표면 — RAG / 포맷 변환 파이프라인의 안전장치다. v0.7.0 이 연 writeback 의 보존 boundary 가 상류 round-trip 비교 (diff_documents) 성숙으로 표·그림·char_shape 까지 확대 가능해진 시점에 맞춰 확장한다.

Related Issues

  • 구현 중 발견한 legacy 도형 (polygon / ellipse / arc / curve) 의 hp:shapeComment 미직렬화를 상류 edwardkim/rhwp#1451 로 보고 (제안 패치 round-trip diff 0 실측 후 원복). verify_hwpx_roundtrip 이 이 손실을 검출하며, spec 영구 비목표 (도형 보존 = 상류 진행 의존) 로 명시.

🤖 Generated with Claude Code

DanMeon and others added 4 commits June 21, 2026 03:45
현재 Document 를 HWPX 로 직렬화·재파싱 후 상류 diff_documents 로 IR 차이를
측정해 RoundtripReport (ok + differences) 반환. 보존 boundary 를 v0.7.0 의
텍스트·문단에서 diff_documents 가 실제 비교하는 필드 (표 cell·캡션·page_break,
그림 크기·캡션, char_shape·lineseg, PageDef, 리소스·BinData count) 로 확대.
additive only — IR schema "1.1" 불변, Cargo.toml 0.7.0 유지. v0.8.0 spec·ADR
Draft, AC-1~AC-6 회귀 7 테스트 포함.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
render_common_shape_xml 경유 도형 (ellipse/arc/polygon/curve/chart/ole) 이 hp:shapeComment 를
미방출하는 #1392 후속 누락. 제안 패치 적용 시 round-trip diff 0 실측 검증 후 external/rhwp 원복.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
verify_hwpx_roundtrip 구현은 선행 커밋에 있고, 본 커밋은 release 문서만 확정함.
Cargo.toml 0.7.0 → 0.8.0 (pyproject.toml 은 dynamic 자동 추종), spec·ADR frontmatter Frozen 전환, 구현 로그 migration.md 신규, CHANGELOG Unreleased → 0.8.0 확정.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
headless macOS PNG 렌더 hang (CoreText IPC) 이 v0.7.13 에서 해결되고 현재 pin
7d9aae7f (v0.7.16+36) 이 fix 를 포함하므로, 4083a27 의 비활성화를 되돌려
test-other-os 매트릭스에 macos-latest 를 복원함. 관련 upstream 이슈 문서를
RESOLVED Frozen 으로 전환.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@DanMeon DanMeon merged commit 81f58bb into main Jun 21, 2026
17 checks passed
@DanMeon DanMeon deleted the feature/v0.8.0 branch June 21, 2026 05:31
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