ftp/arch/dcpam/ ディレクトリのメンテナンス手引
この文書について
この文書は ftp/arch/dcpam/ ディレクトリのメンテナンスの手引である.
このディレクトリに置かれている主な資源
ftp/arch/dcpam/ には, 主に以下の情報が置かれている.
- ディレクトリ管理の手引
- DCPAM のプロジェクト全体に関するページ
- リリースされた DCPAM の公開用ソースツリーとアーカイブ置場
- <URL:dcpam5>, <URL:dcpam4>, ...
- DCPAM ソースの Git リポジトリ
- 計算結果
- 雑多な資源置場
- メモ置場
- Rakefile, Makefile, Makefile.rd2html
- 主に, RD から HTML を生成するためのもの
各ディレクトリの詳細については, SIGEN.htm を参照のこと.
HTML 文書の管理方法
原則的に HTML ファイルは RD 形式のテキスト (以下 RD ファイルと呼ぶ) から自動生成するようにする. Makefile を RD ファイルと同じディレクトリに置くことで, 以下のコマンドで自動的に htm.ja, htm.en が生成される. RD の文法については, 地球流体電脳倶楽部 dcmodel プロジェクト: モデルプロジェクトのための最低限 rd -- rd ファイルの作成 を参照のこと.
$ make
ただし, カレントディレクトリ などでは, Makefile から Rakefile が呼び出されるようになっているため, 以下のコマンドで HTML 文書が生成される.
$ rake
- 原則的に, 実際に英語の文章を作成していなくとも, htm.ja と htm.en の 両方を作成できるような構造にしておく. (もちろん, 中身がない結果 htm.en が 作成されなくてもかまわない).
- 具体的には, 日本語の部分は =begin JA, =end JA で囲み, 共通部分は =begin と =end で, 英語の部分は =begin EN, =end EN で くくる.
dcpam ソースの展開とシンボリックリンクの方針
- ソースの公開は, dcpam/ 直下に dcpam<バージョン番号> としたディレクトリ
を作成する.
- 例: dcpam5/
- ソースは, Git リポジトリから git archive コマンドで展開したものを置く.
- git archive するためには, 展開の前にはタグを付ける必要がある.
タグの付け方については, Git タグの付け方 参照のこと.
git archive したソースは, Git タグ名と同名のディレクトリに格納する.
- git archive の詳細は, ソース展開の手順 参照のこと.
- 例: dcpam5/dcpam5-20090319
- git archive するためには, 展開の前にはタグを付ける必要がある.
タグの付け方については, Git タグの付け方 参照のこと.
git archive したソースは, Git タグ名と同名のディレクトリに格納する.
- ドキュメントが RD や RDoc などにより生成されるようになっている場合には, 展開されたソース内部でドキュメントの生成を行っておく.
- 展開されたディレクトリから, tar コマンドで tgz ファイルを作成しておく.
- 最新版には <dcpamバージョン番号>_latest, および <dcpamバージョン番号>_latest.tgz というシンボリックリンクを張る.
- トップのディレクトリからは, その最新版のシンボリックリンクを参照するようにする.
- 過去版が入手できるように, 過去版の tgz の入手とソースツリーを閲覧するための ページを用意する. ページは, ソース展開トップディレクトリ以下の index.htm と index.htm.en とする.
dcpam のバージョンに関して
- dcpam の構造に大幅な改変を加える場合, タグに含まれるバージョン番号を増やす. dcpam0 からスタートし, 順次 dcpam1, dcpam2, …と作っていく.
Git タグの付け方
ソースツリーのタグは, 日付を表すタグ (日付タグと呼ぶ) と, バージョン名を表すタグ (バージョン名タグと呼ぶ) の両方を付けることとする. バージョン名タグは必須ではない *1.
日付タグ バージョン名タグ ---------------------------------------- dcpam0-20040125 dcpam1-20040320 dcpam1-0_1 dcpam1-20040429 dcpam1-20040630 dcpam1-1_0 dcpam2-20040901 dcpam2-1_0 dcpam2-20050901 dcpam2-2_0 dcpam2-20050901-1 dcpam2-2_1 # 一日に複数回, 日付タグを設定する # 場合には, 接尾詞として "-1", "-2" # といったものを付記すること.
タグの付ける際には, Git 作業コピーのトップディレクトリで,
$ git tag -a dcpam5-20030901 -m "Snapshot on 2003/09/01." ^^^^^^^^^^^^^^^ ← これがタグ名となる.
等とする.
ソース展開の手順
ソース展開の手順として, まず手動での展開の手順を示す. Makefile を用いて自動化された展開の手順は, その後の ソース展開の手順 (自動) で示す.
展開の準備
展開のため, グループユーザと umask を設定する.
$ sg dcpam $ umask 002 ! group writable にする
展開するタグを確認する. Git の作業コピー内で, 以下のように コマンドした際, 以下のように表示されるのがタグである.
$ git tag Initial dcpam2-20050530: 1.8 dcpam2-20050207-1: 1.4 :
ソース展開の手順
git archive コマンドにより, 展開を行う. まず Git リポジトリに移動する.
$ cd /GFD_Dennou_Club/ftp/arch/dcpam/git_repos/dcpam.git
展開先のディレクトリを作成する.
$ mkdir /GFD_Dennou_Club/ftp/arch/dcpam/dcpam5/dcpam5-20090325
日付タグの場合には以下のように展開する.
$ git archive --format=tar --output=/GFD_Dennou_Club/ftp/arch/dcpam/dcpam5/dcpam5-20090325/archive.tar dcpam5-20090325
上の例では, /GFD_Dennou_Club/ftp/arch/dcpam/dcpam5/dcpam5-20090325/archive.tar が作成され, archive.tar にフラットにディレクトリ, ファイルが含まれている. archive.tar を展開し, dcpam5-20090325.tgz としてアーカイブし直す.
$ cd /GFD_Dennou_Club/ftp/arch/dcpam/dcpam5/dcpam5-20090325 $ tar xvf archive.tar $ rm archive.tar
ドキュメント, 依存関係ファイル, emacs tags ファイルの生成
展開したソースツリー以下でドキュメント等の生成を行う. 一度 configure したのち (ソースコードをコンパイルするわけでは ないので, 指定するライブラリは存在さえしていれば良い), make でドキュメント等を生成し, 最後に distclean で configure のキャッシュファイルなどを削除する.
$ cd dcpam5-20090325 $ ./configure \ --with-netcdf=/usr/lib/libnetcdf-ffc5.a \ --with-gtool5=/usr/lib/gtool5-ffc5/lib/libgtool5.a \ --with-ispack=/usr/lib/libisp-ffc5.a \ --with-spml=/usr/lib/spml-ssl2-ffc5/lib/libspml-ssl2.a \ (あるいは, $ bash compile_with_pkgs.sh) $ make doc $ make depend $ make tags $ make distclean
tgz 作成の手順
tgz を作成する.
$ cd .. $ tar cvzf dcpam5-20090325.tgz dcpam5-20090325
シンボリックリンクの貼り換え
古いシンボリックリンクを削除し, 新しいシンボリックリンクを作成.
$ rm dcpam5_latest ! 古いリンクを一旦削除 $ rm dcpam5_latest.tgz $ ln -s dcpam5-20090325 dcpam5_latest $ ln -s dcpam5-20090325.tgz dcpam5_latest.tgz
過去版アーカイブリストの更新
$ vi index.htm (書き換え作業) $ vi index.htm.en (書き換え作業)
dcpam トップページに記載される dcpam の最新バージョンの書き換え
$ cd .. $ vi index.rd (書き換え作業) $ make
以下は cvs 時代の文書
このディレクトリに置かれている主な資源
ftp/arch/dcpam/ には, 主に以下の情報が置かれている.
- ディレクトリ管理の手引
- DCPAM のプロジェクト全体に関するページ
- リリースされた DCPAM の公開用ソースツリーとアーカイブ置場
- DCPAM ソースの CVS リポジトリ
- 計算結果
- 雑多な資源置場
- メモ置場
- Makefile, Makefile.rd2html
- 主に, RD から HTML を生成するためのもの
各ディレクトリの詳細については, SIGEN.htm を参照のこと.
HTML 文書の管理方法
原則的に HTML ファイルは RD 形式のテキスト (以下 RD ファイルと呼ぶ) から自動生成するようにする. Makefile.rd2html を RD ファイルと同じディレクトリに置くことで, 以下のコマンドで自動的に htm, htm.en が生成される. RD の文法については, 地球流体電脳倶楽部 dcmodel プロジェクト: モデルプロジェクトのための最低限 rd -- rd ファイルの作成 を参照のこと.
$ make -f Makefile.rd2html
ただし, カレントディレクトリ などでは, Makefile から Makefile.rd2html が呼び出されるようになっているため, 以下のコマンドで HTML 文書が生成される.
$ make
- 原則的に, 実際に英語の文章を作成していなくとも, htm と htm.en の 両方を作成できるような構造にしておく. (もちろん, 中身がない結果 htm.en が 作成されなくてもかまわない).
- 具体的には, 日本語の部分は =begin JA, =end JA で囲み, 共通部分は =begin と =end で, 英語の部分は =begin EN, =end EN で くくる.
dcpam ソースの展開とシンボリックリンクの方針
- ソースの公開は, dcpam/ 直下に CVS プロジェクト名と同名のディレクトリ
を作成する.
- 例: dcpam5/
- ソースは, CVS リポジトリから cvs export コマンドで展開したものを置く.
- cvs export するためには, 展開の前には CVS タグを付ける必要がある. タグの付け方については, CVS タグの付け方 参照のこと. cvs export したソースは, CVS タグ名と同名のディレクトリに格納する.
- 例: dcpam5/dcpam5-20090319
- ドキュメントが RD や RDoc などにより生成されるようになっている場合には, 展開されたソース内部でドキュメントの生成を行っておく.
- 展開されたディレクトリから, tar コマンドで tgz ファイルを作成しておく.
- 最新版には <CVSプロジェクト名>_current, および <CVSプロジェクト名>_current.tgz というシンボリックリンクを張る.
- トップのディレクトリからは, その最新版のシンボリックリンクを参照するようにする.
- 過去版が入手できるように, 過去版の tgz の入手とソースツリーを閲覧するための ページを用意する. ページは, ソース展開トップディレクトリ以下の index.htm と index.htm.en とする.
dcpam のバージョンに関して
- dcpam の構造に大幅な改変を加える場合, 新規 CVS プロジェクトを開始する. dcpam0 からスタートし, 順次 dcpam1, dcpam2, …と作っていく.
CVS タグの付け方
ソースツリーのタグは, 日付を表すタグ (日付タグと呼ぶ) と, バージョン名を表すタグ (バージョン名タグと呼ぶ) の両方を付けることとする. バージョン名タグは必須ではない *2.
日付タグ バージョン名タグ ---------------------------------------- dcpam0-20040125 dcpam1-20040320 dcpam1-0_1 dcpam1-20040429 dcpam1-20040630 dcpam1-1_0 dcpam2-20040901 dcpam2-1_0 dcpam2-20050901 dcpam2-2_0 dcpam2-20050901-1 dcpam2-2_1 # 一日に複数回, 日付タグを設定する # 場合には, 接尾詞として "-1", "-2" # といったものを付記すること.
タグの付ける際には, CVS 作業コピーのトップディレクトリで,
$ cvs tag dcpam5-20030901 ^^^^^^^^^^^^^^^ ← これがタグ名となる.
等とする.
ソース展開の手順 (手動)
ソース展開の手順として, まず手動での展開の手順を示す. Makefile を用いて自動化された展開の手順は, その後の ソース展開の手順 (自動) で示す.
展開の準備
展開のため, グループユーザと umask を設定する.
$ sg dcpam $ umask 002 ! group writable にする
展開するタグを確認する. cvs の作業コピー内で, 以下のように コマンドした際, 以下のように表示されるのがタグである.
$ cvs log ファイル symbolic names: dcpam2-20050530: 1.8 dcpam2-20050207-1: 1.4 :
ソース展開の手順
cvs export コマンドにより, 展開を行う. まず CVS リポジトリと同名のディレクトリに移動する.
$ cd /GFD_Dennou_Club/ftp/arch/dcpam/dcpam5
日付タグの場合には以下のように展開する.
$ cvs -d /GFD_Dennou_Club/ftp/arch/dcpam/cvsroot export -r "dcpam5-20090325" dcpam5
バージョン名タグの場合は以下のようになる.
$ cvs -d /GFD_Dennou_Club/ftp/arch/dcpam/cvsroot export -r "dcpam5-1_1" dcpam5
ソースは, 今回の例であれば dcpam5 ディレクトリ以下に展開される. その後, ディレクトリ名をタグ名 (dcpam5-20090325 等) に変更し, SIGEN ファイルを作成する.
ドキュメント, 依存関係ファイル, emacs tags ファイルの生成
展開したソースツリー以下でドキュメント等の生成を行う. 一度 configure したのち (ソースコードをコンパイルするわけでは ないので, 指定するライブラリは存在さえしていれば良い), make でドキュメント等を生成し, 最後に distclean で configure のキャッシュファイルなどを削除する.
$ cd dcpam5-20090325 $ ./configure \ --with-netcdf=/usr/lib/libnetcdf-ffc5.a \ --with-gtool5=/usr/lib/gtool5-ffc5/lib/libgtool5.a \ --with-ispack=/usr/lib/libisp-ffc5.a \ --with-spml=/usr/lib/spml-ssl2-ffc5/lib/libspml-ssl2.a \ $ make doc $ make depend $ make tags $ make distclean
tgz 作成の手順
tgz を作成する.
$ cd .. $ tar cvzf dcpam5-20090325.tgz dcpam5-20090325
シンボリックリンクの貼り換え
古いシンボリックリンクを削除し, 新しいシンボリックリンクを作成.
$ rm dcpam5_current ! 古いリンクを一旦削除 $ rm dcpam5_current.tgz $ ln -s dcpam5-20090325 dcpam5_current $ ln -s dcpam5-20090325.tgz dcpam5_current.tgz
過去版アーカイブリストの更新
$ vi index.htm (書き換え作業) $ vi index.htm.en (書き換え作業)
dcpam トップページに記載される dcpam の最新バージョンの書き換え
$ cd .. $ vi index.rd (書き換え作業) $ make
ソース展開の手順 (自動)
Makefile を用いて, 上記作業の一部を自動化した際の方法を以下に示す.
※ 現在はこの自動化をオフにしてあります, 使用する場合には /ftp/arch/dcpam/dcpam5/Makefile を編集してください.
展開の準備
展開のため, グループユーザと umask を設定する.
$ sg dcpam $ umask 002 ! group writable にする
展開するタグを確認する. cvs の作業コピー内で, 以下のように コマンドした際, 以下のように表示されるのがタグである.
$ cvs log ファイル symbolic names: dcpam2-20050530: 1.8 dcpam2-20050207-1: 1.4 :
Current_CVS_Tag.mk の編集
<URL:Current_CVS_Tag.mk> の DCPAM5TAG を展開する版のタグに変更する.
$ vi Current_CVS_Tag.mk DCPAM5PROJ = dcpam5 DCPAM5TAG = $(DCPAM5PROJ)-20090325
make の実行
CVS プロジェクト名ディレクトリ (例: dcpam5/ ) に移動し, 以下のようにコマンドする.
$ make export
ソースコードの展開, およびソースコード内部でのドキュメント等の生成, tgz パッケージの作成とシンボリックリンクの張替え, SIGEN ファイルの作成, トップページのバージョン情報の置きかえが行われる.
これは上記手動での更新における ソース展開の手順, ドキュメント, 依存関係ファイル, emacs tags ファイルの生成, tgz 作成の手順, シンボリックリンクの貼り換え, 過去版アーカイブリストの更新, dcpam トップページに記載される dcpam の最新バージョンの書き換え の作業に相当する.
確認
CVS プロジェクト名ディレクトリ (例: dcpam5/ ) 以下に, CVS タグ名 のディレクトリと <CVSタグ名>.tgz の TGZ パッケージが作成され, そのディレクトリに <CVSプロジェクト名>_current, その TGZ パッケージに <CVSプロジェクト名>_current.tgz というシンボリックリンクが貼られていることを確認する.
また CVS プロジェクト名ディレクトリ (例: dcpam5/ ) 中の index.htm, index.htm.en のアーカイブリストが更新されている ことを確認する.
最後に dcpam トップページ の以下の "******" の部分が Current_CVS_Tag.mk の編集 で 変更した値になっていることを確認する.
(Version: *****)
Footnotes
*1
(2005/04/05 石渡) バージョン名タグとして "dcpam2-1.0" と付けようと思ったら
cvs [tag aborted]: tag `dcpam2-1.0' must not contain the characters `$,.:;@'
と言われたよ! どうやら "$", ",", ".", ":", ";", "@"
といった文字は含めてはいけないらしい!
*2
(2005/04/05 石渡) バージョン名タグとして "dcpam2-1.0" と付けようと思ったら
cvs [tag aborted]: tag `dcpam2-1.0' must not contain the characters `$,.:;@'
と言われたよ! どうやら "$", ",", ".", ":", ";", "@"
といった文字は含めてはいけないらしい!