Conversation
…Maven publish plugin configuration
…dle-release.gradle
…st environment variables for Maven Central
There was a problem hiding this comment.
Pull Request Overview
This pull request modernizes the build configuration and publishing setup for the Android Iconics library by migrating from the legacy Sonatype OSS publishing workflow to the new Maven Central Portal, standardizing Gradle script paths, and updating dependencies.
Key changes:
- Migration to
com.vanniktech.maven.publishplugin with Maven Central Portal integration, replacing custom maven-publish configuration - Standardization of Gradle script paths using
$rootDiracross all modules for improved maintainability - Update of dependency scope from
implementationtoapifor:iconics-typeface-apito properly expose the API to library consumers
Reviewed Changes
Copilot reviewed 30 out of 31 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| gradle-release.gradle | Simplified publishing configuration using maven publish plugin, replacing manual maven-publish and signing setup |
| build.gradle | Added maven publish plugin declaration, updated AGP and dependency versions, added Javadoc linting configuration |
| .github/workflows/ci.yml | Updated CI workflow to use new Maven Central publishing tasks and updated environment variables for credentials |
| release.sh | Migrated release commands from Sonatype-specific tasks to publishToMavenCentral tasks with explicit module targets |
| gradle/wrapper/gradle-wrapper.properties | Updated Gradle wrapper version |
| gradle.properties | Added Maven Central Portal configuration documentation |
| *-typeface-library/build.gradle (multiple) | Standardized paths, incremented versions, changed dependency scope, removed conditional gradle-release application |
| iconics-*/build.gradle (core modules) | Standardized paths and removed conditional gradle-release application |
| app/build.gradle | Standardized Gradle script path using $rootDir |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| echo "sonatype.gpg.password=${{ secrets.SONATYPE_GPG_PASS }}" >> ~/.gradle/gradle.properties | ||
| echo "sonatype.gpg.secretKeyRingFile=$HOME/.gradle/opensource.gpg" >> ~/.gradle/gradle.properties | ||
|
|
||
| - name: Relase Sonatype |
There was a problem hiding this comment.
Spelling error: "Relase" should be "Release".
| - name: Relase Sonatype | |
| - name: Release Sonatype |
| // Disable Javadoc linting for Java 8+ | ||
| if (JavaVersion.current().isJava8Compatible()) { | ||
| allprojects { | ||
| tasks.withType(Javadoc) { | ||
| options.addStringOption('Xdoclint:none', '-quiet') | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
The Javadoc linting configuration is duplicated. This same logic appears in both the root build.gradle (lines 87-94) and gradle-release.gradle (lines 14-21). Since gradle-release.gradle is applied to individual subprojects that need publishing, and the root build.gradle applies it to all projects, this creates redundancy. Consider removing this block from gradle-release.gradle since it's already handled at the project level in build.gradle.
| // Disable Javadoc linting for Java 8+ | |
| if (JavaVersion.current().isJava8Compatible()) { | |
| allprojects { | |
| tasks.withType(Javadoc) { | |
| options.addStringOption('Xdoclint:none', '-quiet') | |
| } | |
| } | |
| } |
| distributionBase=GRADLE_USER_HOME | ||
| distributionPath=wrapper/dists | ||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip | ||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip |
There was a problem hiding this comment.
| A newer version of Gradle than 8.13 is available: 8.14.3 |
… with project properties
This pull request updates the build configuration and publishing process for multiple typeface library modules. The main changes include standardizing the way Gradle scripts are applied, updating dependency scopes, incrementing version codes and names, and modernizing the Maven Central publishing workflow.
Build configuration and dependency updates:
compile.groovyandgradle-release.gradleusing$rootDirfor consistent path resolution, improving maintainability and reducing path errors. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]:iconics-typeface-apiis changed fromimplementationtoapiin all modules, making the API available to consumers of these libraries. [1] [2] [3] [4] [5] [6] [7] [8] [9]Versioning improvements:
Publishing workflow modernization:
.github/workflows/ci.ymlis updated to use the Maven Central publishing tasks instead of Sonatype-specific Gradle properties and tasks, and switches to in-memory signing keys for secure artifact signing.ORG_GRADLE_PROJECT_*syntax for credentials and signing keys.Cleanup and simplification:
gradle-release.gradlebased on project properties is removed from all typeface libraries, as the script is now always applied directly. [1] [2] [3] [4] [5] [6] [7] [8] [9]These changes help ensure a more consistent and maintainable build and release process across all typeface modules.