Skip to content

[alamode] パッケージ完成: テスト・CI・ドキュメント追加(#155 候補) - #200

Open
k-yoshimi wants to merge 2 commits into
developfrom
feat/155-alamode
Open

[alamode] パッケージ完成: テスト・CI・ドキュメント追加(#155 候補)#200
k-yoshimi wants to merge 2 commits into
developfrom
feat/155-alamode

Conversation

@k-yoshimi

Copy link
Copy Markdown
Collaborator

概要

apps/alamode は既にビルドスクリプト(config/default の FFTW モード、config/intel の MKL モード、CMake install ターゲットが無いため手動でバイナリをコピーする install)が存在していましたが、テスト・CI・ドキュメントが未整備でした。本 PR でそれらを補完し、#155 候補として完成させます。

追加内容

  • テスト: runtest.sh + clean_test.sh(tenes テンプレート)と test/test.sh(スモークテスト)。alm / anphon と各ツール(analyze_phonons, dfc2, fc_virtual, parse_fcsxml, qe2alm)が導入されたことを確認。
  • CI: アプリマトリクスに alamode を追加。per-app override .github/scripts/alamode.sh で Boost / Eigen3 / spglib を導入し、SPGLIB_ROOT / FFTW3_ROOT をシステムライブラリに向ける(既存の config/default/preprocess.sh がこれらを要求するため。ohtaka では MateriApps の spglib / fftw ツールが供給する想定)。
  • ドキュメント: en/ja Sphinx appendix に登録(toctree + README stub、MIT、MateriApps en app/155 / ja app/151)。

既存スクリプトについて

ビルド系(config/default, config/intel, install.sh, download.sh など)は既存のものをそのまま尊重し、変更していません。ALAMODE は CMake の install ターゲットを実行ファイルに持たないため、config/default/install.shbuild/alm/almbuild/anphon/anphonbuild/tools/* を手動でコピーする設計になっており、これは上流の構成と整合しています。

検証方針

ohtaka は 2026-07-14 09:00 まで保守中のため、本 PR は GitHub Actions(ubuntu, g++/gfortran + boost/eigen3/spglib/fftw/lapack/openmpi)でクリーンルーム・ビルド検証します。CI が通ることを確認後、保守明けに ohtaka の Intel oneAPI(config/intel, MKL)での実機ビルドを追記します。

🤖 Generated with Claude Code

apps/alamode already had the build scripts (config/default FFTW mode,
config/intel MKL mode, manual binary-copy install) but no test, no CI
coverage, and no docs entry. Complete it:

- add runtest.sh + clean_test.sh (copied from the tenes template) and a
  test/test.sh smoke test asserting the alm/anphon binaries and the tools
  (analyze_phonons, dfc2, fc_virtual, parse_fcsxml, qe2alm) were installed
- add alamode to the CI app matrix with a per-app override
  (.github/scripts/alamode.sh) that installs Boost/Eigen3/spglib and points
  SPGLIB_ROOT/FFTW3_ROOT at the system libs (the default preprocess requires
  them, as provided on ohtaka by the MateriApps spglib/fftw tools)
- register alamode in the en/ja Sphinx appendix (toctree + README stub)

ohtaka is in maintenance until 2026-07-14; CI (ubuntu, gfortran/g++ +
boost/eigen3/spglib/fftw/lapack/openmpi) validates the build now, and the
ohtaka Intel-oneAPI run (config/intel) will be added after maintenance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QaWKJsSQqCakkMEKZpJcvP
- config/{default,intel}/preprocess.sh: guard SPGLIB_ROOT (and FFTW3_ROOT
  for the default FFTW build) with a clear ${VAR:?...} message instead of a
  cryptic "unbound variable" crash under set -u when the deps are not set up
- sphinx: align the en/ja appendix summaries with apps/alamode/README*.md

The MateriApps en app/155 vs ja app/151 ids were both verified to resolve to
the ALAMODE page (the normal en/ja id difference), so they are left as-is.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QaWKJsSQqCakkMEKZpJcvP
@k-yoshimi

Copy link
Copy Markdown
Collaborator Author

AI レビューサイクル結果(Codex + Antigravity)

CI(クリーンルーム・ビルド検証)

ubuntu-24.04 / ubuntu-22.04 の両 alamode ジョブが成功。システムの Boost/Eigen3/spglib/FFTW3/LAPACK/OpenMPI で configure → build → install(手動バイナリコピー)→ runtest(alm/anphon+各ツールの存在確認)まで通ることを確認。

Phase 1 — Codex(コード correctness)

  • must_fix: なし
  • should_fix(1件, 検証の上 不要と判断): en app/155 と ja app/151 の MateriApps ID 不一致の指摘 → 両 URL を実際に取得し、en/ja とも ALAMODE の正規ページであることを確認(MateriApps は en/ja で別 ID を持つ通常仕様)。既存 README の値と一致しており変更不要。
  • optional(test がランタイム起動まで検証しない点): 本パッケージの契約は手動コピー結果の確認であり許容。

Phase 2 — Antigravity(ドキュメント / ワークフロー)

  • must_fix_docs: なし
  • should_fix / workflow_risk(対応済み):
    • Sphinx stub の SUMMARY を既存 apps/alamode/README*.md の文言に整合。
    • config/{default,intel}/preprocess.shset -u 下で SPGLIB_ROOT/FFTW3_ROOT を未設定時に「unbound variable」で不親切にクラッシュする点 → ${VAR:?...} で明示的なメッセージ(spglib/fftw ツールの導入 or 変数 export を案内)を出すガードを追加。

補足(既存スクリプトの扱い)

本 PR は既存の未完成 apps/alamode(ビルド系は保守担当者作)を テスト・CI・ドキュメントの追加で完成させるものです。ビルド系は原則そのまま尊重し、上記の preprocess ガードのみ堅牢性向上のため最小限追加しました(デフォルト挙動は不変で、未設定時に分かりやすく失敗するだけ)。

検証方針

ohtaka は 2026-07-14 09:00 まで保守中のため CI(ubuntu クリーンルーム)で検証済み。保守明けに ohtaka の Intel oneAPI(config/intel, MKL)実機ビルドを追記します。

Codex の must_fix・Antigravity の must_fix_docs はいずれも無し。指摘は対応済み/検証の上不要と判断。CI 再実行の結果を確認のうえ収束とします。

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