氷川 XOOPS 研究室

モジュール制作、ウェブサービスなどなど

[] [未着手] マニフェスト仕様

完了予定日:2008.09.30   by: kilica
リンク先より

http://sourceforge.net/forum/forum.php?thread_id=1931794&forum_id=537172

minahito です。

とりあえず1月はスライドでお茶濁しになりそうなのですが、ケツは変えないつもりなので、そろそろマニフェストの仕様を本格的に詰めていかないといけません。

マニフェストは XCL ではファイル複製をしないとモジュールの複製化ができないので、それほど魅力がないと思うのですが、ファイル複製を必要としないであろう次の
BASE からは重要な仕様になってくると思います。

お話を始める前に、マニフェストの意味を整理しておきますと、

1. ツールの自動的処理のための情報を書く場所
2. 連絡先等 xoops_version 的な情報も含む
3. BASE 単位での書式拡張はできるが Cube のリザーブもある
4. ini.php 形式をとる
5. C++ などで読み取る必要があるので、PHPがなと評価できない動的値は禁止

という形になるファイルです。

その関係は先日のスライド(の修正版^^;)にありましたように、
ツールで XOOPS Cube 関係のプログラムをパースして処理させるのは難しいので、
プログラム単位のまとまり(すなわちモジュール等)にマニフェストを出させて、
そのマニフェストを機械が読み取って自動処理を実行するという関係になります。
複雑な処理は外にやらせようということです。

マニフェスト情報から専用のアプリケーションを用いて配布サイトに接続してアップデータを取得したり、マニフェスト同士を比較してモジュールの依存性解決を自動的に行うツールを開発することが当座の目標になります。

自分が専用ツールにさせたいと思っている仕事(最終スペック)は、

[A. アップロード編]
- FTPクライアントの機能を持ち、マニフェストの記述に従った位置へアップロードする

[B. アップグレード編]
- サイトにアップされているマニフェストから、配布サイトの URL を調べる
- 配布サイトの XML を読み取り、マニフェストのバージョンと比較する
- 必要があれば XML の指示にしたがってアーカイブをダウンロード
- 作者は並行してベータ版やアルファ版を配布できる。

[C. ダウンロード編]
- xoopscube.org/jp XUGJ などのサイトに接続して、推奨モジュールの XML の URL 集を受け取る
- 専用ツール上でダウンロードセンターを実現する

- A のマニフェストは Cube の公式仕様。
- B の XML は Cube からフォーマットを勧告。
- C は Cube からは特になし。
- 専用ツールは XOOPS Cube プロジェクトとしては開発しない。
- サイトプリロードはマニフェストなし、ツール未対応

という感じになると思います。

とはいえ、第一段階でまずやりたいのはバージョン比較とダウンロードの実験。こんな感じでどうだろうと思っているのですが....

<?php
/*

[Cube]

# XCID ... GUID みたいな全体で一意の ID
XCID=GF4X-UYEW-48Y9-3ZC0

# 名前は、故意じゃなくてもぶつかることはあるかも
Name=bxBBS
Version=1.0.0.0
Type={Manager,Addon,Theme}
URL=http://example.com/bxBBS.xml

# 専用ツールにアップロード位置を通知
Style={XCL,Shade,D3}

# あとは装飾的情報
License="The new BSD License"
Copyright="Public Domain"
Authoer="Jhon Carmak"
Support=http://example.com/support/
Contribute==http://example.com/contribute/
Feedback=http://example.com/support/

*/
?>

<?xml encode=...>
<cube>
<archive stable>
<version>1.0.1.0</version>
<url>http://example.com/bxBBS_1_0_1_0.zip</url>
<archive>
</cube>

ご意見、突っ込み、
もろもろお願いいたします。
http://groups.google.com/group/xcube-...   登録日 : 2008.06.21


logo

Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project - xc-tokai