我有一个R包 A 和一个包 B 。对于某些功能, B 软件包真正依赖于 A 。包 A 取决于 B ,但仅用于测试。因此,包依赖性不是真正的循环。
A 的travis构建失败,因为在安装 A 时,它只会尝试安装 B 以查找 A 没有安装。
在开始测试之前,如何告诉travis不要担心 B ?
我的想法是:
但两者似乎都像放弃单元测试一样激烈。
我嘲笑了一个可重复的最小例子:
https://github.com/HughParsonage/AAAA
https://github.com/HughParsonage/BBBB
当我将AAAA
推到特拉维斯时,我得到:
错误:依赖'AAAA'不适用于包'BBBB'
删除'/ usr / local / lib / R / site-library / BBBB'
错误:命令失败(1)
执行暂停
我的实际套餐是
答案 0 :(得分:1)
我怀疑你知道答案:避免循环依赖。
关于r-devel list in this thread的非常相关的情况,我们进行了深刻细致的讨论。你看看那里的讨论;提出了几个选项,原始的海报有点说服 - 就像你在这里 - 标准的万有引力定律不适用于它们。
我会避免这个问题,并将共性放入pkgC
和pkgA
所依赖的新包pkgB
中,或者甚至只是建议它。另一个简单的解决方案(也在线程中提出)只是合并pkgA
和pkgB
。