Skip to content

版本策略

Oxlint 遵循语义化版本控制,旨在为您的升级提供清晰性和可预测性。

被视为破坏性变更的内容:

  • 会破坏现有工作流程的 CLI 接口更改。
  • 会破坏现有设置的配置文件(.oxlintrc.json)更改。
  • 重命名或移除规则。

被视为非破坏性变更的内容:

  • 添加新的 lint 规则。
  • 更改规则的默认配置。
  • 改进规则描述或诊断消息。
  • 为现有规则添加新的配置选项。
  • 更改规则行为以更好地与原始 ESLint 规则行为对齐的修复。
  • 向配置文件添加新字段。

不受 Semver 约束的功能

以下功能不受语义化版本控制约束。它们可能随时引入破坏性变更,即使在补丁或次要版本中:

  • JavaScript 自定义插件 - 插件 API 和行为可能随时更改,恕不通知。
  • 类型感知 lint - 类型感知规则及其行为可能随着此功能的演进而更改。

新的 Lint 错误是破坏性变更吗?

如果 Oxlint 的新版本在您的代码中报告了额外的问题,这是预期行为。此行为意味着 Oxlint 已经改进——而不是您的项目出了问题。新错误反映更强的分析能力,而不是失败的升级。

新版本的预期内容

  • 补丁版本(1.0.x):Bug 修复、性能改进、内部重构。这些升级始终是安全的。
  • 次要版本(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 # 一次一个 PR

如果您使用 eslint-plugin-oxlint,请确保它也与 Oxlint 一同更新,以避免兼容性问题。