[[ja/Projects/wija]]

#contents

* 概要 [#bb3d8452]
wija およびそのプラグインは Java 言語 (J2SE; Java 2 Standard Edition)
により記述されています((プラグインは一部、スクリプト言語で記述されることがあり得ます。その場合は、プラットフォーム標準の言語 (例: Mac OS X では AppleScript) で書かれるか、プラグインの導入マニュアルで導入の仕方が解説される必要があります。また、ヘルプページ作成ツールである helpgen は現状では Perl により書かれたスクリプトを用います。))。
J2SE による開発には [[JDK (J2SE Development Kit):http://java.sun.com/]]
が必要です (Mac OS X には付属しています)。
また、ビルドは [[ant:http://ant.apache.org/]] ツールにより行われることを想定しています。

Media Art Online で開発・配布されるソフトウェアおよび web サイトは、
wija およびそのプラグインを含め、
[[Perforce:http://www.perforce.com/]] ソフトウェアによってバージョン管理されています。
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) メーリングリストに参加されたい方は、下記までご連絡ください。

&ref(http://www.media-art-online.org/png/mailto.png);
* Nightly build (夜ごとのビルド) [#c77bb46b]
wija-devel(-en) のメンバは、
Perforce によるレビューメッセージを受け取ることで、
更新があったときに最新のソフトウェアやドキュメンテーションを試用できます。

** ソフトウェア開発の場合 [#gb1724d0]

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

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

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

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

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

 wija-change番号.zip

** ドキュメント開発の場合 [#e0c7f3b0]

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

- http://www2.media-art-online.org/wija/

試用した結果、問題がなければ更新内容が http://www.media-art-online.org/wija/ に反映されます。
* 開発ツール [#be2a1091]
- JDK (http://java.sun.com/ )
-- Java 2 Standard Edition 開発キット
-- Mac OS X には付属しています (最新版をソフトウェア・アップデートにより取得してください) 
- Perforce (http://www.perforce.com/ )
-- ソフトウェア構成管理ツール
-- このページでは p4 (コマンドライン版クライアントソフトウェア) を前提に解説します
- Ant (http://ant.apache.org/ )
-- ビルドツール
- helpgen (Media Art Online で開発しており、Perforce で取得できます)
-- ヘルプページ作成ツール
* Perforce の導入と設定 [#f9e87c83]

** Perforce の概要 [#o0d326fe]

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 を用いている理由としては、それが高速であること、
また、デザインが整理されており、保護機構も強力で、緻密な設定が可能であることなどがあげられます。
** ダウンロードとインストール [#re5333fa]
- http://www.perforce.com/ のダウンロードページから、お使いのプラットフォームに対応する p4 ソフトウェアをダウンロードし、インストールします。
-- p4 はコマンドライン (コマンドプロンプト) で動作するプログラムです。GUI を持つプログラムもありますが、コマンドラインが結局一番便利に使えますので、ここでは p4 ソフトウェアの説明を行います。

** Perforce で用いる環境変数 [#g85668bd]
|LEFT:|LEFT:|LEFT:|c
|環境変数名|意味|設定する内容|h
|~P4CLIENT|クライアント名|ユーザが用いるワークスペースを識別するのに用いられます。|
|~P4EDITOR|エディタ|ユーザが普段用いているエディタプログラム|
|~P4PASSWD|パスワード|お知らせしたパスワード|
|~P4PORT|サーバ名:ポート|perforce.media-art-online.org:1666|
|~P4USER|ユーザ名|お知らせしたユーザ名|
** 主な Perforce コマンド [#s4888be6]
|LEFT:|LEFT:|c
|コマンド名|機能|h
|~p4 add|ファイルの追加|
|~p4 client|クライアントの作成・編集・削除|
|~p4 clients|クライアントの一覧表示|
|~p4 delete|ファイルの削除|
|~p4 edit|ファイルを編集のためにオープン|
|~p4 resolve|編集内容の衝突の解決|
|~p4 revert|提出前の変更の取り消し|
|~p4 submit|追加・編集・削除内容の depot への提出|
|~p4 sync|depot からファイルを取得してワークスペースを更新|
|~p4 user|ユーザの作成・編集・削除|
|~p4 users|ユーザの一覧表示|
** MAO WSCM Depot の構成 [#u85d2290]

|LEFT:|LEFT:|c
|パス|意味|h
|~//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 から自動的にアクセス可能になります。
- http://www2.media-art-online.org/docs/
** ソフトウェア開発のためのディレクトリ構成 [#o4395038]

 +-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 (出力ディレクトリ; ビルドする前に作成しておく必要があります)

** ドキュメント開発のためのディレクトリ構成 [#vaf45b34]

 +-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 リリースファイル)
                     |
                     :

** パブリケーションのためのディレクトリ構成 [#qc12a4c7]

 +-tex-+     (論文/発表資料の LaTeX2εソースファイル)
       |
       +-eps (論文/発表資料に挿入する図版)
** Perforce チュートリアル [#cdfb5628]
*** ユーザの設定 [#h94a2c81]

 $ p4 user ユーザ名

 Password:    ****** ←書き換えます

 Reviews:
     //depot/wcm/... ←ドキュメントの更新のレビューメッセージを受け取ることを示します
     //depot/scm/... ←ソフトウェアの更新のレビューメッセージを受け取ることを示します
*** クライアントの作成 [#we1b3075]

 $ 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/...
*** ワークスペースの構築と更新 [#y856b47c]

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

*** ビルド [#h39e6b4b]

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

 $ cd ../iwat
 $ ant package

*** レビューメッセージを受け取ったら… [#ece641e6]

 $ p4 -c クライアント名 sync
*** ファイルの追加 [#xc1c0320]

 $ p4 -c クライアント名 add -t ファイルタイプ ファイル名...

|LEFT:|LEFT:|c
|ファイルタイプ|意味|h
|~text+k|テキストファイル (キーワード変換あり)|
|~binary|バイナリファイル|
*** ファイルの編集 [#i96e7b43]

 $ p4 -c クライアント名 edit ファイル名...
*** 変更内容の depot への提出 [#wbd0ca91]

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

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

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