I'm wondering why some of the dependency updates have a fix(deps) PR while others have a chore(deps) PR. What is the logic for deciding between the two?
package dpendencies are fix and devDependencies are chore. Both these are configurable though, so let me know if you want some other behaviour.
Minor updates to dependencies are supposed to be backwards compatible by the commit standards, so it does not make sense to me to release a new version until I actually use any of it. But if I can configure it, that's also fine.
So you want fix only if it鈥檚 a major dependency update and chore for everything else?
Yes. Is there a way to specify this for specific dependencies too? That would be ideal.
Yes it鈥檚 possible. I鈥檒l respond with exactly how tomorrow
So to begin with, the reason you are seeing the current behaviour is that Renovate's default preset for this is :semanticPrefixFixDepsChoreOthers. i.e. fix for dependencies and chore for others.
If you wished to reset everything to chore, you could add the preset :semanticCommitTypeAll(chore) to your extends array. It says to chore everything.
If you wish to then use fix only for major upgrades to dependencies, then you need to also add this configuration:
"dependencies": {
"major": {
"semanticCommitType": "fix"
}
}
This is a more specific override than the earlier one, i.e. it essentially says "but for major updates of package.json>dependencies, use the "fix" semantic commit type".
Let's say you also have a dependency "foobar" that you think needs "fix" for minor updates too. In that case you need a packageRule:
"packageRules": [{
"packageNames": ["foobar"],
"minor": {
"semanticCommitType": "fix"
}
}]
Combining all these together would look like:
{
"extends": ["config:base", ":semanticCommitTypeAll(chore)"],
"dependencies": {
"major": {
"semanticCommitType": "fix"
}
},
"packageRules": [
{
"packageNames": ["foobar"],
"minor": {
"semanticCommitType": "fix"
}
}
]
}
Wonderful! I'll experiment with this tomorrow. How does this combine with autoMerge? Can I also put that on every level in your example above?
Yes, you can add "automerge": true in the same places where the "semanticCommitType" configuration options already are.
If you are making config changes feel free to always post an issue to https://github.com/renovateapp/config-help first for me to look at, or @rarkins me from any public PR and I should see it.