go.modでのバージョンRetract

モジュール作者がretractディレクティブを使用して、公開されたバージョンを壊れたまたは意図しないものとしてマークする方法を学びます。単一バージョンとバージョン範囲のリトラクションをコメント付きで理解します。

Directives

詳細な説明

Retractディレクティブ

retractディレクティブにより、モジュール作者は公開されたバージョンを使用すべきではないとマークできます。exclude(消費者向け)とは異なり、retractはモジュール作者が自身のgo.modで宣言します。

単一バージョンのリトラクション

retract v1.0.0 // 間違ったAPIで公開

バージョン範囲のリトラクション

retract [v1.0.0, v1.2.0] // この範囲のすべてのバージョンにデータバグあり

リトラクションの動作

  1. モジュール作者が新しいバージョンのgo.modにretractディレクティブを追加
  2. 新しいバージョンのgo.modが公開される必要がある(自分自身をリトラクトできない)
  3. ユーザーがgo getgo listを実行すると、リトラクトされたバージョンは非表示になる

リトラクションコメント

retractディレクティブのコメントは、リトラクトされたバージョンを使用しようとするユーザーに表示されます。コメントはリトラクションの理由を説明し、代替を提案します。

ベストプラクティス

  • リトラクション理由を説明するコメントを必ず含める
  • コメントで代替バージョンを提案する
  • パッチリリースでリトラクションを公開する
  • 複数の連続バージョンが影響を受ける場合は範囲を使用

ユースケース

Retractディレクティブは、壊れたバージョンを誤って公開したモジュール作者にとって不可欠です。バージョンの削除(Goのプロキシキャッシュが防止)の代わりに、リトラクトします。フォーマッターはリトラクトコメントを保持し、重要なユーザー向けドキュメントとして機能します。

試してみる — go.mod Formatter

フルツールを開く