renovatebot / config-help

Please use the Discussions feature of https://github.com/renovatebot/renovate instead
https://github.com/renovatebot/renovate/discussions
MIT License
27 stars 16 forks source link

Gradle disable dependencies, but allow plugins #321

Closed ZyanKLee closed 5 years ago

ZyanKLee commented 5 years ago

Which Renovate are you using? CLI, App, or Pro

CLI

Which platform are you using? GitHub, GitLab, Bitbucket Azure DevOps

Bitbucket

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

no

What is your question?

Within https://github.com/renovatebot/renovate/pull/4170 the feature for updating gradle plugins (in addition to the already implemented dependencies updating) was implemented. Is it possible to disable the processing of dependencies, but allow plugins - or vice-versa?

rarkins commented 5 years ago

This might be possible by using a package rule with “depTypes” filter. Need to check if Gradle extraction uses a different delType for plugins, but I think it does.

ZyanKLee commented 5 years ago

Did you find the time to have a look at it?

rarkins commented 5 years ago

Can you check the logs for a run on your repo and see if the gradle deps include a "depTypes" field or any indication that they are a plugin?

ZyanKLee commented 5 years ago

Is this what you were refering to?

14:50:08   INFO: Extracting dependencies from all gradle files (repository=teamname/reponame)
14:50:09   INFO: Gradle report complete (repository=teamname/reponame)
14:50:09   INFO: Found gradle package files (repository=teamname/reponame)

I'll dig around some more. Perhaps I can see something more using debugging for example.

rarkins commented 5 years ago

I'm looking for a DEBUG message that is "packages with updates"

ZyanKLee commented 5 years ago

