フラグの非推奨化

K3sは急速に進化するプロジェクトであり、そのためフラグや設定オプションを非推奨化する方法が必要です。このページでは、フラグや設定オプションを非推奨化するプロセスを説明します。ユーザーがフラグの削除に驚かないようにするために、このプロセスはKubernetesの非推奨ポリシーに似ています。

プロセス

1) フラグはいつでも「非推奨予定」と宣言できます。 2) 「非推奨予定」のフラグは、現在サポートされているすべてのリリースの次のパッチでそのようにラベル付けされなければなりません。さらに、そのフラグは次のマイナーリリースで非推奨になることをユーザーに警告し始めます。 3) 次のマイナーリリースで、フラグはドキュメントで非推奨としてマークされ、コード内で隠しフラグに変換されます。フラグは引き続き動作し、ユーザーに警告を発します。 4) 次のマイナーリリースブランチでは、非推奨のフラグは「非動作」になり、使用すると致命的なエラーが発生します。このエラーは、ユーザーにこのフラグを置き換える新しいフラグや設定を説明しなければなりません。 5) 次のマイナーリリースでは、非動作のフラグはドキュメントおよびコードから完全に削除されます。

プロセスの例:

  • --fooはv1.22.14、v1.23.10、およびv1.24.2に存在します。

  • v1.24.2のリリース後、--foo--new-fooに置き換えるために非推奨にすることが決定されます。

  • v1.22.15、v1.23.11、およびv1.24.3では、--fooは引き続き存在しますが、ユーザーに警告します:

    [Warning] --fooはv1.25.0で非推奨になります。代わりに`--new-foo`を使用してください

    --fooはv1.22、v1.23、およびv1.24のライフサイクル中は引き続き動作フラグとして存在します。

  • v1.25.0では、--fooはドキュメントで非推奨としてマークされ、コード内で隠されます。引き続き動作し、ユーザーに--new-fooに移行するよう警告します。

  • v1.26.0では、--fooを使用すると致命的なエラーが発生します。エラーメッセージは次のようになります:

    [Fatal] exit 1: --fooはサポートされなくなりました。代わりに--new-fooを使用してください
  • v1.27.0では、--fooはすべてのコードおよびドキュメントから完全に削除されます。