> Hopefully it's easy to generate your list again, is there a script? > I see you used usage in plugins :)
I have a parameterized job I can kick off internally (the main bit being the list of things to pass "usage-in-plugins" which was created from the rev-api report.) attached these if anyone want to play (and remember is uses a PR not master of usage in plugins so it will find usage in libraries too!) /James On Friday, May 7, 2021 at 11:16:35 AM UTC+1 timja...@gmail.com wrote: > I see you used usage in plugins :) > > On Fri, 7 May 2021 at 11:14, Tim Jacomb <timja...@gmail.com> wrote: > >> FTR I've removed guava in all maintained azure plugins today (except >> azure-ad, needs a follow up to move to caffeine cache) >> >> Hopefully it's easy to generate your list again, is there a script? >> >> On Fri, 7 May 2021 at 11:09, jn...@cloudbees.com <jn...@cloudbees.com> >> wrote: >> >>> HI Basil, >>> >>> Apologies I said I was going to send this information and didn't get >>> fully round to it. >>> >>> I have an list (attached) of all the braking APIs, and have another list >>> of all plugins that (potentially) use one of the breaking methods either >>> directly (in the plugins main library) or indirectly (via a library bundled >>> with the plugin) The identifications of plugins does include false >>> positives (so is a worst case scenario) due to the nature of the scanning >>> tool I used (https://github.com/jenkins-infra/usage-in-plugins/pull/20) >>> . This list is not filtered so also includes CloudBees proprietary plugins. >>> >>> in summary the following plugins are all potentially affected (some may >>> be only false positives): >>> >>> >>> - >>> - 42crunch-security-audit >>> - active-directory >>> - alauda-kubernetes-support >>> - alauda-pipeline >>> - alibabacloud-ecs >>> - anchore-container-scanner >>> - antisamy-markup-formatter >>> - argus-notifier >>> - artifact-manager-s3 >>> - artifactory >>> - atlassian-jira-software-cloud >>> - audit-trail >>> - aws-beanstalk-publisher-plugin >>> - aws-sqs >>> - aws-yum-parameter >>> - azure-acs >>> - azure-ad >>> - azure-app-service >>> - azure-batch-parallel >>> - azure-commons >>> - azure-container-agents >>> - azure-container-registry-tasks >>> - azure-credentials >>> - azure-dev-spaces >>> - azure-function >>> - azure-vm-agents >>> - azure-vmss >>> - bart >>> - behave-testresults-publisher >>> - bitbucket-pullrequest-builder >>> - blackduck-detect >>> - blueocean-bitbucket-pipeline >>> - blueocean-commons >>> - blueocean-git-pipeline >>> - blueocean-github-pipeline >>> - blueocean-jira >>> - blueocean-pipeline-api-impl >>> - blueocean-pipeline-scm-api >>> - blueocean-rest >>> - blueocean-rest-impl >>> - browserstack-integration >>> - build-failure-analyzer >>> - build-history-metrics-plugin >>> - build-monitor-plugin >>> - build-user-vars-plugin >>> - caliper-ci >>> - cerberus-testing >>> - checkmarx >>> - cloudbees-analytics >>> - cloudbees-api-client >>> - cloudbees-assurance >>> - cloudbees-github-reporting >>> - cloudbees-jsync-archiver >>> - cloudbees-platform-common >>> - cloudbees-rbac-auto-configurer >>> - cloudbees-servicenow-jenkins-plugin >>> - cloudbees-unified-ui >>> - cloudbees-workflow-template >>> - cloudfoundry-bosh-cli >>> - cloudhub-deployer >>> - codebeamer-coverage-publisher >>> - coding-webhook >>> - collabnet >>> - compuware-ispw-operations >>> - configuration-as-code >>> - confluence-publisher >>> - consul-kv-builder >>> - coverity >>> - cucumber-reports >>> - cucumber-testresult-plugin >>> - database >>> - debian-package-builder >>> - defensics >>> - delivery-pipeline-plugin >>> - depgraph-view >>> - deploydb >>> - deployit-plugin >>> - deployment-sphere >>> - devoptics >>> - discobit-autoconfig >>> - docker-build-step >>> - docker-java-api >>> - docker-plugin >>> - docker-traceability >>> - DotCi >>> - DotCi-InstallPackages >>> - DotCiInstallPackages >>> - easyqa >>> - ec2 >>> - ec2-deployment-dashboard >>> - ec2-fleet >>> - elastest >>> - elasticbox >>> - electricflow >>> - envinject >>> - envinject-api >>> - esr-feeder >>> - esr-reporter >>> - Exclusion >>> - extreme-feedback >>> - ez-templates >>> - flaky-test-handler >>> - gating-core >>> - gcp-secrets-manager-credentials-provider >>> - gcr-scanner >>> - gearman-plugin >>> - gerrit-code-review >>> - gerrit-trigger >>> - gerrit-verify-status-reporter >>> - ghprb >>> - git-bisect >>> - git-changelog >>> - git-client >>> - gitee >>> - github >>> - github-autostatus >>> - github-oauth >>> - github-pullrequest >>> - gitlab-oauth >>> - gitlab-plugin >>> - gogs-webhook >>> - google-admin-sdk >>> - google-analytics-usage-reporter >>> - google-cloud-backup >>> - google-cloud-health-check >>> - google-cloudbuild >>> - google-compute-engine >>> - google-container-registry-auth >>> - google-deployment-manager >>> - google-kubernetes-engine >>> - google-oauth-plugin >>> - google-source-plugin >>> - google-storage-plugin >>> - gradle >>> - gravatar >>> - headspin >>> - hipchat >>> - http_request >>> - hubot-steps >>> - hudson-wsclean-plugin >>> - ibm-cloud-devops >>> - in-toto >>> - inedo-buildmaster >>> - inedo-proget >>> - influxdb-query >>> - instana >>> - ios-device-connector >>> - ircbot >>> - jacoco >>> - jclouds-jenkins >>> - jenkins-cloudfoundry-uaa >>> - jgiven >>> - jira >>> - jira-steps >>> - jira-trigger >>> - JiraTestResultReporter >>> - jms-messaging >>> - job-node-stalker >>> - jobgenerator >>> - jslint >>> - junit >>> - kubernetes >>> - kubernetes-cd >>> - label-linked-jobs >>> - lambdatest-automation >>> - loadimpact-plugin >>> - logstash >>> - mabl-integration >>> - machine-learning >>> - marathon >>> - master-provisioning-core >>> - master-provisioning-kubernetes >>> - maven-dependency-update-trigger >>> - maven-invoker-plugin >>> - maven-release-cascade >>> - mesos >>> - minio >>> - minio-storage >>> - miniorange-saml-sp >>> - nectar-vmware >>> - neoload-jenkins-plugin >>> - nodelabelparameter >>> - nodepool-agents >>> - octoperf >>> - ontrack >>> - openedge >>> - openshift-deployer >>> - openshift-login >>> - openstack-cloud >>> - openstack-heat >>> - opentelemetry >>> - operations-center-analytics >>> - operations-center-analytics-feeder >>> - operations-center-analytics-reporter >>> - operations-center-context >>> - operations-center-monitoring >>> - operations-center-server >>> - operations-center-sso >>> - oracle-cloud-infrastructure-compute >>> - package-parameter >>> - parameterized-trigger >>> - perfecto >>> - performance >>> - periodicbackup >>> - pipeline-aws >>> - pipeline-cloudwatch-logs >>> - pipeline-huaweicloud-plugin >>> - pipeline-model-api >>> - pipeline-model-definition >>> - project-inheritance >>> - radargun-reporting >>> - rally-plugin >>> - rapid7-insightvm-container-assessment >>> - release-helper >>> - reliza-integration >>> - relution-publisher >>> - repository >>> - repository-connector >>> - requests >>> - rocketchatnotifier >>> - role-strategy >>> - rundeck >>> - sahagin >>> - saml >>> - sauce-ondemand >>> - scm-api >>> - scm-httpclient >>> - scm-manager >>> - scm-sqs >>> - scm-sync-configuration >>> - screenrecorder >>> - sectioned-view >>> - seed >>> - selenium >>> - selenium-builder >>> - service-fabric >>> - service-now >>> - servicenow-cicd >>> - sitemonitor >>> - slave-proxy >>> - smilehubnotifier >>> - sms >>> - sonar >>> - sonar-gerrit >>> - split-admin >>> - splunk-devops >>> - splunk-devops-extend >>> - spoonscript >>> - spring-config >>> - spring-initalzr >>> - srcclr-installer >>> - ssh-slaves >>> - stackrox-container-image-scanner >>> - sysdig-secure >>> - telegram-notifications >>> - telerik-appbuilder-plugin >>> - testInProgress >>> - testsigma >>> - tics >>> - timestamper >>> - tuleap-api >>> - tuleap-git-branch-source >>> - uipath-automation-package >>> - unleash >>> - usemango-runner >>> - venafi-vcert >>> - violation-comments-to-stash >>> - vmware-vrealize-automation-plugin >>> - vrealize-automation-8 >>> - vsphere-cloud >>> - whitesource >>> - wikitext >>> - workflow-api >>> - workflow-basic-steps >>> - workflow-cps >>> - workflow-support >>> - xframium >>> - xlrelease-plugin >>> - xvnc >>> - yet-another-docker-plugin >>> - zanata >>> - zephyr-for-jira-test-management >>> - zos-connector >>> >>> >>> I am wondering how best we should co-ordinate this work? CloudBees has >>> already provided some of the plugins above to entirely remove Guava (rather >>> than just make it forward and backward compatible). Some of the plugins on >>> the list are also up-for adoption with no active maintainer. (similar to >>> the Digester work I suggest that if thiese are not popular plugins they >>> maybe have a PR and that is as far as it goes). >>> >>> Ontop of this as updating all the plugins could take a while I have >>> another JEP that I need to file and CloudBees is investigating to isolate >>> core/plugin libraries. If we had that it would potentially enable us to >>> have a detached jenkins-2.xxx-compat plugin that bundled the old Guava and >>> bump & isolate guava in core before all plugins had been updated (Ideally >>> we would like to remove the Guava library however it is required by Guice) >>> >>> Regards >>> >>> /James >>> >>> On Friday, May 7, 2021 at 10:04:52 AM UTC+1 olive...@gmail.com wrote: >>> >>>> blueocean is WIP >>>> https://github.com/jenkinsci/blueocean-plugin/pull/2163 (please don't >>>> create separate PR) >>>> >>>> On Fri, 7 May 2021 at 12:40, Basil Crow <m...@basilcrow.com> wrote: >>>> >>>>> I started looking into which plugins use classes or methods from Guava >>>>> 11 that have been removed in Guava 30. There is plenty of low-hanging >>>>> fruit if anyone is interested in contributing by rewriting these >>>>> usages. The list below is far from exhaustive, but it's a start. If >>>>> you maintain one of these plugins, consider taking some proactive >>>>> steps to migrate away from these APIs. >>>>> >>>>> com/google/common/base/Objects#firstNonNull >>>>> - blueocean-pipeline-api-impl >>>>> - blueocean-pipeline-scm-api >>>>> - ec2-fleet >>>>> - gearman-plugin >>>>> - github >>>>> - jclouds-jenkins >>>>> - jira >>>>> >>>>> com/google/common/base/Objects#toStringHelper >>>>> - blueocean-rest-impl >>>>> - build-monitor-plugin >>>>> - cloudfoundry-bosh-cli >>>>> - docker-plugin >>>>> - extreme-feedback >>>>> - google-source-plugin >>>>> - gravatar >>>>> - repository >>>>> - splunk-devops-extend >>>>> >>>>> com/google/common/base/Stopwatch#elapsedMillis >>>>> - build-monitor-plugin >>>>> >>>>> com/google/common/base/Stopwatch#elapsedTime >>>>> - relution-publisher >>>>> - vsphere-cloud >>>>> >>>>> com/google/common/collect/Ranges >>>>> - audit-trail >>>>> - elastest >>>>> - http_request >>>>> - logstash >>>>> - scm-httpclient >>>>> >>>>> com/google/common/io/Files#newOutputStreamSupplier >>>>> - repository-connector >>>>> >>>>> com/google/common/net/InternetDomainName#name >>>>> - scm-api >>>>> >>>>> com/google/common/util/concurrent/MoreExecutors#sameThreadExecutor >>>>> - workflow-basic-steps >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Jenkins Developers" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to jenkinsci-de...@googlegroups.com. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/jenkinsci-dev/CAFwNDjo5UfMB70nRvn4oG-KZ1GAy8MaAxBZPsEP8V3zJyOyZsg%40mail.gmail.com >>>>> . >>>>> >>>> >>>> >>>> -- >>>> Olivier Lamy >>>> http://twitter.com/olamy | http://linkedin.com/in/olamy >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Jenkins Developers" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to jenkinsci-de...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/jenkinsci-dev/44efda9d-e987-4e7e-9be4-ad43e64bfb71n%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/jenkinsci-dev/44efda9d-e987-4e7e-9be4-ad43e64bfb71n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/62eacf29-67ce-4d7d-b8e5-f74658a1119an%40googlegroups.com.
com/google/common/base/Equivalences com/google/common/base/Objects/ToStringHelper com/google/common/base/internal/Finalizer com/google/common/cache/AbstractCache com/google/common/cache/AbstractCache/SimpleStatsCounter com/google/common/cache/ForwardingCache com/google/common/cache/ForwardingCache/SimpleForwardingCache com/google/common/collect/AbstractLinkedIterator com/google/common/collect/AsynchronousComputationException com/google/common/collect/Constraints com/google/common/collect/DiscreteDomains com/google/common/collect/EnumMultiset com/google/common/collect/GenericMapMaker com/google/common/collect/HashBiMap com/google/common/collect/ImmutableCollection com/google/common/collect/ImmutableMap com/google/common/collect/ImmutableSortedMap com/google/common/collect/MapConstraints com/google/common/collect/MapMaker com/google/common/collect/MutableClassToInstanceMap com/google/common/collect/Ranges com/google/common/collect/SortedMaps com/google/common/hash/BloomFilter com/google/common/io/LimitInputStream com/google/common/io/LittleEndianDataOutputStream com/google/common/io/NullOutputStream com/google/common/primitives/UnsignedLong com/google/common/util/concurrent/AbstractCheckedFuture com/google/common/util/concurrent/ForwardingCheckedFuture com/google/common/util/concurrent/ForwardingService
com.google.common.base.Enums#valueOfFunction com.google.common.base.Joiner.MapJoiner#appendTo com.google.common.base.Joiner.MapJoiner#join com.google.common.base.Joiner#appendTo com.google.common.base.Joiner#join com.google.common.base.Objects#firstNonNull com.google.common.base.Objects#toStringHelper com.google.common.base.Predicates#assignableFrom com.google.common.base.Stopwatch#<init> com.google.common.base.Stopwatch#elapsedMillis com.google.common.base.Stopwatch#elapsedTime com.google.common.base.Stopwatch#toString com.google.common.cache.AbstractCache#apply com.google.common.cache.AbstractCache#getUnchecked com.google.common.cache.Cache#apply com.google.common.cache.Cache#get com.google.common.cache.Cache#getUnchecked com.google.common.cache.ForwardingCache#apply com.google.common.cache.ForwardingCache#get com.google.common.cache.ForwardingCache#getUnchecked com.google.common.collect.AbstractSortedMultiset#elementSet com.google.common.collect.AbstractSortedSetMultimap#get com.google.common.collect.ArrayTable#create com.google.common.collect.ImmutableBiMap.Builder#put com.google.common.collect.ImmutableBiMap#get com.google.common.collect.ImmutableBiMap#size com.google.common.collect.ImmutableCollection#contains com.google.common.collect.ImmutableMap.Builder#put com.google.common.collect.ImmutableMultiset#elementSet com.google.common.collect.ImmutableMultiset#entrySet com.google.common.collect.ImmutableMultiset#of com.google.common.collect.ImmutableSortedMap#naturalOrder com.google.common.collect.ImmutableSortedMap#reverseOrder com.google.common.collect.ImmutableSortedSet#naturalOrder com.google.common.collect.ImmutableSortedSet#reverseOrder com.google.common.collect.ImmutableTable#values com.google.common.collect.Iterables#reverse com.google.common.collect.Iterators#emptyIterator com.google.common.collect.Iterators#skip com.google.common.collect.MapMaker#expiration com.google.common.collect.MapMaker#makeComputingMap com.google.common.collect.MapMaker#softKeys com.google.common.collect.MapMaker#softValues com.google.common.collect.Maps#uniqueIndex com.google.common.collect.Multimaps#index com.google.common.collect.Multiset#elementSet com.google.common.collect.Queues#newPriorityBlockingQueue com.google.common.collect.Queues#newPriorityQueue com.google.common.collect.Range#asSet com.google.common.collect.Sets.SetView#iterator com.google.common.collect.SortedMultiset#elementSet com.google.common.collect.Table#values com.google.common.collect.TreeMultimap#asMap com.google.common.collect.TreeMultimap#get com.google.common.collect.TreeMultimap#keySet com.google.common.collect.TreeMultiset#elementSet com.google.common.eventbus.AsyncEventBus#dispatch com.google.common.eventbus.AsyncEventBus#dispatchQueuedEvents com.google.common.eventbus.AsyncEventBus#enqueueEvent com.google.common.eventbus.EventBus#dispatch com.google.common.eventbus.EventBus#dispatchQueuedEvents com.google.common.eventbus.EventBus#enqueueEvent com.google.common.eventbus.EventBus#newHandlerSet com.google.common.hash.BloomFilter#create com.google.common.hash.BloomFilter#put com.google.common.hash.Funnels#stringFunnel com.google.common.hash.Hasher#hashCode com.google.common.hash.Hasher#putString com.google.common.hash.HashFunction#hashString com.google.common.hash.Hashing#padToLong com.google.common.io.ByteStreams#copy com.google.common.io.ByteStreams#equal com.google.common.io.ByteStreams#getChecksum com.google.common.io.ByteStreams#getDigest com.google.common.io.ByteStreams#join com.google.common.io.ByteStreams#length com.google.common.io.ByteStreams#newInputStreamSupplier com.google.common.io.ByteStreams#slice com.google.common.io.ByteStreams#toByteArray com.google.common.io.ByteStreams#write com.google.common.io.CharStreams#copy com.google.common.io.CharStreams#join com.google.common.io.CharStreams#newReaderSupplier com.google.common.io.CharStreams#newWriterSupplier com.google.common.io.CharStreams#readFirstLine com.google.common.io.CharStreams#readLines com.google.common.io.CharStreams#toString com.google.common.io.CharStreams#write com.google.common.io.FileBackedOutputStream#getSupplier com.google.common.io.Files#copy com.google.common.io.Files#getChecksum com.google.common.io.Files#getDigest com.google.common.io.Files#map com.google.common.io.Files#newInputStreamSupplier com.google.common.io.Files#newOutputStreamSupplier com.google.common.io.Files#newReaderSupplier com.google.common.io.Files#newWriterSupplier com.google.common.io.Resources#newInputStreamSupplier com.google.common.io.Resources#newReaderSupplier com.google.common.math.DoubleMath#<init> com.google.common.net.HostAndPort#getHostText com.google.common.net.InternetDomainName#fromLenient com.google.common.net.InternetDomainName#isValidLenient com.google.common.net.InternetDomainName#name com.google.common.primitives.UnsignedInteger#add com.google.common.primitives.UnsignedInteger#asUnsigned com.google.common.primitives.UnsignedInteger#divide com.google.common.primitives.UnsignedInteger#multiply com.google.common.primitives.UnsignedInteger#remainder com.google.common.primitives.UnsignedInteger#subtract com.google.common.primitives.UnsignedLong#<init> com.google.common.primitives.UnsignedLong#add com.google.common.primitives.UnsignedLong#asUnsigned com.google.common.primitives.UnsignedLong#divide com.google.common.primitives.UnsignedLong#multiply com.google.common.primitives.UnsignedLong#remainder com.google.common.primitives.UnsignedLong#subtract com.google.common.util.concurrent.AbstractExecutionThreadService#<init> com.google.common.util.concurrent.AbstractExecutionThreadService#getServiceName com.google.common.util.concurrent.AbstractExecutionThreadService#start com.google.common.util.concurrent.AbstractExecutionThreadService#startAndWait com.google.common.util.concurrent.AbstractExecutionThreadService#stop com.google.common.util.concurrent.AbstractExecutionThreadService#stopAndWait com.google.common.util.concurrent.AbstractFuture#<init> com.google.common.util.concurrent.AbstractIdleService#<init> com.google.common.util.concurrent.AbstractIdleService#executor com.google.common.util.concurrent.AbstractIdleService#start com.google.common.util.concurrent.AbstractIdleService#startAndWait com.google.common.util.concurrent.AbstractIdleService#stop com.google.common.util.concurrent.AbstractIdleService#stopAndWait com.google.common.util.concurrent.AbstractScheduledService#<init> com.google.common.util.concurrent.AbstractScheduledService#start com.google.common.util.concurrent.AbstractScheduledService#startAndWait com.google.common.util.concurrent.AbstractScheduledService#stop com.google.common.util.concurrent.AbstractScheduledService#stopAndWait com.google.common.util.concurrent.AbstractService#<init> com.google.common.util.concurrent.AbstractService#start com.google.common.util.concurrent.AbstractService#startAndWait com.google.common.util.concurrent.AbstractService#stop com.google.common.util.concurrent.AbstractService#stopAndWait com.google.common.util.concurrent.FakeTimeLimiter#callWithTimeout com.google.common.util.concurrent.ForwardingFuture#delegate com.google.common.util.concurrent.ForwardingListenableFuture#delegate com.google.common.util.concurrent.Futures#addCallback com.google.common.util.concurrent.Futures#chain com.google.common.util.concurrent.Futures#get com.google.common.util.concurrent.Futures#immediateCheckedFuture com.google.common.util.concurrent.Futures#immediateFailedCheckedFuture com.google.common.util.concurrent.Futures#makeChecked com.google.common.util.concurrent.Futures#transform com.google.common.util.concurrent.ListeningScheduledExecutorService#schedule com.google.common.util.concurrent.ListeningScheduledExecutorService#scheduleAtFixedRate com.google.common.util.concurrent.ListeningScheduledExecutorService#scheduleWithFixedDelay com.google.common.util.concurrent.MoreExecutors#sameThreadExecutor com.google.common.util.concurrent.Service#start com.google.common.util.concurrent.Service#startAndWait com.google.common.util.concurrent.Service#stop com.google.common.util.concurrent.Service#stopAndWait com.google.common.util.concurrent.SimpleTimeLimiter#<init> com.google.common.util.concurrent.SimpleTimeLimiter#callWithTimeout com.google.common.util.concurrent.TimeLimiter#callWithTimeout
com.google.common.base.Ascii#MAX com.google.common.base.Ascii#MIN com.google.common.base.CharMatcher#ANY com.google.common.base.CharMatcher#ASCII com.google.common.base.CharMatcher#BREAKING_WHITESPACE com.google.common.base.CharMatcher#DIGIT com.google.common.base.CharMatcher#INVISIBLE com.google.common.base.CharMatcher#JAVA_DIGIT com.google.common.base.CharMatcher#JAVA_ISO_CONTROL com.google.common.base.CharMatcher#JAVA_LETTER com.google.common.base.CharMatcher#JAVA_LETTER_OR_DIGIT com.google.common.base.CharMatcher#JAVA_LOWER_CASE com.google.common.base.CharMatcher#JAVA_UPPER_CASE com.google.common.base.CharMatcher#NONE com.google.common.base.CharMatcher#SINGLE_WIDTH com.google.common.base.CharMatcher#WHITESPACE