Skip to content

バージョニング方針

Oxlint は、アップグレード時に明確さと予測可能性を提供することを目的として、セマンティックバージョニングに従います。

以下の変更は 破壊的変更 とみなされます:

  • 既存のワークフローを破壊する可能性のある CLI インターフェースの変更。
  • 既存の設定を破壊する可能性のある構成ファイル(.oxlintrc.json)の変更。
  • ルールの名前の変更または削除。

以下の変更は 非破壊的変更 とみなされます:

  • 新しいルールの追加。
  • ルールのデフォルト構成の変更。
  • ルールの説明や診断メッセージの改善。
  • 既存のルールに新しい構成オプションの追加。
  • 元の ESLint ルールの動作にさらに整合性を持たせるようにルールの動作を修正した場合。
  • 構成ファイルへの新しいフィールドの追加。

セマンティックバージョニングの対象外となる機能

以下の機能は 実験的 であり、セマンティックバージョニングの対象ではありません。パッチ版やマイナーバージョンでも、いつでも破壊的変更が導入される可能性があります:

  • JavaScriptカスタムプラグイン - プラグイン API およびその動作は、事前通知なく変更される可能性があります。
  • 型対応の検査 - 型対応ルールおよびその動作は、この機能の進化に伴い変更される可能性があります。

新しいリンティングエラーは破壊的変更ですか?

Oxlint の新しいバージョンがコード内でより多くの問題を報告するのは想定内のことで、これは正常な動作です。この挙動は、Oxlint が改善されたことを意味するものであり、プロジェクト内の何かが壊れたということではありません。新しいエラーは、より強力な分析の結果であるだけであり、アップグレードが壊れているわけではありません。

新バージョンで期待されること

  • パッチバージョン(1.0.x):バグ修正、パフォーマンス改善、内部リファクタリング。これらの変更は常に安全にアップグレードできます。
  • マイナーバージョン(1.x.0):新しいルール、より良い診断、新機能。これらは、コードベースに新しいエラーが出る場合でも、破壊的変更とは見なされません。
  • メジャーバージョン(x.0.0):CLI または構成形式に関する破壊的変更のために予約されています。

Renovate Bot との連携

以下のスニペットをあなたの Renovate 設定に追加することで、Oxlint を自動的に最新状態に保つことができます。

renovate.json
json
{
  "extends": ["config:recommended"],
  "packageRules": [
    {
      "matchPackageNames": ["oxlint"],
      "groupName": "oxlint",
      "automergeType": "branch",
      "stabilityDays": 1
    }
  ]
}

eslint-plugin-oxlint を使用している場合は、Oxlint と一緒に更新することを確認して、互換性の問題を回避してください。

Dependabot との連携

以下のスニペットをあなたの Dependabot 設定に追加することで、Oxlint を自動的に最新状態に保つことができます。

yaml
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/" # package.json の場所
    schedule:
      interval: "daily"
    groups: # すべての Oxlint 更新をまとめる
      oxlint:
        patterns:
          - "oxlint"
    commit-message: # 変更履歴を整理する
      prefix: "chore"
      include: "scope"
    ignore: # 任意:将来のメジャーアップデートを無視
      - dependency-name: "oxlint"
        update-types: ["version-update:semver-major"]
    open-pull-requests-limit: 1 # 1つのプルリクエストずつ

eslint-plugin-oxlint を使用している場合は、Oxlint と一緒に更新することを確認して、互換性の問題を回避してください。