AI / RenovateBot Interview Questions
How does Renovate handle versioning and range strategies for different package ecosystems?
Renovate's rangeStrategy controls how it modifies version constraints when an update is available.
| Value | Behaviour | Example |
|---|---|---|
| auto (default) | Picks the best strategy per manager | npm → replace; pip → pin |
| pin | Convert ranges to exact pinned versions | ^1.2.0 → 1.3.0 |
| bump | Bump the range to include the new version | ^1.2.0 → ^1.3.0 |
| replace | Replace with a new equivalent range | >=1.0.0 <2.0.0 → >=1.3.0 <2.0.0 |
| widen | Widen the range to include the new version | ^1.2.0 → >=1.2.0 <3.0.0 |
| update-lockfile | Only update the lockfile, keep range unchanged | package.json unchanged |
{ "rangeStrategy": "pin", "packageRules": [ { "matchFileNames": ["packages/*/package.json"], "rangeStrategy": "bump" }, { "matchFileNames": ["apps/*/package.json"], "matchDepTypes": ["dependencies"], "rangeStrategy": "update-lockfile" } ] }
What does rangeStrategy 'pin' do to a version constraint like '^1.2.0'?
What is the practical difference between rangeStrategy 'pin' and 'update-lockfile'?
More Related questions...