go.modでのバージョンRetract
モジュール作者がretractディレクティブを使用して、公開されたバージョンを壊れたまたは意図しないものとしてマークする方法を学びます。単一バージョンとバージョン範囲のリトラクションをコメント付きで理解します。
Directives
詳細な説明
Retractディレクティブ
retractディレクティブにより、モジュール作者は公開されたバージョンを使用すべきではないとマークできます。exclude(消費者向け)とは異なり、retractはモジュール作者が自身のgo.modで宣言します。
単一バージョンのリトラクション
retract v1.0.0 // 間違ったAPIで公開
バージョン範囲のリトラクション
retract [v1.0.0, v1.2.0] // この範囲のすべてのバージョンにデータバグあり
リトラクションの動作
- モジュール作者が新しいバージョンのgo.modに
retractディレクティブを追加 - 新しいバージョンのgo.modが公開される必要がある(自分自身をリトラクトできない)
- ユーザーが
go getやgo listを実行すると、リトラクトされたバージョンは非表示になる
リトラクションコメント
retractディレクティブのコメントは、リトラクトされたバージョンを使用しようとするユーザーに表示されます。コメントはリトラクションの理由を説明し、代替を提案します。
ベストプラクティス
- リトラクション理由を説明するコメントを必ず含める
- コメントで代替バージョンを提案する
- パッチリリースでリトラクションを公開する
- 複数の連続バージョンが影響を受ける場合は範囲を使用
ユースケース
Retractディレクティブは、壊れたバージョンを誤って公開したモジュール作者にとって不可欠です。バージョンの削除(Goのプロキシキャッシュが防止)の代わりに、リトラクトします。フォーマッターはリトラクトコメントを保持し、重要なユーザー向けドキュメントとして機能します。