Skip to content

Versioning#

Ruff は、破壊的な変更にはマイナーバージョン番号を使用し、バグ修正にはパッチバージョン番号を使用するカスタムバージョニングスキームを使用しています。Ruff にはまだ安定した API がない;Ruff の API が安定すると、メジャーバージョン番号とセマンティックバージョニングが使用されます。

Version changes#

マイナーバージョンの増加は、次の場合に発生します。:

  • 推奨されていないオプションや機能が削除された
  • 後方互換性のない方法での設定変更
  • これは1.0.0までのマイナーなバージョン変更で発生する可能性がありますが、一般的には避けるべきです。
  • 新しいファイルタイプのサポートが安定版に昇格
  • サポート終了の Python バージョンのサポートが廃止
  • リンター:

  • ルールが安定状態にプロモートされた。

  • 安定ルールの動作が変更された。
    • 安定したルールの範囲が大幅に拡大された。
    • ルールの目的が変更された。
    • ルールの当初の意図に従ったバグ修正は含まれない。
  • 安定ルールがデフォルト・セットに追加された。
  • 安定ルールがデフォルト・セットから削除された。
  • ルールの安全な修正が安定版に昇格された。

  • フォーマッタ:

  • ステーブル版のスタイルが変更された

  • 言語サーバー:

  • 既存の機能が削除された。

  • 推奨されないサーバー設定が削除された。

Patchバージョンの上昇は、次の場合に発生します。:

  • バグ修正。バグを修正する動作の変更を含む
  • 新しい設定オプションが下位互換性のある方法で追加された(フォーマットの変更や新しい lint エラーはありません)。
  • 新しい Python バージョンのサポートが追加された。
  • 新しいファイルタイプのサポートがプレビューで追加された。
  • オプションまたは機能が廃止された。
  • リンター:

  • ルールの安全でない修正が追加された。

  • ルールの安全な修正がプレビューに追加された。
  • ルールの範囲がプレビューで拡大された。
  • 修正の適用可能性が低下した。
  • ルールがプレビューに追加された。
  • プレビュー規則の動作が変更された。

  • フォーマッタ:

  • 無効な構文、プログラムのセマンティクスの変更、またはコメントの削除を防ぐために、安定したスタイルが変更された。

  • プレビュースタイルが変更された。

  • 言語サーバー:

  • 新しい機能のサポートが追加された

  • 新しいサーバ設定が追加された
  • サーバ設定が推奨されていない

Preview mode#

プレビューモードを使用すると、新しい不安定なルールや機能(新しいファイルタイプのサポートなど)を有効にできます。

プレビューモードは、コミュニティのフィードバックを収集し、変更が最終的なメリットであるという確信を得るのに役立つことを目的としています。

プレビューモードは、不完全な作業や削除される可能性のある機能へのアクセスをゲートすることを意図したものではありません。ただし、プレビュー機能やルールの削除を含め、モードによってゲートされたいくつかの動作を変更する権利を留保します

Rule stabilization#

規則を変更または追加する場合は、次のガイドラインに従います。:

  • 新しいルールは常にプレビューモードで追加する必要がある。
  • 新しいルールは、安定版に昇格される前に、少なくとも 1 つのマイナーリリースの間はプレビューモードのままとなる。
  • 0.6.1などのパッチリリースで追加された場合、ルールは0.8.0まで安定版の対象とならない。
  • 安定したルールの動作は、パッチバージョンでは大幅に変更されない。
  • 安定したルールへの昇格は、それらを単一のマイナーリリースに"バッチ"するために遅延される可能性がある。
  • プレビュー中のすべてのルールが特定のマイナーリリースで昇格される必要はない。

Fix stabilization#

修正には、次の 3 つの適用可能レベルがあります。:

  • Display: 適用されず、表示のみとなる。
  • Unsafe: 明示的なオプトインで適用できる。
  • Safe: 自動的に適用できる。

ルールの修正は、低い適用可能性で導入され、高い適用可能性にプロモートされる場合があります。修正の適用可能性を減らすことは、重大な変更ではありません。特定の修正の適用可能性は、プレビュー・モードが有効になっている場合に変更されることがあります。

Visual Studio Code Extension#

拡張機能用の Visual Studio Codedoes not support pre-releasetags。その結果、Ruff は安定リリースとプレビューリリースを区別するために次のスキームを使用します。:

安定版リリースでは、マイナーバージョンコンポーネントに偶数が使用されます:2024.30.02024.32.02024.34.0

プレビューリリースでは、マイナーバージョンコンポーネントに奇数が使用されています:2024.31.02024.33.02024.35.0