簡體   English   中英

由於明顯的循環軟件包依賴性,travis構建失敗

[英]travis build failing because of an apparent circular package dependency

我有一個R包A和一個B包。 軟件包B確實依賴於A的某些功能。 程序包A取決於B ,但僅用於測試。 因此,包依賴關系並不是真正的循環。

travis構建對於A失敗,因為在安裝A時它試圖安裝B只是發現未安裝A。

在開始測試之前,如何告訴travis不要擔心B

我的想法是:

  • B的所有依賴項放在A中 ,使B獨立。
  • 放棄AB的依賴關系,並像B不存在那樣構造測試。

但是,兩者似乎都像放棄單元測試一樣激烈。

我已經模擬了一個最小的可重現示例:

https://github.com/HughParsonage/AAAA

https://github.com/HughParsonage/BBBB

當我將AAAA推向travis時,我得到:

錯誤:依賴項“ AAAA”不適用於程序包“ BBBB”

刪除'/ usr / local / lib / R / site-library / BBBB'

錯誤:命令失敗(1)

執行停止

我實際的包裹是

Ahttps : //github.com/HughParsonage/grattan

Bhttps : //github.com/HughParsonage/taxstats

我懷疑您知道答案:避免循環依賴。

在該線程r-devel列表上,只有一個非常相關的情況,就此進行了深入而詳盡的討論。 您看那里的討論; 提出了幾種選擇,並且原始的發布者在某種程度上說服了-就像您在這里一樣-標准重力定律不適用於它們。

我只是避免這個問題,並將共同點放在新的軟件包pkgCpkgApkgB可以依靠它,甚至只是提出建議。 另一個簡單的解決方案(也在線程中提出)是僅合並pkgApkgB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM