Remove the FrontISTR_manual submodule and the leftover manual assets
Close #811 (closed)
目的
本 MR は 2 つの目的を含む。2 点目は 1 点目の調査中に発見した既存不具合であり、対象ファイル・対象ジョブが重なるため同一 MR にまとめている。
doc/FrontISTR_manualsubmodule の廃止と、マニュアル向けに残っていた不要ファイル・CI 定義の削除pagesジョブが生成する_redirectsのパースエラーの修正
変更内容
1. submodule の廃止
| コミット | 内容 |
|---|---|
| 2cc1c7ea | .gitmodules と doc/FrontISTR_manual の gitlink を削除 |
| cace114c | doc/create_docs.sh、doc/requirements.txt、.gitignore の doc/manuals 行を削除 |
いずれも 9ee22e4e(2020-11-13)で CI からマニュアルビルドが外れて以降、参照元が存在しない。
2. マニュアルリンクとリダイレクトの削除
| コミット | 内容 |
|---|---|
| 51dce5ce | public/index.html のマニュアル 2 リンク、doc/_redirects(145 ルール)、document ジョブを削除 |
public/index.html のマニュアルリンクは実体を持たず 404 を返していた。doc/_redirects はそれらを FrontISTR_manual 側へ転送するための定義であり、リンク削除により役割を失う。document ジョブは cp doc/_redirects public/_redirects のみを行っていたため、ジョブごと削除した。stages の document は doxygen ジョブが使用するため残している。
ユーザーマニュアルは FrontISTR_manual プロジェクト自身の GitLab Pages(カスタムドメイン https://manual.frontistr.com/ )で公開されており、本リポジトリ側に公開設定は存在しない。本 MR はマニュアルの公開に影響しない。
3. _redirects パースエラーの修正
| コミット | 内容 |
|---|---|
| f46c5630 | pages ジョブの deb 向けリダイレクト行を削除 |
削除した行は $(find . -name "FrontISTR_*.deb") を埋め込んでおり、hybrid 構成の deb が ubuntu2204 / ubuntu2404 の 2 つ存在するため 2 パスに展開され、1 行が 4 フィールドになっていた。この結果 _redirects 全体がパース不能となり、定義済みリダイレクトが 1 件も機能していなかった。
deb パッケージは https://pages.frontistr.com/release/deb/ から直接提供されているため、行を修復せず削除した。これにより残る Windows 向け zip のリダイレクト 2 件が本来の意図どおり機能する見込みである。
4. document イメージと CI/CD ドキュメントの整理
| コミット | 内容 |
|---|---|
| bcf67993 | docker/ci/Dockerfile.ubuntu2204 / .ubuntu2404 の document ターゲットから python3 python3-pip を削除 |
| 8691651f | doc/CICD/manual.md の記述を実態に合わせて更新 |
python3 / python3-pip は pip3 install -r doc/requirements.txt のために入っていたもので、document イメージの用途は doxygen の実行のみである。
注記:
.gitlab-ci.ymlの変数REGISTRYは上流レジストリregistry.gitlab.com/frontistr-commons/frontistrを指すため、docker/ci/Dockerfile.*の変更は本 MR のマージだけでは CI に反映されない。反映するにはdocker/ci/Makefileのdocumentターゲットでイメージをビルドし、レジストリへ push する必要がある(Developer 以上の権限が必要)。
タスク
-
pagesジョブに、_redirects生成直後の妥当性検証(全行が 3 フィールドであることの確認)を追加する
今回のパースエラーは、CI が動的生成する _redirects の健全性を検証する仕組みが無いため、長期間気づかれないまま放置されていた。同種の破綻を即座に検出できるようにしておきたい。
動作確認
個人 fork へ push し、CI パイプラインで確認した。
- パイプライン: https://gitlab.com/chikasuiro/FrontISTR/-/pipelines/2745508838 — success(39 ジョブ、1817 秒)
- build 8 / test 18 / package 12 すべて success(リグレッションなし)
- document ステージは
doxygen1 ジョブのみとなり success
ソースコード(.f90 / .c / .h)および CMake 関連ファイルへの変更はない。
レビュー時にご確認いただきたい点
pagesジョブは feature ブランチでは実行されない(only: [master, release])ため、修正後の_redirectsが GitLab Pages に受理されるかはマージ後に確認が必要です。curl https://pages.frontistr.com/_redirectsがパースエラーを返さないこと、および旧 zip URL が 301 を返すことをご確認ください。- 残した zip リダイレクト 2 行のパス接頭辞は
/FrontISTR/...です。実体ファイルは接頭辞なしのhttps://pages.frontistr.com/release/...と接頭辞ありのhttps://frontistr-commons.gitlab.io/FrontISTR/release/...の双方で 200 を返すため、接頭辞が不要である可能性があります。今回は挙動が未検証のため変更していません。