Renovatebot在Poetry Python项目中无视配置仍更新全部依赖的问题求助
我看了你的Renovate配置和遇到的问题,应该是配置里的几个细节没处理好,导致包过滤规则没生效。下面给你拆解问题和修复方案:
packageRules的顺序搞反了
Renovate处理packageRules是按从上到下的顺序,后面的规则会覆盖前面的设置。你现在最后一条规则是matchPackagePatterns: ["*"]并设置enabled: false——这条规则会匹配所有包,包括你前面指定要启用的那些,相当于直接覆盖了之前的启用规则。正确的顺序应该是先禁用所有包,再单独启用你需要的包,这样后面的启用规则会覆盖前面的禁用设置。调整后的packageRules应该是这样:"packageRules": [ // 先禁用所有包 { "matchPackagePatterns": ["*"], "enabled": false }, // 再启用指定的包 { "matchPackageNames": [ "python-multipart", "starlette", "aiohttp", "cryptography", "langchain-community", "setuptools" ], "enabled": true }, // 最后分组更新规则(只对启用的包生效) { "updateTypes": ["major", "minor", "patch", "security"], "groupName": "all non-major and major updates" } ],lockFileMaintenance可能在“偷偷”更新所有依赖
你配置了"lockFileMaintenance": {"enabled": true},这个功能是专门用来更新锁文件(比如poetry.lock)里的所有依赖到最新兼容版本的,它会绕过你设置的packageRules!如果你不需要这个自动锁文件维护功能,直接把它设为false:"lockFileMaintenance": { "enabled": false },如果你确实需要锁文件维护,但只想更新指定的包,可以给lockFileMaintenance单独加packageRules:
"lockFileMaintenance": { "enabled": true, "packageRules": [ { "matchPackageNames": [ "python-multipart", "starlette", "aiohttp", "cryptography", "langchain-community", "setuptools" ], "enabled": true }, { "matchPackagePatterns": ["*"], "enabled": false } ] },检查onboarding配置的影响
你设置了"onboarding": true,并且onboardingConfig继承了config:base,这个base配置可能包含默认启用所有包的规则,会和你的自定义规则冲突。如果你的仓库已经完成了首次onboarding流程,可以把onboarding设为false,这样Renovate就会优先使用你根配置里的规则了。
调整完这些配置后,建议触发一次Renovate的重新扫描,看看是否只更新你指定的包了。
备注:内容来源于stack exchange,提问作者Tamilselvan

