Coexisting with Renovate¶
Renovate and this action own different halves of the problem — keep both:
| Concern | Owner |
|---|---|
| New upstream releases (bump upper ranges, lockfile) | Renovate |
| GitHub Actions, Docker, pre-commit, dev-tool updates | Renovate |
| Lockfile maintenance | Renovate |
| Rolling lower-bound policy (SPEC 0 support windows) | this action |
requires-python floor |
this action |
Renovate does not implement time-based minimum-version policies; this action never touches upper bounds or unmanaged ecosystems.
Avoiding fights¶
- Keep Renovate's
rangeStrategyat"bump"(raises upper constraints) or"replace"— not"widen"— forpep621, so Renovate does not rewrite your floors back. - The PRs this action opens (via
create-pull-request) use a dedicated branch (dependency-support-policy/update), which Renovate ignores. - If you want Renovate to stay away from runtime lower bounds entirely, disable them explicitly:
{
"packageRules": [
{
"matchManagers": ["pep621"],
"matchDepTypes": ["project.dependencies"],
"description": "Lower bounds owned by dependency-support-policy.",
"enabled": false
},
{
"matchDatasources": ["python-version"],
"description": "requires-python owned by dependency-support-policy.",
"enabled": false
}
]
}
(Renovate tracks the requires-python constraint through the
python-version datasource, not a pep621 depType.)
This repository's own
renovate.json
follows exactly this split: Renovate bumps only pre-commit hooks and
dependency-groups; the SPEC 0 workflow owns the runtime floors.
Ecosystem packages¶
For sibling packages from your own project family that should always floor at the latest release rather than a time window, see Ecosystem Packages: Latest Floors.