Renovate: Maven manager should not update LATEST to a version

Created on 24 Nov 2020  路  18Comments  路  Source: renovatebot/renovate

Which Renovate are you using?

Renovate Open Source CLI

Which platform are you using?

GitHub.com

Have you checked the logs? Don't forget to include them if relevant

What would you like to do?

My github PR Demo is: https://github.com/zbyufei/mvn2releasetest/pull/1
My pom.xml is:

        <dependency>
            <groupId>org.jetbrains</groupId>
            <artifactId>annotations</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>

In fact, there are still outdated maven2.x configurations such as <version>LATEST</version> and <version>RELEASE</version> in my organization and don't want to upgrade org.jetbrains:annotations from RELEASE to 20.1.0, So how to filter the version as LATEST/ RELEASE in maven not included RELEASE update

now is:

Package | Update | Change
-- | -- | --
org.apache.commons:commons-lang3聽(source) | minor | 3.0聽->聽3.11
org.jetbrains:annotations | minor | RELEASE聽->聽20.1.0
com.alibaba:fastjson | patch | 1.1.20聽->聽1.1.35

but i only want:
Package | Update | Change
-- | -- | --
org.apache.commons:commons-lang3聽(source) | minor | 3.0聽->聽3.11
com.alibaba:fastjson | patch | 1.1.20聽->聽1.1.35

maven priority-2-important bug

Most helpful comment

@viceice I think @zharinov is working on a root fix for Maven anyway

All 18 comments

Please provide debug logs for this problem. Try to include only the relevant lines, e.g. for the particular dependency and/or branch that's relevant.

Please do not copy paste your entire unfiltered logs. Go through the logs yourself and paste here only the parts which seem relevant.

The current description of what you're trying to solve is not clear enough. Please add comments which better explain what you're trying to achieve, what's going wrong, etc.

I don't want to upgrade org.jetbrains:annotations RELEASE聽->聽20.1.0, how to filter the version as <version>LATEST</version> and <version>RELEASE</version> and so it disappear in the PR https://github.com/zbyufei/mvn2releasetest/pull/1

Package | Update | Change
-- | -- | --
org.apache.commons:commons-lang3聽(source) | minor | 3.0聽->聽3.11
org.jetbrains:annotations | minor | RELEASE聽->聽20.1.0
com.alibaba:fastjson | patch | 1.1.20聽->聽1.1.35

Thanks for the clarification. I don't think this is intended behavior and as such we should treat it as a bug. @zharinov can you confirm?

@zbyufei does the problem still occur if you take away the grouping?

@zbyufei does the problem still occur if you take away the grouping?

when i take away the grouping, the problem still occur, Please see https://github.com/zbyufei/mvn2releasetest/pull/9

A workaround is to disable org.jetbrains:annotations dep, so renovate would never suggest any updates.

{
...
  "packageRules": [
  ...
  {
    "packageNames": ["org.jetbrains:annotations"],
    "enabled": false
  }
  ...
  ]
...
}

A workaround is to disable org.jetbrains:annotations dep, so renovate would never suggest any updates.

{
...
  "packageRules": [
  ...
  {
    "packageNames": ["org.jetbrains:annotations"],
    "enabled": false
  }
  ...
  ]
...
}

Thanks, but it is difficult to do the same standard specifications about pom.xml for each project with many developers, some project is org.jetbrains:annotations:LATEST, some project is org.jetbrains:annotations:18.0, Many packages will have this problem. So i hope maven manager should not update LATEST(RELEASE) to a version.

Ok, you can use matchCurrentVersion to be more explicit

  {
    "packageNames": ["org.jetbrains:annotations"],
    "matchCurrentVersion": "/^(LATEST|RELEASE)$/",
    "enabled": false
  }

Ok, you can use matchCurrentVersion to be more explicit

  {
    "packageNames": ["org.jetbrains:annotations"],
    "matchCurrentVersion": "/^(LATEST|RELEASE)$/",
    "enabled": false
  }

Thanks, but first, I must find out which packages are used "/^(LATEST|RELEASE)$/" is too difficult, because there are 5000+ repositories. and each repository has the specifications standard about pom.xml. Second packageRules is too long.

@viceice perhaps we should have this in our workarounds preset until we resolve it?

  {
    "managers": ["maven"],
    "matchCurrentVersion": "/^(LATEST|RELEASE)$/",
    "enabled": false
  }

sure, if it works? can't test it, as i've no maven repos. 馃檭

sure, if it works? can't test it, as i've no maven repos. 馃檭

Thanks, and it's OK, When i add

 {
    "managers": ["maven"],
    "matchCurrentVersion": "/^(LATEST|RELEASE)$/",
    "enabled": false
  }

in packageRules, Please see my new test repository https://github.com/zbyufei/release-new-test.

@zbyufei Thanks for verifying, I'll post a pr to add this to our workaround soon

@viceice I think @zharinov is working on a root fix for Maven anyway

https://github.com/zbyufei/release-new-test-group/ this is test case with grouping, it's also OK!
ths @viceice @rarkins
renovate is great project!!!

:tada: This issue has been resolved in version 23.86.2 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ChristianMurphy picture ChristianMurphy  路  4Comments

hutson picture hutson  路  3Comments

amilajack picture amilajack  路  3Comments

jeromelachaud picture jeromelachaud  路  3Comments

OmgImAlexis picture OmgImAlexis  路  4Comments