here it is:

         "gradle": [
           {
             "packageFile": "build.gradle",
             "manager": "gradle",
             "datasource": "maven",
             "deps": [
               {
                 "name": "markdown-confluence-gradle-plugin",
                 "depGroup": "gradle.plugin.com.github.qwazer",
                 "depName": "gradle.plugin.com.github.qwazer:markdown-confluence-gradle-plugin",
                 "currentValue": "0.8",
                 "registryUrls": [
                   "https://nexus.internal/repository/3rdparty/",
                   "https://nexus.internal/repository/maven-releases/",
                   "https://nexus.internal/repository/maven-public/",
                   "https://repo.maven.apache.org/maven2/",
                   "https://nexus.internal/repository/gradle-proxy/",
                   "https://plugins.gradle.org/m2"
                 ],
                 "updates": [
                   {
                     "fromVersion": "0.8",
                     "toVersion": "0.9.1",
                     "newValue": "0.9.1",
                     "newMajor": 0,
                     "newMinor": 9,
                     "updateType": "minor",
                     "isSingleVersion": true
                   }
                 ],
                 "warnings": [],
                 "sourceUrl": null,
                 "releases": ["0.8", "0.9.1"]
               }
rarkins commented 5 years ago

Is it possible to capture them all if you use a filter like "packagePatterns": ["^gradle.plugin.com"]? Or do some have different prefixes?

rarkins commented 5 years ago

I think we need a feature request in the main repo to include depType in gradle extracted

ZyanKLee commented 5 years ago

This is the list of gradle deps:

[
  {
    "name": "markdown-confluence-gradle-plugin",
    "depName": "gradle.plugin.com.github.qwazer:markdown-confluence-gradle-plugin",
    "depGroup": "gradle.plugin.com.github.qwazer"
  },
  {
    "name": "org.ajoberstar.grgit.gradle.plugin",
    "depName": "org.ajoberstar.grgit:org.ajoberstar.grgit.gradle.plugin",
    "depGroup": "org.ajoberstar.grgit"
  },
  {
    "name": "net.researchgate.release.gradle.plugin",
    "depName": "net.researchgate.release:net.researchgate.release.gradle.plugin",
    "depGroup": "net.researchgate.release"
  },
  {
    "name": "hybris-commerce-suite",
    "depName": "de.hybris.platform:hybris-commerce-suite",
    "depGroup": "de.hybris.platform"
  },
  {
    "name": "org.jacoco.agent",
    "depName": "org.jacoco:org.jacoco.agent",
    "depGroup": "org.jacoco"
  },
  {
    "name": "mysql-connector-java",
    "depName": "mysql:mysql-connector-java",
    "depGroup": "mysql"
  },
  {
    "name": "sonar-scanner-cli",
    "depName": "org.sonarsource.scanner.cli:sonar-scanner-cli",
    "depGroup": "org.sonarsource.scanner.cli"
  },
  {
    "name": "memcached-session-manager",
    "depName": "de.javakaffee.msm:memcached-session-manager",
    "depGroup": "de.javakaffee.msm"
  },
  {
    "name": "memcached-session-manager-tc7",
    "depName": "de.javakaffee.msm:memcached-session-manager-tc7",
    "depGroup": "de.javakaffee.msm"
  },
  {
    "name": "jedis",
    "depName": "redis.clients:jedis",
    "depGroup": "redis.clients"
  },
  {
    "name": "ant-contrib",
    "depName": "ant-contrib:ant-contrib",
    "depGroup": "ant-contrib"
  },
  {
    "name": "yuicompressor",
    "depName": "com.yahoo.platform.yui:yuicompressor",
    "depGroup": "com.yahoo.platform.yui"
  },
  {
    "name": "yuicompressor-ant-task",
    "depName": "net.noha.tools:yuicompressor-ant-task",
    "depGroup": "net.noha.tools"
  },
  {
    "name": "markdown-confluence-gradle-plugin",
    "depName": "gradle.plugin.com.github.qwazer:markdown-confluence-gradle-plugin",
    "depGroup": "gradle.plugin.com.github.qwazer"
  },
  {
    "name": "org.ajoberstar.grgit.gradle.plugin",
    "depName": "org.ajoberstar.grgit:org.ajoberstar.grgit.gradle.plugin",
    "depGroup": "org.ajoberstar.grgit"
  },
  {
    "name": "net.researchgate.release.gradle.plugin",
    "depName": "net.researchgate.release:net.researchgate.release.gradle.plugin",
    "depGroup": "net.researchgate.release"
  },
  {
    "name": "hybris-commerce-suite",
    "depName": "de.hybris.platform:hybris-commerce-suite",
    "depGroup": "de.hybris.platform"
  },
  {
    "name": "org.jacoco.agent",
    "depName": "org.jacoco:org.jacoco.agent",
    "depGroup": "org.jacoco"
  },
  {
    "name": "mysql-connector-java",
    "depName": "mysql:mysql-connector-java",
    "depGroup": "mysql"
  },
  {
    "name": "sonar-scanner-cli",
    "depName": "org.sonarsource.scanner.cli:sonar-scanner-cli",
    "depGroup": "org.sonarsource.scanner.cli"
  },
  {
    "name": "memcached-session-manager",
    "depName": "de.javakaffee.msm:memcached-session-manager",
    "depGroup": "de.javakaffee.msm"
  },
  {
    "name": "memcached-session-manager-tc7",
    "depName": "de.javakaffee.msm:memcached-session-manager-tc7",
    "depGroup": "de.javakaffee.msm"
  },
  {
    "name": "jedis",
    "depName": "redis.clients:jedis",
    "depGroup": "redis.clients"
  },
  {
    "name": "ant-contrib",
    "depName": "ant-contrib:ant-contrib",
    "depGroup": "ant-contrib"
  },
  {
    "name": "yuicompressor",
    "depName": "com.yahoo.platform.yui:yuicompressor",
    "depGroup": "com.yahoo.platform.yui"
  },
  {
    "name": "yuicompressor-ant-task",
    "depName": "net.noha.tools:yuicompressor-ant-task",
    "depGroup": "net.noha.tools"
  }
]

Selecting those that match /^.+gradle[.-]plugin$/ would catch those we use at least:

buildscript {
        dependencies {
                classpath "gradle.plugin.com.github.qwazer:markdown-confluence-gradle-plugin:0.8"
        }
}

plugins {
        id 'org.ajoberstar.grgit' version '1.7.2'
        id 'net.researchgate.release' version '2.6.0'
}
rarkins commented 5 years ago

In that case, this hopefully solves your scenario for now:

  "packageRules": [{
    "managers": ["gradle"],
    "excludedPackagePatterns": ["^.+gradle[.-]plugin$"],
    "enabled": false
  }]
stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed soon if no further activity occurs.

ZyanKLee commented 5 years ago

That worked as intended, thank you!