将多个平台的代码存储在单一的 github 仓库中

我正在编写一个小型的代码项目(或模块),希望在三个不同的语言中实现相同的技术,分别是:Python, JS, Lua。我希望将所有代码都统一放在单一的 github 仓库中。

我的问题是:我该如何将其打包并且让所有三种语言都能够进行安装呢?即:

对于 Python,我希望可以通过以下方式安装:

pip install packagex

对于 Lua,我希望可以通过以下方式安装:

luarocks install packagex

同样地,对于 JS/Node 我也希望可以通过以下方式安装:

npm install packagex

我知道我可以为三个不同的平台创建三个不同的仓库,并且将每个仓库都注册为可安装的包,但我希望将所有内容都放在统一的源代码仓库中。我该如何操作呢?谢谢。

点赞
用户1793220
用户1793220

我可以回答关于 LuaRocks 的部分问题:

LuaRocks

如果您选择为每种语言创建子目录,并且 Lua 文件存放在 /lua 下,则可以遵循创建 rockspec 文件的常规过程,并添加 source.dir 条目,告诉它在子目录中工作。因此,在上面链接的示例中,您可以执行以下操作:

source = {
   url = "git://github.com/me/luafruits",
   tag = "v1.0",
   dir = "luafruits/lua"
}

source.dir 与其他 rockspec 格式 一起记录:

  • source.dir (string) - 解压源存档时创建的目录名称。如果可以从 source.file 字段中推断出,则可以省略。示例: "luasocket-2.0.1"

对于 Git 存储库,默认情况下会推断出 source.dir 为路径的最后一个组件,但是如果您的代码位于子目录中,则可以随意重新定义它。rockspec 中的所有其他路径都将相对于此 source.dir

或者,您可以只需将 build 部分的所有路径添加到 lua/ 中。在文档中的“luafruits”示例中,请注意所有源都存储在 src/ 中。只需使用 lua/ 代替即可,您就可以开始使用了,无需使用 source.dir

2016-05-27 18:27:52