1+ {
2+ // Renovate configuration for uv-managed Python project.
3+ "$schema" : "https://docs.renovatebot.com/renovate-schema.json" ,
4+ "extends" : [
5+ "config:base" ,
6+ ":semanticCommits" ,
7+ ":disableRateLimiting"
8+ ] ,
9+ "timezone" : "UTC" ,
10+ // Biweekly schedule: runs early Monday every 2 weeks.
11+ "schedule" : [ "before 06:00 on Monday every 2 weeks" ] ,
12+ "labels" : [ "dependencies" ] ,
13+ "prConcurrentLimit" : 10 ,
14+ "branchConcurrentLimit" : 10 ,
15+ "platformAutomerge" : false ,
16+ "dependencyDashboard" : true ,
17+
18+ // Managers: Python (pyproject) and GitHub Actions. uv.lock is regenerated via post-upgrade task below.
19+ "enabledManagers" : [ "pip" , "github-actions" ] ,
20+ "pip" : {
21+ // Keep broader constraints when appropriate and rely on uv.lock for exact reproducibility.
22+ "rangeStrategy" : "auto"
23+ } ,
24+
25+ // After updating pyproject, refresh uv.lock so PRs are self-contained.
26+ "postUpgradeTasks" : {
27+ "commands" : [ "uv lock" ] ,
28+ "fileFilters" : [ "pyproject.toml" , "uv.lock" ] ,
29+ "executionMode" : "update"
30+ } ,
31+ "packageRules" : [
32+ {
33+ "matchPackageNames" : [ "numpy" ] ,
34+ "separateMinorPatch" : true ,
35+ "stabilityDays" : 3 ,
36+ "labels" : [ "dependencies" , "numpy" ] ,
37+ "automerge" : false
38+ } ,
39+ {
40+ "matchPackageNames" : [ "torch" ] ,
41+ "separateMinorPatch" : true ,
42+ "stabilityDays" : 7 ,
43+ "labels" : [ "dependencies" , "requires-wheels-check" ] ,
44+ "automerge" : false
45+ } ,
46+ {
47+ "matchPackagePatterns" : [ "^sphinx" , "myst-parser" , "pydata-sphinx-theme" , "sphinx-.*" ] ,
48+ "groupName" : "docs-stack" ,
49+ "labels" : [ "dependencies" , "docs" ] ,
50+ "stabilityDays" : 3 ,
51+ "automerge" : false
52+ } ,
53+ {
54+ "matchPackagePatterns" : [ "^sphinx" , "myst-parser" , "pydata-sphinx-theme" , "sphinx-.*" ] ,
55+ "matchUpdateTypes" : [ "patch" ] ,
56+ "automerge" : true
57+ } ,
58+ {
59+ "matchPackagePatterns" : [ "^pytest" , "coverage" , "pytest-.*" ] ,
60+ "groupName" : "test-stack" ,
61+ "labels" : [ "dependencies" , "tests" ] ,
62+ "stabilityDays" : 3 ,
63+ "automerge" : false
64+ } ,
65+ {
66+ "matchPackagePatterns" : [ "^pytest" , "coverage" , "pytest-.*" ] ,
67+ "matchUpdateTypes" : [ "patch" ] ,
68+ "automerge" : true
69+ } ,
70+ {
71+ "matchPackagePatterns" : [ "^lightning$" , "pytorch-lightning" ] ,
72+ "groupName" : "lightning-stack" ,
73+ "labels" : [ "dependencies" ] ,
74+ "automerge" : false
75+ } ,
76+ {
77+ "matchManagers" : [ "github-actions" ] ,
78+ "groupName" : "github-actions" ,
79+ "labels" : [ "dependencies" , "ci" ] ,
80+ "schedule" : [ "before 06:00 on Monday every 4 weeks" ] ,
81+ "automerge" : false
82+ }
83+ ] ,
84+
85+ // Reviewer assignment
86+ "reviewers" : [ "heid-lab/chemtorch-maintainers" ] ,
87+ "assignees" : [ "heid-lab/chemtorch-maintainers" ] ,
88+
89+ // Commit message convention (+emoji). Defaults to upgrade arrow; special cases below.
90+ "commitMessagePrefix" : ":arrow_up: deps:" ,
91+ "commitMessageAction" : "update" ,
92+ "commitMessageTopic" : "{{depName}}" ,
93+
94+ // PR body template (short; release notes are appended automatically)
95+ "prBodyTemplate" : "This PR updates dependencies managed by Renovate.\n\n- Group: {{groupName}}\n- Package: {{depName}}\n- From: {{currentVersion}} -> To: {{newVersion}}\n\nChecklist:\n- [ ] uv lock regenerated (CI or manual)\n- [ ] Tests & docs build pass\n- [ ] (If lightning/torch) Verify PyTorch Geometric extension compatibility.\n\n---\n" ,
96+ }
0 commit comments