私は最初のLUAパッケージに取り組んでいます。私は、ロックスペックの名前を付ける場所と配置する場所について深く混乱しています。私が見ているすべての人気のあるLUAパッケージは、ロックスペックを別々に扱うようです。これは、Rubyとはまったく異なります。Rubyでは、すべての宝石にただ一つのgemspec
があります。ここではいくつかの例は以下のとおりです。luarocksのロックスペックファイルを管理する良い方法は何ですか?その理由は何ですか?
- lua-cliargs:プロジェクトのルートに単一rockspec、(例えば
lua_cliargs-3.0-1.rockspec
) - ldoc:
scm
代わりのバージョン番号(例:ldoc-scm-2.rockspec
)と名付けられたプロジェクトのルートに単一rockspec、 - lua-MessagePack:トップレベル
rockspec/
ディレクトリに格納された複数のバージョン命名rockspecs(例えばlua-messagepack-0.1.0-1.rockspec
、...lua-messagepack-0.3.4-1.rockspec
)、パッケージ版の前に挿入された余分なLUAバージョンといくつかに続く(例えばlua-messagepack-lua53-0.3.6-1.rockspec
)。時には、同じパッケージバージョンの2つのロックスペックがあります.1つはlua53を含み、もう1つはロックされていません。 - luafilesystem:トップレベル
/rockspec
ディレクトリに格納された複数のバージョン命名rockspecs(例えばluafilesystem-1.3.0-1.rockspec
、...luafilesystem-1.6.1-1.rockspec
)、例えばluafilesystem-cvs-1.rockspec
(代わりにパッケージのバージョンの前に挿入されたパッケージのバージョン番号のcvs
を持っているいくつか続きます、luafilesystem-cvs-2.rockspec
)。 - lpeg:すべて
- luasocket何もありませんrockspec:代わりに、パッケージ番号(例えば
luasocket-scm-0.rockspec
)、とのscm
を含むルートで1 rockspecパッケージ番号(例えばluasocket-3.0rc2-1.rockspec
)を持つ単一のrockspecを含む/rockspec
ディレクトリ 今
、this questionは1が「作業」rockspecファイルとリリース・バージョン管理rockspecsの完全な別のディレクトリを持っているでしょう理由を説明し、私はまだいくつかの質問を持っている:
- ロックスペックのリビジョンは何ですか? luarocks wikiは、パッケージリリースにgitのバージョン番号を付けるべきだと言っています。この例では、Rockspecリビジョンは含まれていません。私のrockspecがVCS内にあり、特定のコミットにタグを付けると、そのコミットに含まれるrockspecを効果的に修正できないため、バージョンを修正することはできません。 rockspecの後のリビジョンは、おそらくタグ付けされたコミットにはありませんでした。
lpeg
はどのようにしてluarocksに登録できますか?rockspec
が足りませんか?- ロックスペックがHEADを参照するようにするには、luarocks wikiによると、パッケージのバージョン番号の代わりに
scm
を使用する必要があります。しかし、HEAD
が絶え間なく変化しており、rockspecはすべてのファイルをリストしなければならないので、追加または削除されたファイルについていくためには、の番号を継続的にインクリメントする必要があります。これを回避するには、scm
rockspecsのリビジョン番号を一切使用しないでください。しかし、私の見ているリビジョン番号は低い(例:ldoc-scm-2.rockspec
)。これは間違いですか? - 上記の例のいずれかがベストプラクティスと考えられますか?
ソースコードを変更する必要がありますall'_ ' - >' _ソースコードを変更する必要はありません '? – Oka
これは素晴らしく、迅速で徹底的な答えに感謝します! –
@Oka:タイプミス、ありがとう! TとNはDvorakの隣接するキーです:) –