ja/Projects/wija

概要

wija およびそのプラグインは Java 言語 (J2SE; Java 2 Standard Edition) により記述されています*1。 J2SE による開発には JDK (J2SE Development Kit) が必要です (Mac OS X には付属しています)。 また、ビルドは ant ツールにより行われることを想定しています。

Media Art Online で開発・配布されるソフトウェアおよび web サイトは、 wija およびそのプラグインを含め、 Perforce ソフトウェアによってバージョン管理されています。 Perforce は商用ソフトウェアですが、Media Art Online では、現在、オープンソースの開発目的に限り、 40ユーザのライセンスを Perforce 社から無償で取得しています (将来的にはユーザ数を増やしてもらえる可能性もあります)。 また、Media Art Online での開発を行わず、参照・取得するだけの目的であれば、 どなたでも Perforce ソフトウェア (クライアントソフトウェアは無償) を用いて開発中の最新のソースコードを取得できます。

Perforce の 40ユーザのライセンスを活用するために、 また、開発上の様々な議論を行うために、wija-devel(-en) メーリングリストが用意されています (wija-devel-en では英語のみを用います)。 wija-devel(-en) のメンバには、 バージョン管理データベースへの書き込みが許可された Perforce ユーザアカウントが割り振られます。

wija-devel(-en) メーリングリストに参加されたい方は、下記までご連絡ください。

mailto.png

Nightly build (夜ごとのビルド)

wija-devel(-en) のメンバは、 Perforce によるレビューメッセージを受け取ることで、 更新があったときに最新のソフトウェアやドキュメンテーションを試用できます。

ソフトウェア開発の場合

しかし、Perforce で取得できるのはソースコードですので、実際に試用するためには、 開発ツールを用いてソフトウェアをビルドする必要があります。 その操作は、ソフトウェアの開発に携わっていない人にとっては煩雑だと考えられます。

そこで、開発ツールを用いない方でも、更新があったときにそれを試せるように、 内部リリースを行います。

この内部リリースは、更新があった翌日の、日本時間の明け方に行われます。 (将来的には自動化する予定ですが、当面、手作業で行いますので、実施時間にブレが生じます。) 以下の URL から内部リリースをダウンロードできるようにします。

※ 当面は、内部リリース自体が Perforce によるレビューメッセージで通知されます。

内部リリースは、対応する最新の Perforce change 番号を含んだ次のファイル名で、 圧縮アーカイブファイルとして提供されます。

wija-change番号.zip

ドキュメント開発の場合

同様に、ヘルプページも「オムニドキュメント」という形式で書かれたソースコードが バージョン管理の対象となりますので、ご自身のコンピュータ上で web ページとして閲覧するためには開発ツール (ヘルプページ作成ツール) によるビルドが必要です。 しかし、この場合、Media Art Online のスタッフも web サーバ上でビルドを行いますので (将来的には自動化したいですが)、しばらくすると、 次の URL から更新内容が反映されたページを閲覧できるようになります。

試用した結果、問題がなければ更新内容が http://www.media-art-online.org/wija/ に反映されます。

開発ツール

Perforce の導入と設定

Perforce の概要

Perforce は、離れた場所にいて、別々のコンピュータを使っている人々が、 インターネットを用いてひとつのソフトウェアやドキュメンテーションを開発することを支援するソフトウェアです。 Perforce では、ソフトウェアやドキュメンテーションを構成するファイルのひとつひとつについて、 バージョンを管理できます。

depot (デポ)
Perforce では、サイト毎に用意される Perforce サーバ (Media Art Online では perforce.media-art-online.org) に depot と呼ばれるデータベースが置かれます。このデータベースに、そのサイトで開発されるすべてのソースコードが更新履歴とともに格納されます。depot では、みなさんのコンピュータと同様に、ファイルの情報が階層ディレクトリにより整理されています。
クライアント
Perforce を用いるユーザは、自分が関係する開発項目毎に、クライアントと呼ばれるマッピングを定義します。これは、depot 上のどの部分が、ユーザのコンピュータのローカルディスクのどのディレクトリにマップされるかを定義するものです。
ワークスペース
depot 上のある部分がマップされている、ローカルディスク上のディレクトリをワークスペースと呼びます。Perforce を用いるユーザは、depot からワークスペースに最新バージョンのファイルをダウンロードして、ファイルを追加したり、既存のファイルに変更を施して、それらを depot に提出します。
レビューメッセージ
Perforce ユーザは、自分が関係する開発項目に更新があった場合に、メールにて通知を受けるように設定できます。この通知をレビューメッセージと呼びます。

何故、Perforce なのか:

Perforce と同様にバージョン管理を行うソフトウェアには様々なものがあります。 特に、CVS (Concurrent Versions System) と呼ばれるソフトウェアは無償で利用でき、 フリーソフトウェアの開発に広く使われています。 Media Art Online で Perforce を用いている理由としては、それが高速であること、 また、デザインが整理されており、保護機構も強力で、緻密な設定が可能であることなどがあげられます。

ダウンロードとインストール

※ Perforce ソフトウェアの使用は必須ではありません。
 ご自分で開発をされない方は、nightly build を活用してください。

Perforce で用いる環境変数

環境変数名意味設定する内容
P4CLIENTクライアント名ユーザが用いるワークスペースを識別するのに用いられます。
P4EDITORエディタユーザが普段用いているエディタプログラム
P4PASSWDパスワードお知らせしたパスワード
P4PORTサーバ名:ポートperforce.media-art-online.org:1666
P4USERユーザ名お知らせしたユーザ名

主な Perforce コマンド

