2

私は小さな宝石の生態系を開発しましたが、ある種の機能はお互いに依存します。宝石には循環的な依存関係がありますか?

RubyGemsは循環依存性をサポートしていますか?言い換えれば、これらの仕様の宝石を押しても安全ですか?

Gem::Specification.new 'essentials' do |gem| 
    gem.add_development_dependency 'development_tools' 
end 

Gem::Specification.new 'development_tools' do |gem| 
    gem.add_runtime_dependency 'essentials' 
end 

答えて

1

は円形ランタイム依存関係を持っていません。

奇妙な場合は、1個の宝石が最初にランタイム依存性を持つ別の宝石に開発依存性を持っていることは、OKでなければなりません。

でも、私はではなく、をお勧めします。依存関係のグラフが完全に空でないことを確認することをお勧めします。

+0

詳細をお知らせください。発生する可能性のある問題は何ですか?それらはRubyGems特有ですか? –

+1

一般に、循環依存性は避けなければなりません。グラフにサイクルがある場合、従属グラフを使用して行う必要のある重要なことはたくさんあります。重要なことの1つの例は、従属グラフをソートすることですが、サイクルを持つ有向グラフをソートすることはできません。 – yfeldblum

+2

これはどんな答えですか?問題は、RubyGemsが@yfeldblumがそれらを推奨するのではなく、循環依存をサポートしているかどうかです。 – ggPeti

2

これは、それぞれの依存関係が異なる種類のため、技術的に循環依存ではありません。それが真の循環依存性であれば、私は両方を1つの宝石に組み合わせることをお勧めしますが、あなたの宝石の名前は意図的です。

うまくいくはずです。

関連する問題