From b7b12ebe84911748b9757d795a8def0d5d6b716e Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Mon, 21 Jun 2021 03:36:20 +0500 Subject: [PATCH] Move from github packages to jitpack.io for hosting termux library packages Github Package hosting is considered a private repository since it requires github APIs keys if a hosted library needs to be imported as a dependency. Importing from private repositories is not allowed as per F-Droid policy so termux plugin apps can't import termux libraries as dependencies so hence we move to Jitpack. Check https://github.com/termux/termux-app/issues/2011#issuecomment-824837387. Version number of all published libraries from termux-app must be the same. Importing can be done with the following way. Add to root level build.gradle ``` allprojects { repositories { google() mavenCentral() //mavenLocal() maven { url "https://jitpack.io" } } } ``` Add to app module level build.gradle if you want to import `termux-shared` ``` dependencies { implementation 'com.github.termux:termux-shared:0.115' } ``` Check https://github.com/jitpack/jitpack.io#building-with-jitpack for other details, like including commit or branch level import. If you are updating the libraries as well and want to test locally, run `./gradlew publishReleasePublicationToMavenLocal` from root directory of termux-app to publish library to local maven repository. You may need to rebuild project before it, library files will be published at `~/.m2/repository/com/github/termux/termux-shared/0.115`. If you want to import the updated library in a project, then uncomment the `mavenLocal()` line in the build.gradle and run sync gradle with project files. Making changes to library after dependencies have already been cached without incrementing version number may need deleting gradle cache if syncing gradle files doesn't work after publishing changes. Open gradle right sidebar in android studio, then right click on top level entry, then select "Refresh Gradle Dependencies", which will redownload/refresh all dependencies and will take a lot of time. Instead running `find ~/.gradle/caches/ -type d -name "*com.github.termux*" -prune -exec rm -rf "{}" \; -print` and then running gradle sync should be enough. Using "com.termux" instead of "com.github.termux" will require a DNS TXT record to be added from git.termux.com to https://github.com/termux at termux.com https://jitpack.io/docs/#custom-domain-name --- .github/workflows/publish_libraries.yml | 26 ---------------------- build.gradle | 1 + terminal-emulator/build.gradle | 29 +++++++++---------------- terminal-view/build.gradle | 29 +++++++++---------------- termux-shared/build.gradle | 29 +++++++++---------------- 5 files changed, 31 insertions(+), 83 deletions(-) delete mode 100644 .github/workflows/publish_libraries.yml diff --git a/.github/workflows/publish_libraries.yml b/.github/workflows/publish_libraries.yml deleted file mode 100644 index 077539de..00000000 --- a/.github/workflows/publish_libraries.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Publish library packages - -on: - push: - branches: - - master - paths: - - 'terminal-emulator/build.gradle' - - 'terminal-view/build.gradle' - - 'termux-shared/build.gradle' - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Clone repository - uses: actions/checkout@v2 - - name: Perform release build - run: | - ./gradlew assembleRelease - - name: Publish libraries on Github Packages - env: - GH_USERNAME: xeffyr - GH_TOKEN: ${{ secrets.GH_TOKEN }} - run: | - ./gradlew publish diff --git a/build.gradle b/build.gradle index 01d0fe73..2f618dec 100644 --- a/build.gradle +++ b/build.gradle @@ -12,6 +12,7 @@ allprojects { repositories { google() mavenCentral() + maven { url "https://jitpack.io" } } } diff --git a/terminal-emulator/build.gradle b/terminal-emulator/build.gradle index bffcd681..3642ba49 100644 --- a/terminal-emulator/build.gradle +++ b/terminal-emulator/build.gradle @@ -58,25 +58,16 @@ task sourceJar(type: Jar) { classifier "sources" } -publishing { - publications { - bar(MavenPublication) { - groupId 'com.termux' - artifactId 'terminal-emulator' - version "0.114" - artifact(sourceJar) - artifact("$buildDir/outputs/aar/terminal-emulator-release.aar") - } - } - - repositories { - maven { - name = "GitHubPackages" - url = uri("https://maven.pkg.github.com/termux/termux-app") - - credentials { - username = System.getenv("GH_USERNAME") - password = System.getenv("GH_TOKEN") +afterEvaluate { + publishing { + publications { + // Creates a Maven publication called "release". + release(MavenPublication) { + from components.release + groupId = 'com.github.termux' + artifactId = 'terminal-emulator' + version = '0.114' + artifact(sourceJar) } } } diff --git a/terminal-view/build.gradle b/terminal-view/build.gradle index 0957b125..d3fb6cfd 100644 --- a/terminal-view/build.gradle +++ b/terminal-view/build.gradle @@ -37,25 +37,16 @@ task sourceJar(type: Jar) { classifier "sources" } -publishing { - publications { - bar(MavenPublication) { - groupId 'com.termux' - artifactId 'terminal-view' - version "0.114" - artifact(sourceJar) - artifact("$buildDir/outputs/aar/terminal-view-release.aar") - } - } - - repositories { - maven { - name = "GitHubPackages" - url = uri("https://maven.pkg.github.com/termux/termux-app") - - credentials { - username = System.getenv("GH_USERNAME") - password = System.getenv("GH_TOKEN") +afterEvaluate { + publishing { + publications { + // Creates a Maven publication called "release". + release(MavenPublication) { + from components.release + groupId = 'com.github.termux' + artifactId = 'terminal-view' + version = '0.114' + artifact(sourceJar) } } } diff --git a/termux-shared/build.gradle b/termux-shared/build.gradle index 3364cdc7..a6a39d3e 100644 --- a/termux-shared/build.gradle +++ b/termux-shared/build.gradle @@ -52,25 +52,16 @@ task sourceJar(type: Jar) { classifier "sources" } -publishing { - publications { - bar(MavenPublication) { - groupId 'com.termux' - artifactId 'termux-shared' - version "0.114" - artifact(sourceJar) - artifact("$buildDir/outputs/aar/termux-shared-release.aar") - } - } - - repositories { - maven { - name = "GitHubPackages" - url = uri("https://maven.pkg.github.com/termux/termux-app") - - credentials { - username = System.getenv("GH_USERNAME") - password = System.getenv("GH_TOKEN") +afterEvaluate { + publishing { + publications { + // Creates a Maven publication called "release". + release(MavenPublication) { + from components.release + groupId = 'com.github.termux' + artifactId = 'termux-shared' + version = '0.114' + artifact(sourceJar) } } }