Kiwix-android: Bintray Sunset

Created on 5 Feb 2021  Â·  7Comments  Â·  Source: kiwix/kiwix-android

Bintray will sunset in May. As a consequence the libkiwix binaries for Kiwix Android won't be distributed anymore and it will be difficult to compile Kiwix Android. See https://bintray.com/kiwix/kiwix/kiwixlib/9.4.1

What should we do?

enhancement question

Most helpful comment

@kelson42 Sorry, for the delay.
Here's quick steps we'll go through:

  • Registering a Jira account with Sonatype, and verifying our ownership of the group ID we want to publish our artifact with
  • Generating a GPG key pair for signing our artifacts, publishing our public key, and exporting our private key
  • Setting up Gradle tasks that can sign upload our artifacts to a staging repository
  • Manually going through the process of checking our artifacts in the staging repo and releasing them via the Sonatype web UI
  • Automating the close & release flow with a Gradle plugin
  • Configuring CI workflows with GitHub Actions to automate all of the above
    >What should be changed in kiwix-android assuming the lib would be available on Maeven Central?

To fully migrate away from jcenter(), all we need to do is replace all jcenter() occurrences with mavenCentral() in all build.gradle files.

// Top level build.gradle file
buildscript {
  repositories {
    google()
-   jcenter()
+   mavenCentral()
  }
}
...

allprojects {
  repositories {
-   jcenter()
+   mavenCentral()
  }
}
// buildSrc level build.gradle file
repositories {
- jcenter()
+ mavenCentral()
}



md5-58c41e213412a5107fba49d06bdfbcf9



./gradlew assemble assembleDebugUnitTest assembleAndroidTest --refresh-dependencies

This will ensure all dependencies for every build type are downloaded again. Such a “clean” build will assess whether our app can be built independently of jcenter().

All 7 comments

@kelson42, Maven Central is the obvious place to now publish our libraries.

Recently Big companies like kotlin(Jetbrains) who used JCenter migrated their EAPs to Maven Central.

@gouri-panda Thank you for your feedback. I'm not familiar at all with the Java/Kotlin ecosystem. Therefore I rely on your know-how:

  • Are we allowed to upload freely to Maeven Central? Is that complicated?
  • What should be changed in kiwix-android assuming the lib would be available on Maeven Central?
  • What should be changed in libkiwix and kiwix-build repos to upload to Maeven Central?

@kelson42 Sorry, for the delay.
Here's quick steps we'll go through:

  • Registering a Jira account with Sonatype, and verifying our ownership of the group ID we want to publish our artifact with
  • Generating a GPG key pair for signing our artifacts, publishing our public key, and exporting our private key
  • Setting up Gradle tasks that can sign upload our artifacts to a staging repository
  • Manually going through the process of checking our artifacts in the staging repo and releasing them via the Sonatype web UI
  • Automating the close & release flow with a Gradle plugin
  • Configuring CI workflows with GitHub Actions to automate all of the above
    >What should be changed in kiwix-android assuming the lib would be available on Maeven Central?

To fully migrate away from jcenter(), all we need to do is replace all jcenter() occurrences with mavenCentral() in all build.gradle files.

// Top level build.gradle file
buildscript {
  repositories {
    google()
-   jcenter()
+   mavenCentral()
  }
}
...

allprojects {
  repositories {
-   jcenter()
+   mavenCentral()
  }
}
// buildSrc level build.gradle file
repositories {
- jcenter()
+ mavenCentral()
}



md5-58c41e213412a5107fba49d06bdfbcf9



./gradlew assemble assembleDebugUnitTest assembleAndroidTest --refresh-dependencies

This will ensure all dependencies for every build type are downloaded again. Such a “clean” build will assess whether our app can be built independently of jcenter().

References: https://jeroenmols.com/blog/2021/02/04/migratingjcenter/ & https://proandroiddev.com/publishing-your-first-android-library-to-mavencentral-be2c51330b88 : )

OK, so lets go for Maven Central. We will publish soon a new libkiwix with the current process. Following ones will be done on Maven Central. I will secure and account, the keys, etc... and they we will have too look how to get libkiwix uploaded properly with kiwix-build to Maven Central.

Was this page helpful?
0 / 5 - 0 ratings