2016-04-10 75 views
0

我有一個R包A和一個包B。包裝B真正取決於A的一些功能。包裝A取決於B,但僅用於測試。所以包依賴不是真正的循環。爲一個,因爲在安裝一個它試圖安裝才發現一個沒有安裝特拉維斯建立失敗,因爲一個明顯的圓形包依賴

特拉維斯構建失敗。

如何告訴travis不要擔心B直到它開始測試?

我的想法是:

  • 把所有的的依賴關係一個,留下獨立。
  • 離開關閉的依賴上,構建所述測試彷彿並不存在。

但這兩者都像放棄單元測試一樣激烈。

我嘲笑了一個最小的可重複的例子:

https://github.com/HughParsonage/AAAA

https://github.com/HughParsonage/BBBB

當我推AAAA特拉維斯,我得到:

ERROR: dependency ‘AAAA’ is not available for package ‘BBBB’

removing ‘/usr/local/lib/R/site-library/BBBB’

Error: Command failed (1)

Execution halted

我的實際包

一個https://github.com/HughParsonage/grattan

https://github.com/HughParsonage/taxstats

回答

0

我懷疑你知道這個問題的答案:只要避免循環依賴。

剛纔有關於r-devel list in this thread上非常相關的情況的深入細緻的討論。你看看那裏的討論;提出了幾個選項,原始海報有點令人信服 - 就像你在這裏 - 標準的引力定律不適用於它們。

我只是爲了避免這個問題,並將共同點放入一個新的包pkgC,其中pkgApkgB可以依賴,甚至只是建議它。另一個簡單的解決方案(也在線程中提出)是合併pkgApkgB

+0

德克,你必須在現實世界中如此無情地生活嗎? – Hugh

相關問題