talk-android icon indicating copy to clipboard operation
talk-android copied to clipboard

Remove or update libraries hosted in jCenter

Open AlvaroBrey opened this issue 3 years ago • 7 comments

jCenter is now a read-only mirror and sometimes unstable. At some point in the future, it will likely stop working altogether. Here's the list of libraries that we get from jCenter right now:

   > Could not find com.google.android:flexbox:2.0.1.
     Required by:
         project :app
   > Could not resolve com.github.aurae.retrofit2:converter-logansquare:1.4.1.
     Required by:
         project :app
      > Could not resolve com.github.aurae.retrofit2:converter-logansquare:1.4.1.
         > Could not get resource 'https://jitpack.io/com/github/aurae/retrofit2/converter-logansquare/1.4.1/converter-logansquare-1.4.1.pom'.
            > Could not HEAD 'https://jitpack.io/com/github/aurae/retrofit2/converter-logansquare/1.4.1/converter-logansquare-1.4.1.pom'. Received status code 401 from server: Unauthorized
   > Could not find io.requery:requery:1.6.1.
     Required by:
         project :app
   > Could not find io.requery:requery-android:1.6.1.
     Required by:
         project :app
   > Could not find eu.davidea:flexible-adapter:5.1.0.
     Required by:
         project :app
   > Could not find eu.davidea:flexible-adapter-ui:1.0.0.
     Required by:
         project :app
   > Could not find com.yarolegovich:lovely-dialog:1.1.1.
     Required by:
         project :app
   > Could not find com.yarolegovich:mp:1.1.6.
     Required by:
         project :app
   > Could not find com.novoda:merlin:1.2.1.
     Required by:
         project :app
   > Could not find com.amulyakhare:com.amulyakhare.textdrawable:1.0.1.
     Required by:
         project :app
   > Could not find com.elyeproj.libraries:loaderviewlibrary:2.0.0.
     Required by:
         project :app
   > Could not find pub.devrel:easypermissions:2.0.0.
     Required by:
         project :app > me.zhanghai.android.effortlesspermissions:library:1.1.0

Some of these may have newer versions uploaded in Maven Central. These should be upgraded.

Others will be completely abandoned: we should either remove them, replace them with other libraries, or fork them and host the artifacts ourselves (in jitpack, for example).

In #2063 the project is configured to use the gradle plugin portal as a jcenter mirror, but that's only a temporary solution. The gradle plugin portal will likely stop mirroring jcenter in the future as well.

AlvaroBrey avatar May 18 '22 11:05 AlvaroBrey

Should i just update the above dependencies in the above image ???

Smarshal21 avatar Aug 17 '23 15:08 Smarshal21

Yes, that be nice. Please beware that some of them are obsolete by now since we removed their use completely.

AndyScherzinger avatar Aug 17 '23 21:08 AndyScherzinger

the only dependency that should be updated is com.elyeproj.libraries:loaderviewlibrary:2.0.0. rest of them have the latest versions and i assume that the dependencies which arent present in the gradle file arent useful am i right?

Smarshal21 avatar Aug 19 '23 15:08 Smarshal21

the only dependency that should be updated is com.elyeproj.libraries:loaderviewlibrary:2.0.0. rest of them have the latest versions and i assume that the dependencies which arent present in the gradle file arent useful am i right?

To check whether the project still has something that is pulled from JCenter, remove this line from build.gradle and then run ./gradlew clean assemble --refresh-dependencies. If something is still being pulled from JCenter, it will fail and tell you which dependencies you need to fix.

Not sure what the state is currently, but my original findings on this were that not all dependencies could be fixed by just updating the versions.

AlvaroBrey avatar Aug 21 '23 07:08 AlvaroBrey

current state of ./gradlew clean assemble --refresh-dependencies

Configuration on demand is an incubating feature.
> Task :app:dataBindingMergeDependencyArtifactsGenericDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dataBindingMergeDependencyArtifactsGenericDebug'.
> Could not resolve all files for configuration ':app:genericDebugCompileClasspath'.
   > Could not resolve com.github.aurae.retrofit2:converter-logansquare:1.4.1.
     Required by:
         project :app
      > Could not resolve com.github.aurae.retrofit2:converter-logansquare:1.4.1.
         > Could not get resource 'https://jitpack.io/com/github/aurae/retrofit2/converter-logansquare/1.4.1/converter-logansquare-1.4.1.pom'.
            > Could not HEAD 'https://jitpack.io/com/github/aurae/retrofit2/converter-logansquare/1.4.1/converter-logansquare-1.4.1.pom'. Received status code 401 from server: Unauthorized
   > Could not find eu.davidea:flexible-adapter:5.1.0.
     Required by:
         project :app
   > Could not find eu.davidea:flexible-adapter-ui:1.0.0.
     Required by:
         project :app
   > Could not find com.novoda:merlin:1.2.1.
     Required by:
         project :app
   > Could not find com.amulyakhare:com.amulyakhare.textdrawable:1.0.1.
     Required by:
         project :app
   > Could not find com.elyeproj.libraries:loaderviewlibrary:2.0.0.
     Required by:
         project :app

com.github.aurae.retrofit2:converter-logansquare not sure where this is from. can't find the github repo and jitpack can't resolve. on github there is only https://github.com/mannodermaus/retrofit-logansquare which seems to be fork? so for now replace with de.mannodermaus.retrofit2:converter-logansquare:1.4.1 ?? long term solution: replace logansquare with other solutions, e.g. moshi

eu.davidea:flexible-adapter replace with plain android solution: https://github.com/nextcloud/talk-android/issues/3108

com.novoda:merlin deprecated, see https://github.com/novoda/merlin. replace with other solutions

com.amulyakhare:com.amulyakhare.textdrawable quite outdated. replace with other solutions

com.elyeproj.libraries:loaderviewlibrary:2.0.0 --> io.github.elye:loaderviewlibrary:3.0.0

mahibi avatar Aug 23 '23 11:08 mahibi

I believe this has been mistakenly closed? Only the elyeproj library has been updated in #3258 and the gradlePluginPortal call has not been removed from build.gradle, so most of the libraries above are still pulled from JCenter

AlvaroBrey avatar Oct 04 '23 20:10 AlvaroBrey

I believe this has been mistakenly closed? Only the elyeproj library has been updated in #3258 and the gradlePluginPortal call has not been removed from build.gradle, so most of the libraries above are still pulled from JCenter

Yeah, Sorry for that

Smarshal21 avatar Oct 04 '23 20:10 Smarshal21