Renovate: Handle prereleases and named stable releases in Gradle

Created on 16 Nov 2018  路  7Comments  路  Source: renovatebot/renovate

What would you like Renovate to be able to do?

When renovate opens pull requests for Gradle, it would be a nice enhancement if the ignoreUnstable unstable option could filter out alpha, beta, and rc tags.

Describe the solution you'd like

the ability to filter out known unstable tags:

  • rc
  • beta
  • alpha

and the ability to allow known stable tags

  • final
  • release

Describe alternatives you've considered

It could be that the existing filter can already handle this, but is having trouble with Gradle dependencies.

Additional context

While testing the new gradle support with config:base, https://github.com/Jasig/uPortal/pull/1411 was opened, upgrading to a pre-release 1.3.0-alpha4 which should ideally be out of range.
While it would be nice to keep Spring upgrades that use the format 4.3.20.RELEASE and Hibernate upgrades that use the format 4.2.21.Final

priority-3-normal bug

Most helpful comment

@JamieMagee I think/hope we're getting close to Gradle's rewrite, after which all of Renovate's unstable filtering capabilities will be automatically included: https://github.com/renovatebot/renovate/pull/3062

All 7 comments

This is potentially partly a limitation of the third party tool we're leaning on. I had also noticed that it proposed unstable-looking updates during testing. A further problem of that is that I presume it might "skip over" stable versions to propose the unstable one. e.g. existing might be 1.0.0 and 1.0.1 exists but the tool suggests 1.1.0-alpha.1. @corecanarias do you know if this is configurable?

Related: we would probably use loose versioning for Gradle but right now the tool's lookup results are bypassing our usual lookup algorithm where we filter out unstable, classify as major/minor/patch, etc.

Came across another edge case worth noting here:
Gauva, utility library for Java, uses a split versioning approach.
Each stable version comes in a jre and an android flavor.
E.G. https://mvnrepository.com/artifact/com.google.guava/guava/27.0-jre and https://mvnrepository.com/artifact/com.google.guava/guava/27.0-android

Hi, @ChristianMurphy Thank you those use cases will help to tune the gradle support :)

I saw your comment in the gradle-versions plugin. Let's see if we can get that pr merged, and then we can add the support for that new parameter in the renovate config.

Meanwhile, you could try to workaround it with the example configuration in the gradle-versions plugin: Search for dependencyUpdates.resolutionStrategy in https://github.com/ben-manes/gradle-versions-plugin

I understand that gradle/maven versioning was added to renovate recently, and it looks like the pr in gradle-versions-plugin is also merged. What is missing to connect these two together? And is there anywhere that I can help?

@JamieMagee I think/hope we're getting close to Gradle's rewrite, after which all of Renovate's unstable filtering capabilities will be automatically included: https://github.com/renovatebot/renovate/pull/3062

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Arcanemagus picture Arcanemagus  路  4Comments

Siilwyn picture Siilwyn  路  4Comments

jeromelachaud picture jeromelachaud  路  3Comments

Flydiverny picture Flydiverny  路  4Comments

ChristianMurphy picture ChristianMurphy  路  4Comments