如何在 Raku 中指定 github repo 作为模块的依赖源?

cow*_*moo 10 module github fcntl raku

我的模块依赖的Fcntl模块(https://github.com/manchicken/perl6-Fcntl),很久没有更新了,坏了。但是,如果我手动操作,有一个 fork ( https://github.com/jonathanstowe/perl6-Fcntl ) 对我zef install有用。是否可以在我的模块中指定依赖项,META-6.json以便正确的 github repo 将用于安装模块?

uge*_*exe 9

不,您不能将 uri 列为依赖项。该规范实际上指出 META6.json 中的依赖项名称应该与您匹配的名称相匹配use

如果您坚持不将命名空间集成到众多合作生态系统之一中,那么您仍然可以自由地在安装说明中列出 url:

zef install MyModule https://github.com/foo/dependency.git
Run Code Online (Sandbox Code Playgroud)

当用户向 zef 提供 uri 时,它本质上被视为一个独立的生态系统,因此能够满足MyModule. 没关系——用户明确要求使用该源。模块作者不可以规定从哪里下载依赖项(仅需要哪些依赖项)。

所有这一切都表明您可以以不同的方式解决您的问题—— fork 模块,将auth字段更改为其他内容,列出 (and use)Fcntl:auth<mynewauth>作为依赖项名称,然后将您的 fork 添加到生态系统中。或者,你可以简单地说一下版本。

  • 避免 URI 的想法是一个很好的想法,还有另一个原因:如果一切都是通过模块名称、作者姓名和版本完成的,那么依赖关系可以由生态系统存储库(如 CPAN 等)长期维护。如果允许 URI,则链接会损坏可以相当快地设置并破坏模块,而几乎没有追索权。 (3认同)