TL; DR - 大型项目有许多插件会导致自动测试失败。我想将这个项目拆分为核心仓库和扩展仓库,但是如何?
我有一个大项目(nanoc),它有很多插件,每个插件都有自己的依赖项。例如:
handlebars
插件,取决于therubyracer
很多这些插件偶尔会失败:
therubyracer
或nokogiri
); nanoc使用的持续集成服务(Travis)会定期报告错误。 95%的错误是由插件引起的。
这使得持续集成测试结果有些无用。我已经成长为忽略“错误”构建状态,只是假设插件出错了。这显然不是一个好的情况。
我想将项目分为两部分:
我会在大多数情况下处理核心,偶尔会更新插件存储库,以便它与 core 中完成的工作相匹配(尽管通常, core 中的更改不会影响插件)。
这似乎是一种合理的方法,但我有一些保留意见:
赞赏我们的想法和想法。
答案 0 :(得分:1)
这取决于插件和主应用之间的关系。
如果插件只能用于此应用并且存在强耦合,则需要将插件放入插件路径并将其添加到主应用程序存储库。
如果插件可以用于更多通用目的并且耦合较少,那么更好的方法是将这些插件安抚如下:
将它们从主回购中取出
为每个宝石设置单独的回购
如果您不想将其公开,请在Gemfile中使用自定义gem路径。*