版本策略
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 最新。
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 一同更新,以避免兼容性问题。