コマンド名機能
p4 addファイルの追加
p4 clientクライアントの作成・編集・削除
p4 clientsクライアントの一覧表示
p4 deleteファイルの削除
p4 editファイルを編集のためにオープン
p4 resolve編集内容の衝突の解決
p4 revert提出前の変更の取り消し
p4 submit追加・編集・削除内容の depot への提出
p4 syncdepot からファイルを取得してワークスペースを更新
p4 userユーザの作成・編集・削除
p4 usersユーザの一覧表示

MAO WSCM Depot の構成

パス意味
//depot/wcm/...Media Art Online Web サイト (wija ヘルプページを含む)
//depot/scm/...Media Art Online ソフトウェア (wija を含む)
//depot/docs/...Media Art Online パブリケーション (論文、発表資料等)

wija-devel(-en) メーリングリストのメンバは、//depot/wcm/... と //depot/scm/... の内容をレビューする (変更が加えられた時に通知を受け取る) ように設定されています (設定はご自分で変更可能です)。 wija-devel(-en) メーリングリストのメンバのうち、村井研究室のメンバは、 更に //depot/docs/... の内容をレビューするように設定されています。

パブリケーションは以下の URL から自動的にアクセス可能になります。

ソフトウェア開発のためのディレクトリ構成

+-java----+ ↓java ディレクトリ以下は p4 sync で自動的に作成されます。
|         |
|         +-org-+
|               |
|               +-media-art-online-+
|                                  |
|                                  +-encoding (符号化ライブラリ)
|                                  |
|                                  +-gnupg    (GnuPG ライブラリ)
|                                  |
|                                  +-helpgen  (ヘルプページ作成ツール)
|                                  |
|                                  +-iwat     (i-WAT プラグイン)
|                                  |
|                                  +-iwatsrv  (i-WAT ロボットプラグイン)
|                                  |
|                                  +-jabber   (Jabber/XMPP ライブラリ)
|                                  |                                    
|                                  +-omelets  (OMELETS (LETS) ライブラリ)
|                                  |
|                                  +-plugin   (プラグインライブラリ)
|                                  |
|                                  +-qtx      (Cutie X プラグイン)
|                                  |
|                                  +-spotlite (SpotLite プラグイン)
|                                  |
|                                  +-tunes    (Tunes プラグイン)
|                                  |
|                                  +-whp      (WIDE Hours プラグイン)
|                                  |
|                                  +-whpsrv   (WIDE Hours ロボットプラグイン)
|                                  |
|                                  +-wija     (wija ライブラリ)
|                                  |
|                                  +-wija_    (wija 主プログラム)
|                                  |
|                                  +-wijabot  (wija ロボット主プログラム)
|                                  |
|                                  +-xml      (XML ライブラリ)
|
|
+-javadoc (ドキュメントディレクトリ; ant doc で自動的に作成されます)
|
+-javaout (出力ディレクトリ; ビルドする前に作成しておく必要があります)

ドキュメント開発のためのディレクトリ構成

+-gnupg--+
|        |
|        +-help            (GnuPG ヘルプページ)
|
+-iwat---+                 (i-WAT 主ページ)
|        |
|        +-help            (i-WAT ヘルプページ)
|
+-java---+
|        |
|        +-help            (Java ヘルプページ)
|
+-png                      (画像ファイル)
|
+-png-en                   (画像ファイル - 英語版用)
|
+-wija---+                 (wija 主ページ)
         |
         +-help            (wija ヘルプページ)
         |
         +-download-+      (wija ダウンロードページ)
                    |
                    +-0.07 (version 0.07 リリースファイル)
                    |
                    :

パブリケーションのためのディレクトリ構成

+-tex-+     (論文/発表資料の LaTeX2εソースファイル)
      |
      +-eps (論文/発表資料に挿入する図版)

Perforce チュートリアル

ユーザの設定

$ p4 user ユーザ名
Password:    ****** ←書き換えます
Reviews:
    //depot/wcm/... ←ドキュメントの更新のレビューメッセージを受け取ることを示します
    //depot/scm/... ←ソフトウェアの更新のレビューメッセージを受け取ることを示します

クライアントの作成

$ p4 client クライアント名
Root: 基点となるディレクトリ名 (例: /Users/alice/Programs)
View:
    //depot/scm/main/java/org/... //クライアント名/java/org/...
View:
    //depot/wcm/main/gnupg/...          //クライアント名/gnupg/...
    //depot/wcm/main/iwat/...           //クライアント名/iwat/...
    //depot/wcm/main/java/...           //クライアント名/java/...
    //depot/wcm/main/png/...            //クライアント名/png/...
    //depot/wcm/main/png-en/...         //クライアント名/png-en/...
    //depot/wcm/main/wide_hour/help/... //クライアント名/wide_hour/help/...
    //depot/wcm/main/wija/...           //クライアント名/wija/...

ワークスペースの構築と更新

$ p4 -c クライアント名 sync

ビルド

$ cd Programs/java/org/media_art_online/wija_
$ ant package
$ cd ../iwat
$ ant package

レビューメッセージを受け取ったら…

$ p4 -c クライアント名 sync

ファイルの追加

$ p4 -c クライアント名 add -t ファイルタイプ ファイル名...
ファイルタイプ意味
text+kテキストファイル (キーワード変換あり)
binaryバイナリファイル

ファイルの編集

$ p4 -c クライアント名 edit ファイル名...

変更内容の depot への提出

$ p4 -c クライアント名 submit

Description を記述します (なるべく英語を用いてください)。


*1 プラグインは一部、スクリプト言語で記述されることがあり得ます。その場合は、プラットフォーム標準の言語 (例: Mac OS X では AppleScript?) で書かれるか、プラグインの導入マニュアルで導入の仕方が解説される必要があります。また、ヘルプページ作成ツールである helpgen は現状では Perl により書かれたスクリプトを用います。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS