如何在Renovate中管理非SemVer格式的Python依赖?
解决Renovate无法更新OpenTelemetry预发布版本依赖的问题
你的问题核心是Renovate默认会忽略预发布版本,那些带b0的版本属于PEP440定义的预发布(beta)版本,所以即使指定了versioning,没开启预发布允许的话也不会生成更新PR。
正确配置方案
需要在packageRules中同时指定版本规则和允许预发布版本,完整配置如下:
{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "packageRules": [ { "matchPackagePatterns": ["opentelemetry-*"], "versioning": "pep440", // 明确使用PEP440版本规范,适配Python预发布版本 "allowPreReleases": true, // 关键:允许更新到预发布版本 "enabled": true } ] }
配置说明
versioning: "pep440":比python更精准适配Python的PEP440版本格式,能正确识别和排序0.42b0这类预发布版本。allowPreReleases: true:这是解决问题的核心开关,默认Renovate只会更新稳定版,开启后才会考虑beta、rc等预发布版本。- 如果你的项目后续希望稳定版发布后自动切换,可以额外添加
stabilityDays配置,比如stabilityDays: 7,让稳定版发布7天后再触发更新。
验证方法
配置生效后,Renovate会识别到OpenTelemetry相关依赖的最新预发布版本(比如后续的0.43b0或正式稳定版),并生成对应的更新PR。
内容的提问来源于stack exchange,提问作者cédric dumay
相关产品推荐
相关产品推荐

