Contents
概略
stack manifest (stack.xml)は、ROSのStacksのデストリビューションとインストールをサポートする最小の仕様書にあたります。あなたのスタックについてのメタデータを加える上に、stack.xmlの重要な役割は、他へのスタックの依存を宣言することにあります。stack.xmlはディレクトリの中にあることは大事なことになります。このstack.xmlを含んでいるROSのパッケージパスの通っているディレクトリはすべてROSにスタックであるとみなされます。そして、もちろんその中にあるものはすべてスタックの一部であると見なされます[1]。
そのまんまの小さなstack.xmlファイルは、readmeファイルのようなもので、このスタックの責任者が誰かや、どのライセンスのもとにあるかなどを明示しています。このコードを誰が使えるかを知るために、このライセンスの情報は大切です。stack.xmlは、通常は、インストールが前提とされているスタックを宣言している<depend>タグも含んでいます。
[1]: スタックにスタックを含めることはできません。
XML リファレンス
stack.xml tags referenceをご覧ください.
コマンドラインツール
rosstackはstack.xmlファイルから情報をパースして抽出します。
例
<stack>
<description brief="common code for personal robots">
A set of code and messages that are widely useful to all robots. Things
like generic robot messages (i.e., kinematics, transforms), a generic
transform library (tf), laser-scan utilities, etc.
</description>
<author>Maintained by Tully Foote</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
<url>http://pr.willowgarage.com/wiki/common</url>
<depend stack="ros"/>
</stack>
クライアントライブラリサポート
Pythonでは, roslibパッケージの中でmanifestsから情報を得るためにroslib.manifestモジュールを使用することができます。
たとえば:
import roslib.stack_manifest
# get the path of the manifest
s = roslib.stack_manifest.stack_file('navigation')
# create a roslib.stack_manifest.StackManifest instance from the file
m = roslib.stack_manifest.parse_file(s)