10

私は今日、私が維持しているアプリで使用されている宝石がヤンクされたという状況に遭遇しました。

聞いたことはあるのですが、ヤンクされた宝石を見たことがなく、悪い習慣だと思いました。

gemを更新しようとしましたが、以前のバージョンまたは古いバージョンを使用するとアプリが失敗し始めます。

宝石は自由にホストされており、おそらくアプリケーションで使用されていると見て、それらをヤンクするロジックは何ですか?ヤンクされた宝石をどのように管理しますか?

4

2 に答える 2

11

プロジェクトで使用することを決定したgemごとに、代替案(別のgemまたは独自の実装)のアイデアが必要です。品質、作成者、更新頻度をあまり気にせずに、gemを強制的に使用している人がいます。ある宝石に盲目的に依存することは危険であり、Gemfileに別の行を追加するという決定は軽視されるべきではありません。

ヤンクされたgemに関しては、作成者でさえinterwebzからgemを削除する場合は、プロジェクトで同じことを行うことを検討する必要があります。それか、あなたが本当に宝石を愛しているなら、フォークをホストし、クレジットを与えて、それを進化させ続けてください。:)

于 2013-03-26T11:57:01.300 に答える
4

Rubygemのドキュメントは、ヤンクがここにあることを示唆しています:

  • 不完全なバージョンの偶発的なプッシュを修正
  • ユーザーがセキュリティの問題がわかっているgemを無知に引っ張るのを防ぎます

私はそのようなケースを管理する必要はありませんでしたが、3つのオプションがあります:

  • それ以降のバージョンが存在する場合は、gemをアップグレードしてください
  • gemをダウンロードし(正当な理由でディスカッションプロセスの後で完全に削除されていない限り、gemはまだダウンロード可能であるとドキュメントに記載されています)、gemfileでローカルバージョンを指定します
  • 別のgemまたはカスタムコードを中心にコードをリファクタリングする

全体として、宝石をヤンクすることは常に正当な理由で行われる極端な手段であるように思われるので、潜在的に危険または非推奨の宝石に固執するよりもアップグレード/リファクタリングを好むべきです...私は推測します。

于 2013-03-26T12:03:13.687 に答える