renovatebot / renovate

Home of the Renovate CLI: Cross-platform Dependency Automation by Mend.io
https://mend.io/renovate
GNU Affero General Public License v3.0
17.69k stars 2.33k forks source link

Accept wildcard in matchUpdateTypes #13317

Closed ferferga closed 2 years ago

ferferga commented 2 years ago

What would you like Renovate to be able to do?

One thing we love from renovate is trhe ability to group dependency updates together, so we're not constantly spammed by Pull Requests.

Grouping is based in the set of rules specified by the user in renovate.json. If not specifying the matchUpdateTypes array, by default, the major/minor/patch groups will be separated. If you want to group them together, you must include them, as can be seen in this preset.

However, maybe you want to include all the update types possible (pin, bump, rollback, etc... All the available updateTypes are listed here). This is not possible in a clean way right now, as you need to define all of them in the array. Here's a real example in our jellyfin-vue repository

As with [matchPackageNames](https://docs.renovatebot.com/configuration-options/#matchpackagenames), it's great to have regular expressions to simplify and clean up the array's definition in the config file. In the case of matchUpdateTypes no much more regular expressions are useful besides the wildcard, so just adding wildcard support for it must be enough.

If you have any ideas on how this should be implemented, please tell us here.

If the user's provided array includes an asterisk * (the wildcard character), all the possible update types must be taken into consideration for matching the filter.

This can be done code-wise by just checking if the array includes an asterisk and, if it does, use the default updateTypes array, that includes all the possible updateTypes that renovate handles.

Is this a feature you are interested in implementing yourself?

Yes

viceice commented 2 years ago

If you remove the match update type completely, the rule will be applied to all updates.

So i don't think we need the wildcard

ferferga commented 2 years ago

When setting up renovate I had no matchUpdateTypes specified and I recall it separating minor and patch updates in the configuration resume it provides prior configuration.

Now you're making me doubt, I'll check when we get another round of updates from it in our repo and update the issue (and the linked PR) accordingly.

viceice commented 2 years ago

You should look at the separateXXX config options.

rarkins commented 2 years ago

I think you'll find that default behaviour is to split major and non-major into two groups, but you can change that by setting separateMajorMinor=false. It's a setting I advise to use sparingly though, because major updates are often breaking

ferferga commented 2 years ago

@rarkins @viceice Hello again guys!

Finally had some time to check what you say and I can confirm that without the array in a test repo, I get the same PRs 👍. Must have been an overlook from my side during the onboarding process.

Thank you very much for your work in renovate, it's an awesome tool!

rarkins commented 2 years ago

I'm happy if anyone else in future wants to request this feature though - there's at least one use case for it

viceice commented 2 years ago

Which use case? It's essentially the same like not adding the match to the rule. 🤔

rarkins commented 2 years ago

IIRC it's when you want to Eg disable all updates except patch. Depends whether you prefer listing all update types except patch or doing two rules - one disabling all and then a second enabling only patch