Skip to content

Node upstream との report / XLSX 出力 parity を強化する#19

Merged
igapyon merged 1 commit intodevelfrom
tiga0421hbe
Apr 20, 2026
Merged

Node upstream との report / XLSX 出力 parity を強化する#19
igapyon merged 1 commit intodevelfrom
tiga0421hbe

Conversation

@igapyon
Copy link
Copy Markdown
Owner

@igapyon igapyon commented Apr 20, 2026

概要

Node upstream 版との byte-level parity を強化し、report 出力、WBS XLSX、SVG、OOXML の差分を縮小します。

この変更では、dependency.xml を対象にした report directory / report bundle ZIP / monthly SVG ZIP の Node upstream 比較を追加し、report bundle の entry 順も upstream に合わせています。あわせて、Excel IO の formula / freezePane 対応、Project XLSX の列幅・boolean data validation・Options sheet、WBS XLSX / weekly SVG の出力差分を補強しています。

変更内容

  • Excel IO / OOXML

    • XlsxCellLikeformula を追加
    • XlsxSheetLikefreezePane を追加
    • XlsxFreezePaneLike を追加
    • worksheet XML の build / parse で formula cell と freeze pane を扱うように変更
    • inline string の xml:space、空セル、数値表現、worksheet XML 整形を調整
    • package XML の出力整形を調整
  • Project XLSX

    • Project / Tasks / Resources / Assignments / Calendars / NonWorkingDays / Options sheet の列幅を追加
    • boolean 入力用の data validation を追加
    • Options sheet を BooleanChoice / Meaning 形式へ変更
    • Project sheet の ScheduleFromStart に boolean data validation を追加
    • Project XLSX のテストで列幅、data validation、Options sheet の内容を確認
  • WBS XLSX

    • UID / ID / WBS / outline level 用の identifier cell を追加
    • task label に summary / milestone / task の prefix と outline level に応じた indent を反映
    • progress / detail / task cell の wrap や null 表現を調整
    • header / title / legend / reference cell の style を upstream 寄りに調整
  • SVG report

    • weekly SVG の axis title を削除
    • weekly SVG の viewport trim、label placement、axis/grid/today line の位置を調整
    • weekly SVG の dependency connector 出力を追加・調整
    • weekly SVG の label 幅推定と chart origin / width 計算を追加
  • report bundle / parity

    • report bundle の entry 順を upstream と同じ wbs.xlsx, wbs.md, mermaid.mmd, daily.svg, weekly.svg, monthly-calendar/*.svg に変更
    • Node upstream の report bundle ZIP 出力 helper を追加
    • Node upstream の monthly SVG ZIP 出力 helper を追加
    • MikuprojectNodeParityTest に report bundle ZIP / monthly SVG ZIP の byte-level 比較を追加
    • 既存の report directory parity test の Node 実行処理を共通化
  • ドキュメント / TODO

    • TODO.md に再開ポイントを追加
    • report directory / report bundle ZIP / monthly SVG ZIP の byte-level parity 済みを記録
    • Project XLSX の残差分として editable cell styling、sheet theme、Project sheet の Settings section / merged range を明記
    • docs/remaining-migration-items.mddocs/upstream-followup-log.md に現在地を反映

テスト

このコミットでは、以下の確認観点が追加・更新されています。

  • MikuprojectNodeParityTest

    • report directory の byte-level parity
    • report bundle ZIP の byte-level parity
    • monthly SVG ZIP の byte-level parity
  • ExcelIoTest

    • formula / freezePane の OOXML package export / import
  • ProjectXlsxTest

    • Project XLSX の列幅
    • boolean data validation
    • Options sheet の BooleanChoice / Meaning

確認済み

TODO に以下の確認済み内容を記録しています。

  • dependency.xml の report directory / report bundle ZIP / monthly SVG ZIP は Node upstream と byte-level parity 済み
  • WBS XLSX / SVG / report ZIP 系の大きな簡略化は対応済み
  • mvn package と opt-in Node parity が通っている

残課題

  • ProjectXlsxExport* の editable cell styling
  • sheet theme
  • Project sheet の Settings section / merged range
  • projectpatchjson の warning / blocker details の upstream 構造比較

## 概要

Node upstream 版との byte-level parity を強化し、report 出力、WBS XLSX、SVG、OOXML の差分を縮小します。

この変更では、`dependency.xml` を対象にした report directory / report bundle ZIP / monthly SVG ZIP の Node upstream 比較を追加し、report bundle の entry 順も upstream に合わせています。あわせて、Excel IO の formula / freezePane 対応、Project XLSX の列幅・boolean data validation・Options sheet、WBS XLSX / weekly SVG の出力差分を補強しています。

## 変更内容

- Excel IO / OOXML
  - `XlsxCellLike` に `formula` を追加
  - `XlsxSheetLike` に `freezePane` を追加
  - `XlsxFreezePaneLike` を追加
  - worksheet XML の build / parse で formula cell と freeze pane を扱うように変更
  - inline string の `xml:space`、空セル、数値表現、worksheet XML 整形を調整
  - package XML の出力整形を調整

- Project XLSX
  - Project / Tasks / Resources / Assignments / Calendars / NonWorkingDays / Options sheet の列幅を追加
  - boolean 入力用の data validation を追加
  - Options sheet を `BooleanChoice` / `Meaning` 形式へ変更
  - Project sheet の `ScheduleFromStart` に boolean data validation を追加
  - Project XLSX のテストで列幅、data validation、Options sheet の内容を確認

- WBS XLSX
  - UID / ID / WBS / outline level 用の identifier cell を追加
  - task label に summary / milestone / task の prefix と outline level に応じた indent を反映
  - progress / detail / task cell の wrap や null 表現を調整
  - header / title / legend / reference cell の style を upstream 寄りに調整

- SVG report
  - weekly SVG の axis title を削除
  - weekly SVG の viewport trim、label placement、axis/grid/today line の位置を調整
  - weekly SVG の dependency connector 出力を追加・調整
  - weekly SVG の label 幅推定と chart origin / width 計算を追加

- report bundle / parity
  - report bundle の entry 順を upstream と同じ `wbs.xlsx`, `wbs.md`, `mermaid.mmd`, `daily.svg`, `weekly.svg`, `monthly-calendar/*.svg` に変更
  - Node upstream の report bundle ZIP 出力 helper を追加
  - Node upstream の monthly SVG ZIP 出力 helper を追加
  - `MikuprojectNodeParityTest` に report bundle ZIP / monthly SVG ZIP の byte-level 比較を追加
  - 既存の report directory parity test の Node 実行処理を共通化

- ドキュメント / TODO
  - `TODO.md` に再開ポイントを追加
  - report directory / report bundle ZIP / monthly SVG ZIP の byte-level parity 済みを記録
  - Project XLSX の残差分として editable cell styling、sheet theme、Project sheet の Settings section / merged range を明記
  - `docs/remaining-migration-items.md` と `docs/upstream-followup-log.md` に現在地を反映

## テスト

このコミットでは、以下の確認観点が追加・更新されています。

- `MikuprojectNodeParityTest`
  - report directory の byte-level parity
  - report bundle ZIP の byte-level parity
  - monthly SVG ZIP の byte-level parity

- `ExcelIoTest`
  - formula / freezePane の OOXML package export / import

- `ProjectXlsxTest`
  - Project XLSX の列幅
  - boolean data validation
  - Options sheet の `BooleanChoice` / `Meaning`

## 確認済み

TODO に以下の確認済み内容を記録しています。

- `dependency.xml` の report directory / report bundle ZIP / monthly SVG ZIP は Node upstream と byte-level parity 済み
- WBS XLSX / SVG / report ZIP 系の大きな簡略化は対応済み
- `mvn package` と opt-in Node parity が通っている

## 残課題

- `ProjectXlsxExport*` の editable cell styling
- sheet theme
- Project sheet の Settings section / merged range
- `projectpatchjson` の warning / blocker details の upstream 構造比較
@igapyon igapyon merged commit 7eca2d6 into devel Apr 20, 2026
@igapyon igapyon deleted the tiga0421hbe branch April 20, 2026 22:44
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