Skip to content

Fix Maven Central publication metadata#130

Merged
AhmedNMahran merged 1 commit intomainfrom
fix/maven-central-publication-metadata
Mar 8, 2026
Merged

Fix Maven Central publication metadata#130
AhmedNMahran merged 1 commit intomainfrom
fix/maven-central-publication-metadata

Conversation

@AhmedNMahran
Copy link
Collaborator

@AhmedNMahran AhmedNMahran commented Mar 8, 2026

Summary

This updates the publishing configuration so mobile-sync can be published consistently to Maven Central as a single top-level Android/KMP artifact for downstream consumption.

What changed

  • normalized publication group/version to use the repo release version from gradle.properties
  • fixed stale project metadata URL from mobile-data to mobile-sync
  • enabled Maven Central publication for sync-pipelines
  • enabled Maven Central publication for mutations-definitions
  • fixed umbrella publication coordinates so it no longer publishes as syncengine
  • changed the published artifact id for sync-pipelines to mobile-sync

Why

Before this change:

  • sync-pipelines and mutations-definitions had signing configured but were not opted into Maven Central publication
  • several modules were publishing with a stale hardcoded version from the version catalog instead of the actual repo release version (0.0.3)
  • umbrella was configured with the wrong artifact id (syncengine)
  • some POM metadata still pointed at the old repo URL
  • Android consumers would have had to depend on sync-pipelines rather than a clean top-level mobile-sync artifact

Result

For Android consumers, the intended dependency is now:

implementation("com.quran:mobile-sync:0.0.3")

The underlying modules (auth, persistence, syncengine, mutations-definitions) remain published separately and are pulled transitively through the top-level artifact.

Validation

  • verified Maven Central publish tasks now exist for:
    • auth
    • mutations-definitions
    • persistence
    • sync-pipelines
    • syncengine
    • umbrella
  • regenerated publication metadata for sync-pipelines
  • verified generated POM metadata resolves to:
    • groupId = com.quran
    • artifactId = mobile-sync
    • version = 0.0.3
  • ran ./gradlew publishToMavenLocal to validate publication wiring
  • current remaining blocker is expected and external to repo code:
    • signing credentials are not configured on this machine (no configured signatory)

Follow-up

Android consumers should only need:

implementation("com.quran:mobile-sync:0.0.3")

However, because the top-level artifact depends transitively on the underlying published modules, releasing the full Android/KMP surface requires publishing them as well:

./gradlew \
  :mutations-definitions:publishAndReleaseToMavenCentral \
  :syncengine:publishAndReleaseToMavenCentral \
  :persistence:publishAndReleaseToMavenCentral \
  :auth:publishAndReleaseToMavenCentral \
  :sync-pipelines:publishAndReleaseToMavenCentral

If we also want the iOS umbrella artifact on Maven Central, add:

:umbrella:publishAndReleaseToMavenCentral

@AhmedNMahran AhmedNMahran self-assigned this Mar 8, 2026
@AhmedNMahran AhmedNMahran requested a review from ahmedre March 8, 2026 21:06
@AhmedNMahran AhmedNMahran merged commit 68a467b into main Mar 8, 2026
1 check passed
@AhmedNMahran AhmedNMahran deleted the fix/maven-central-publication-metadata branch March 8, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants