Skip to content

版本控制策略

Oxlint 遵循语义化版本控制(Semantic Versioning),旨在为您提供清晰且可预测的升级体验。

被视为 破坏性更改 的内容包括:

  • 会破坏现有工作流程的 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 # 每次只打开一个 Pull Request

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