配布パッケージに関する概念 5
プロジェクトとパッケージを区別しないほうがいいと言ったが、メタデータを持つプロジェクト=パッケージ ということだろう。そして、再帰的な構成も可能としないといけない。
- 依存性と包含性(containment)という2つの関係を考えて、これをパッケージ間の辺と考えたグラフを想定する。このグラフは大域的なもの。
- 個々のパッケージ/プロジェクトもグラフで、色付きフォーレストになる。ノードはファイルで色はフィーチャのこと。
- 互換性、交換可能性、あるいは同値性という関係も考える。
- パッケージの同一性(アイデンティティ)として、おそらくプロダクトという概念がいる。プロダクトは、同一とみなせるパッケージの集合を意味する。パッケージ名がプロダクト名だと考えるしかないだろう。
- バージョン番号は互換性を識別すべきだが、それだけでは不十分。
色付きフォーレストをデータとするデータ操作のセットや色付きフォーレストのあいだの関係を構造として認識する。次に(同時に)、パッケージを点とする空間の構造を考える。構造は、依存性、包含性、互換性などを辺とするグラフで与えられる。
色付きフォーレストに関する操作:
- インストール=マージ
- アンインストール=一部削除
- 抽出(部分パッケージの識別)
- 集約(これもマージかも)
- 色の付与、色の変更