Skip to content

Refresh Build and Publishing Setup#656

Merged
mikepenz merged 5 commits intodevelopfrom
feature/refresh_setup
Nov 15, 2025
Merged

Refresh Build and Publishing Setup#656
mikepenz merged 5 commits intodevelopfrom
feature/refresh_setup

Conversation

@mikepenz
Copy link
Copy Markdown
Owner

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:

  • All typeface library modules now apply compile.groovy and gradle-release.gradle using $rootDir for consistent path resolution, improving maintainability and reducing path errors. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
  • The dependency on :iconics-typeface-api is changed from implementation to api in all modules, making the API available to consumers of these libraries. [1] [2] [3] [4] [5] [6] [7] [8] [9]

Versioning improvements:

  • Version codes and version names are incremented for all typeface libraries to reflect new releases. [1] [2] [3] [4] [5] [6] [7] [8] [9]

Publishing workflow modernization:

  • The GitHub Actions workflow in .github/workflows/ci.yml is 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.
  • Environment variables for publishing are updated to use Gradle's recommended ORG_GRADLE_PROJECT_* syntax for credentials and signing keys.

Cleanup and simplification:

  • Conditional application of gradle-release.gradle based 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.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.publish plugin with Maven Central Portal integration, replacing custom maven-publish configuration
  • Standardization of Gradle script paths using $rootDir across all modules for improved maintainability
  • Update of dependency scope from implementation to api for :iconics-typeface-api to 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.

Comment thread .github/workflows/ci.yml
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
Copy link

Copilot AI Nov 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling error: "Relase" should be "Release".

Suggested change
- name: Relase Sonatype
- name: Release Sonatype

Copilot uses AI. Check for mistakes.
Comment thread gradle-release.gradle
Comment on lines +14 to 21
// Disable Javadoc linting for Java 8+
if (JavaVersion.current().isJava8Compatible()) {
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}
}
Copy link

Copilot AI Nov 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
// Disable Javadoc linting for Java 8+
if (JavaVersion.current().isJava8Compatible()) {
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}
}

Copilot uses AI. Check for mistakes.
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
Copy link
Copy Markdown

@github-actions github-actions Bot Nov 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ A newer version of Gradle than 8.13 is available: 8.14.3

@mikepenz mikepenz merged commit e9524da into develop Nov 15, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants