2016-03-21 16 views
5

私はライブラリを持っており、依存関係ツリーの依存関係のどれもがワイルドカード依存関係を使用していないことを確認したい。ワイルドカード依存関係は悪です:(不要なワイルドカード依存関係を再帰的にチェックする

は、私は、コマンドラインでcargoで再帰的にこれを確認することができますまたは私はCargo.lockで手動で確認することができます

EDIT:??crates.ioがリリース錆ので、ワイルドカード依存関係を持つ箱を拒否している間1.6(approximately、ありがとうSteve Klabnik)、crates.ioにまだ古い箱があります。にはにワイルドカードの依存関係があります。私はこのような古い箱に依存して私自身の箱をアップロードすることができます。私が避けたい、チェックしたいもの。

答えて

2

私はcrates.io-indexをとり、すべてのパッケージの最新情報を読み込む小さなスクリプトを書いています。パッケージに別のパッケージに直接ワイルドカードが依存する場合は、crate-name -> wildcard-dependency, another-oneの形式で行が印刷されます。

995 current packages with wildcard dependenciesがあります。このリストは網羅的であり、パッケージが更新された場合にのみ長さが減少します。

Cargo.lockのすべての依存関係を手動で調べて、それらがリストに記載されているかどうかを確認できます。ワイルドカード依存関係を持つ古いパッケージに依存していないことを確認するには、依存関係の最新バージョンを使用する必要があります。

+0

これは、直接の依存関係をチェックするだけですか?だから、私のクレートが 'crate-a'に依存している場合、これはワイルドカード依存関係を持つ' crate-b 'に依存します:(1) 'crate-b'があなたのリストにリストされます。(2)私の木枠(つまり、[クレート])は私を助けません。私は正しく理解しましたか?もしそうであれば、この再帰的な処理やスクリプトの公開ができれば素晴らしいでしょう。 :) –

+0

"Cargo.lock"に記載されているすべての依存関係をチェックする必要があります。最初のテキストには「Cargo.toml」というタイプミスがありました。しかしこれは、すべての依存関係が最新の依存関係を使用している場合にのみ機能します。 :-( – Pyfisch

+0

ああ、あなたはまだあなたのスクリプトを投稿することができますか?私は確かにそれに興味があるでしょう:また、私は[貨物古い](https://github.com/ kbknapp/cargo-olderdays)みんな、この機能を統合したいのか尋ねます... –

3

数ヶ月前から、Cargoではワイルドカードの依存関係は認められなくなりました。だからあなたはこれを自分でする必要はありません。

これはcrust.ioの機能であり、錆や貨物の機能ではないため、これらのツールの特定のバージョンには関連付けられていません。更新はaround the time we released Rust 1.6で行われました。

+0

最初にこれを有効にした(安定版)Cargo/Rustリリースがありますか?古いリリースを使用しているユーザーが、リリース時に「修正」されているかどうかを知ることができます。 –

+0

私の答えを更新します。 –

+0

それはまさに私の問題です:私のライブラリはワイルドカード依存関係を使っている古い依存関係を持っていました。ワイルドカードの依存関係を直接使用するのではなく、他の1つの木枠だけを使っているので、私はクレートを 'crates.io'に公開することができます。したがって、巨大な依存関係ツリーでは、このツリーの中にワイルドカード依存関係を使用しているかどうかをチェックしたいと思っています。 –

関連する問題