diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 48e0ef63..1382260f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,11 +105,11 @@ jobs: distribution: temurin # pre-installed on ubuntu-latest cache: gradle - - name: Publish snapshot to oss.sonatype.org + - name: Publish snapshot to Sonatype Central run: ./gradlew publish -PskipFonts -Dorg.gradle.internal.publish.checksums.insecure=true -Dorg.gradle.parallel=false env: - OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} - OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} release: @@ -131,10 +131,10 @@ jobs: cache: gradle - name: Release a new stable version to Maven Central - run: ./gradlew publish :flatlaf-demo:build :flatlaf-theme-editor:build -PskipFonts -Prelease -Dorg.gradle.parallel=false + run: ./gradlew publishToSonatype closeSonatypeStagingRepository :flatlaf-demo:build :flatlaf-theme-editor:build -PskipFonts -Prelease -Dorg.gradle.parallel=false env: - OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} - OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} SIGNING_KEY: ${{ secrets.SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} diff --git a/.github/workflows/fonts.yml b/.github/workflows/fonts.yml index e6a04226..9654f503 100644 --- a/.github/workflows/fonts.yml +++ b/.github/workflows/fonts.yml @@ -45,18 +45,18 @@ jobs: run: ./gradlew :flatlaf-fonts-${{ matrix.font }}:build if: startsWith( github.ref, format( 'refs/tags/fonts/{0}-', matrix.font ) ) != true - - name: Publish snapshot to oss.sonatype.org + - name: Publish snapshot to Sonatype Central run: ./gradlew :flatlaf-fonts-${{ matrix.font }}:publish -Dorg.gradle.internal.publish.checksums.insecure=true env: - OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} - OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} if: github.ref == 'refs/heads/main' || startsWith( github.ref, 'refs/heads/develop-' ) - name: Release a new stable version to Maven Central run: ./gradlew :flatlaf-fonts-${{ matrix.font }}:build :flatlaf-fonts-${{ matrix.font }}:publish -Prelease env: - OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} - OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} SIGNING_KEY: ${{ secrets.SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} if: startsWith( github.ref, format( 'refs/tags/fonts/{0}-', matrix.font ) ) diff --git a/.github/workflows/pr-snapshots.yml b/.github/workflows/pr-snapshots.yml index bd09587e..207bae20 100644 --- a/.github/workflows/pr-snapshots.yml +++ b/.github/workflows/pr-snapshots.yml @@ -28,10 +28,10 @@ jobs: distribution: temurin # pre-installed on ubuntu-latest cache: gradle - - name: Publish PR snapshot to oss.sonatype.org + - name: Publish PR snapshot to Sonatype Central run: > ./gradlew publish -PskipFonts -Dorg.gradle.internal.publish.checksums.insecure=true -Dorg.gradle.parallel=false -Pgithub.event.pull_request.number=${{ github.event.pull_request.number }} env: - OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} - OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} diff --git a/README.md b/README.md index 2ab9ce61..94e1e607 100644 --- a/README.md +++ b/README.md @@ -83,10 +83,10 @@ application. ### Snapshots FlatLaf snapshot binaries are available on -[Sonatype OSSRH](https://oss.sonatype.org/content/repositories/snapshots/com/formdev/flatlaf/). +[Sonatype Central](https://central.sonatype.com/service/rest/repository/browse/maven-snapshots/com/formdev/flatlaf/). To access the latest snapshot, change the FlatLaf version in your dependencies -to `-SNAPSHOT` (e.g. `0.27-SNAPSHOT`) and add the repository -`https://oss.sonatype.org/content/repositories/snapshots/` to your build (see +to `-SNAPSHOT` (e.g. `3.7-SNAPSHOT`) and add the repository +`https://central.sonatype.com/repository/maven-snapshots/` to your build (see [Maven](https://maven.apache.org/guides/mini/guide-multiple-repositories.html) and [Gradle](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:declaring_custom_repository) diff --git a/build.gradle.kts b/build.gradle.kts index 424fd54e..67b55aac 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,6 +16,7 @@ import net.ltgt.gradle.errorprone.errorprone +group = "com.formdev" version = property( if( hasProperty( "release" ) ) "flatlaf.releaseVersion" else "flatlaf.developmentVersion" ) as String // for PR snapshots change version to 'PR--SNAPSHOT' @@ -49,6 +50,7 @@ println() plugins { + alias( libs.plugins.gradle.nexus.publish.plugin ) alias( libs.plugins.errorprone ) apply false } @@ -143,3 +145,20 @@ allprojects { } } } + +nexusPublishing { + repositories { + sonatype { + // see https://central.sonatype.org/publish/publish-portal-ossrh-staging-api/ + nexusUrl = uri( "https://ossrh-staging-api.central.sonatype.com/service/local/" ) + snapshotRepositoryUrl = uri( "https://central.sonatype.com/repository/maven-snapshots/" ) + + // get from gradle.properties + val sonatypeUsername: String? by project + val sonatypePassword: String? by project + + username = System.getenv( "SONATYPE_USERNAME" ) ?: sonatypeUsername + password = System.getenv( "SONATYPE_PASSWORD" ) ?: sonatypePassword + } + } +} diff --git a/buildSrc/src/main/kotlin/flatlaf-publish.gradle.kts b/buildSrc/src/main/kotlin/flatlaf-publish.gradle.kts index f7575003..0a547c20 100644 --- a/buildSrc/src/main/kotlin/flatlaf-publish.gradle.kts +++ b/buildSrc/src/main/kotlin/flatlaf-publish.gradle.kts @@ -86,24 +86,26 @@ publishing { } } +/* repositories { maven { - name = "OSSRH" + name = "MavenCentral" - val releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/" - val snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/" + val releasesRepoUrl = "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/" + val snapshotsRepoUrl = "https://central.sonatype.com/repository/maven-snapshots/" url = uri( if( rootProject.hasProperty( "release" ) ) releasesRepoUrl else snapshotsRepoUrl ) credentials { // get from gradle.properties - val ossrhUsername: String? by project - val ossrhPassword: String? by project + val sonatypeUsername: String? by project + val sonatypePassword: String? by project - username = System.getenv( "OSSRH_USERNAME" ) ?: ossrhUsername - password = System.getenv( "OSSRH_PASSWORD" ) ?: ossrhPassword + username = System.getenv( "SONATYPE_USERNAME" ) ?: sonatypeUsername + password = System.getenv( "SONATYPE_PASSWORD" ) ?: sonatypePassword } } } +*/ } signing { diff --git a/flatlaf-core/build.gradle.kts b/flatlaf-core/build.gradle.kts index f02a413d..f1de6233 100644 --- a/flatlaf-core/build.gradle.kts +++ b/flatlaf-core/build.gradle.kts @@ -158,4 +158,8 @@ flatlafPublish { NativeArtifact( "${natives}/libflatlaf-linux-x86_64.so", "linux-x86_64", "so" ), NativeArtifact( "${natives}/libflatlaf-linux-arm64.so", "linux-arm64", "so" ), ) + + // Maven Central Snapshots repo currently does not accept .dylib files + if( version.toString().endsWith( "-SNAPSHOT" ) ) + nativeArtifacts = nativeArtifacts?.filter { it.type != "dylib" } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4c3ea076..91bcfee8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,4 +58,5 @@ errorprone = "com.google.errorprone:error_prone_core:2.20.0" [plugins] +gradle-nexus-publish-plugin = { id = "io.github.gradle-nexus.publish-plugin", version = "2.0.0" } errorprone = { id = "net.ltgt.errorprone", version = "3.1.0" }