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