From 19f7922163504ba628bd6f9ee95513537da3143d Mon Sep 17 00:00:00 2001 From: jaguililla Date: Thu, 19 Sep 2024 20:07:54 +0200 Subject: [PATCH 1/6] Update :dependencies --- .github/workflows/release_branch.yml | 44 ---------------------------- gradle/publish.gradle | 5 ++-- settings.gradle.kts | 2 +- 3 files changed, 3 insertions(+), 48 deletions(-) delete mode 100644 .github/workflows/release_branch.yml diff --git a/.github/workflows/release_branch.yml b/.github/workflows/release_branch.yml deleted file mode 100644 index 06f92a3469..0000000000 --- a/.github/workflows/release_branch.yml +++ /dev/null @@ -1,44 +0,0 @@ - -on: - push: - branches: [ release/** ] - -permissions: - contents: write - -jobs: - publish: - runs-on: ubuntu-latest - steps: - - - uses: actions/cache@v4 - with: - key: ${{ runner.os }}-mkdocs-${{ hashFiles('**/*.gradle*', '**/gradle*.properties') }} - restore-keys: ${{ runner.os }}-mkdocs- - path: | - ~/.local/bin - ~/.local/lib/python*/site-packages - - - uses: actions/checkout@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - - - uses: graalvm/setup-graalvm@v1 - with: - java-version: 21 - distribution: graalvm-community - github-token: ${{ secrets.GITHUB_TOKEN }} - cache: gradle - - - env: - OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} - OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} - SIGNING_KEY: ${{ secrets.SIGNING_KEY }} - SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} - run: ./gradlew --no-daemon -x test release - - push_site: - uses: hexagontk/hexagon/.github/workflows/site.yml@develop - needs: publish - with: - options: -P pushSite=true diff --git a/gradle/publish.gradle b/gradle/publish.gradle index a14a5b19d9..63619a3b94 100644 --- a/gradle/publish.gradle +++ b/gradle/publish.gradle @@ -70,9 +70,8 @@ jreleaser { deploy { maven { mavenCentral { - sonatype { - active = 'ALWAYS' - url = 'https://central.sonatype.com/api/v1/publisher' + app { + applyMavenCentralRules = true } } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 0d6d9f7e5e..6195f75152 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -27,7 +27,7 @@ dependencyResolutionManagement { version("detekt", "1.23.7") version("jmhGradle", "0.7.2") version("gradleWrapper", "8.10.1") - version("mkdocsMaterial", "9.5.34") + version("mkdocsMaterial", "9.5.35") version("mermaidDokka", "0.6.0") version("maven", "3.9.9") version("jreleaser", "1.14.0") From 9e120d4dc4e2dfcb0d6d6339575a1f6851b68ba5 Mon Sep 17 00:00:00 2001 From: jaguililla Date: Sun, 22 Sep 2024 18:56:16 +0200 Subject: [PATCH 2/6] Update :dependencies --- settings.gradle.kts | 2 +- site/assets/project_hexagonkt_com_public.key | 53 -------------------- site/pages/quick_start.md | 20 ++------ 3 files changed, 4 insertions(+), 71 deletions(-) delete mode 100644 site/assets/project_hexagonkt_com_public.key diff --git a/settings.gradle.kts b/settings.gradle.kts index 6195f75152..be9a204c80 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -27,7 +27,7 @@ dependencyResolutionManagement { version("detekt", "1.23.7") version("jmhGradle", "0.7.2") version("gradleWrapper", "8.10.1") - version("mkdocsMaterial", "9.5.35") + version("mkdocsMaterial", "9.5.36") version("mermaidDokka", "0.6.0") version("maven", "3.9.9") version("jreleaser", "1.14.0") diff --git a/site/assets/project_hexagonkt_com_public.key b/site/assets/project_hexagonkt_com_public.key deleted file mode 100644 index c9a972c7c7..0000000000 --- a/site/assets/project_hexagonkt_com_public.key +++ /dev/null @@ -1,53 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -aoqYg4Q= -=RXeZ ------END PGP PUBLIC KEY BLOCK----- diff --git a/site/pages/quick_start.md b/site/pages/quick_start.md index 37a8d0cdc1..f589a8cd48 100644 --- a/site/pages/quick_start.md +++ b/site/pages/quick_start.md @@ -37,21 +37,7 @@ a project from scratch following these steps: # Dependencies Verification Hexagon's dependencies are signed, you can get the public key at the -[OpenPGP Public Key Server][pgp key] or [here][site pgp key]. - -These are the details of the public key: - -``` -pub 4096R/2AEE3721 2020-05-30 Hexagon Toolkit (Key used to sign published binaries) - Fingerprint=792B D37F F598 91C4 AC6F 8D92 3B26 711D 2AEE 3721 -``` - -[pgp key]: https://keys.openpgp.org/search?q=project%40hexagonkt.com -[site pgp key]: project_hexagonkt_com_public.key - -# Dependencies Verification (hexagontk.com) -Hexagon's dependencies are signed, you can get the public key at the -[Ubuntu Public Key Server][pgp key 2] or [here][site pgp key 2]. +[Ubuntu Public Key Server][pgp key] or [here][site pgp key]. These are the details of the public key: @@ -60,8 +46,8 @@ pub ed25519/0E16E194 2024-08-24 Hexagon Toolkit (Key used to sign published bin 268363E34136BFA0AA6C8AE61902F0990E16E194 ``` -[pgp key 2]: https://keyserver.ubuntu.com/pks/lookup?search=project%40hexagontk.com&op=index -[site pgp key 2]: project_hexagontk_com_public.key +[pgp key]: https://keyserver.ubuntu.com/pks/lookup?search=project%40hexagontk.com&op=index +[site pgp key]: project_hexagontk_com_public.key # Next Steps To continue learning about this toolkit, you can: From 7a87add9a3b60e3b4a6a6620e7295d3135a04add Mon Sep 17 00:00:00 2001 From: jaguililla Date: Mon, 23 Sep 2024 01:47:00 +0200 Subject: [PATCH 3/6] Use JReleaser to publish releases --- gradle/publish.gradle | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/gradle/publish.gradle b/gradle/publish.gradle index 63619a3b94..911f43605b 100644 --- a/gradle/publish.gradle +++ b/gradle/publish.gradle @@ -4,7 +4,6 @@ apply(plugin: "signing") apply(plugin: "maven-publish") -apply(plugin: "maven-publish") apply(plugin: "org.jreleaser") signing { @@ -19,11 +18,19 @@ signing { publishing { repositories { maven { - url = "https://central.sonatype.com" + String stagingDirectory = + findProperty("stagingDirectory") ?: System.getenv("STAGING_DIRECTORY") + + if (stagingDirectory == null) { + url = "https://central.sonatype.com" - credentials { - username = findProperty("ossrhUsername") ?: System.getenv("REPOSITORY_USERNAME") - password = findProperty("ossrhPassword") ?: System.getenv("REPOSITORY_PASSWORD") + credentials { + username = findProperty("ossrhUsername") ?: System.getenv("REPOSITORY_USERNAME") + password = findProperty("ossrhPassword") ?: System.getenv("REPOSITORY_PASSWORD") + } + } + else { + url = project.file(stagingDirectory) } } } @@ -63,15 +70,27 @@ publishing { } jreleaser { + gitRootSearch = true + // signing { -// active = 'ALWAYS' +// active = "ALWAYS" // armored = true +// publicKey = findProperty("signingKey") ?: System.getenv("SIGNING_KEY") +// secretKey = findProperty("signingKey") ?: System.getenv("SIGNING_KEY") +// passphrase = findProperty("signingPassword") ?: System.getenv("SIGNING_PASSWORD") // } + deploy { maven { mavenCentral { - app { - applyMavenCentralRules = true + sonatype { + active = "ALWAYS" + url = "https://central.sonatype.com/api/v1/publisher" + username = + findProperty("REPOSITORY_USERNAME") ?: System.getenv("REPOSITORY_USERNAME") + password = + findProperty("REPOSITORY_PASSWORD") ?: System.getenv("REPOSITORY_PASSWORD") + stagingRepository("build/staging") } } } From 6e8017c670e800008535a66330f78d24f5b93369 Mon Sep 17 00:00:00 2001 From: jaguililla Date: Mon, 23 Sep 2024 02:03:36 +0200 Subject: [PATCH 4/6] Use JReleaser to publish releases --- gradle/publish.gradle | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/gradle/publish.gradle b/gradle/publish.gradle index 911f43605b..c6dab19624 100644 --- a/gradle/publish.gradle +++ b/gradle/publish.gradle @@ -72,13 +72,19 @@ publishing { jreleaser { gitRootSearch = true -// signing { -// active = "ALWAYS" -// armored = true -// publicKey = findProperty("signingKey") ?: System.getenv("SIGNING_KEY") -// secretKey = findProperty("signingKey") ?: System.getenv("SIGNING_KEY") -// passphrase = findProperty("signingPassword") ?: System.getenv("SIGNING_PASSWORD") -// } + signing { + active = "ALWAYS" + armored = true + publicKey = findProperty("signingKey") ?: System.getenv("SIGNING_KEY") + secretKey = findProperty("signingKey") ?: System.getenv("SIGNING_KEY") + passphrase = findProperty("signingPassword") ?: System.getenv("SIGNING_PASSWORD") + } + + release { + github { + token = "TODO" + } + } deploy { maven { From f87ca9ebb0a9401d541ff487937852ceec114cd7 Mon Sep 17 00:00:00 2001 From: jaguililla Date: Tue, 24 Sep 2024 20:12:20 +0200 Subject: [PATCH 5/6] Update :dependencies --- gradle/publish.gradle | 37 +----------------------- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 2 +- 3 files changed, 3 insertions(+), 38 deletions(-) diff --git a/gradle/publish.gradle b/gradle/publish.gradle index c6dab19624..06ff436ce6 100644 --- a/gradle/publish.gradle +++ b/gradle/publish.gradle @@ -4,7 +4,6 @@ apply(plugin: "signing") apply(plugin: "maven-publish") -apply(plugin: "org.jreleaser") signing { String signingKey = findProperty("signingKey") ?: System.getenv("SIGNING_KEY") @@ -30,7 +29,7 @@ publishing { } } else { - url = project.file(stagingDirectory) + url = rootProject.file(stagingDirectory) } } } @@ -68,37 +67,3 @@ publishing { } } } - -jreleaser { - gitRootSearch = true - - signing { - active = "ALWAYS" - armored = true - publicKey = findProperty("signingKey") ?: System.getenv("SIGNING_KEY") - secretKey = findProperty("signingKey") ?: System.getenv("SIGNING_KEY") - passphrase = findProperty("signingPassword") ?: System.getenv("SIGNING_PASSWORD") - } - - release { - github { - token = "TODO" - } - } - - deploy { - maven { - mavenCentral { - sonatype { - active = "ALWAYS" - url = "https://central.sonatype.com/api/v1/publisher" - username = - findProperty("REPOSITORY_USERNAME") ?: System.getenv("REPOSITORY_USERNAME") - password = - findProperty("REPOSITORY_PASSWORD") ?: System.getenv("REPOSITORY_PASSWORD") - stagingRepository("build/staging") - } - } - } - } -} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1ed247ec13..79eb9d003f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/settings.gradle.kts b/settings.gradle.kts index be9a204c80..f8d2299283 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -26,7 +26,7 @@ dependencyResolutionManagement { version("nativeTools", "0.10.3") version("detekt", "1.23.7") version("jmhGradle", "0.7.2") - version("gradleWrapper", "8.10.1") + version("gradleWrapper", "8.10.2") version("mkdocsMaterial", "9.5.36") version("mermaidDokka", "0.6.0") version("maven", "3.9.9") From 5b1e41b0d5778e07891922a6e93351587651aced Mon Sep 17 00:00:00 2001 From: jaguililla Date: Wed, 25 Sep 2024 00:18:04 +0200 Subject: [PATCH 6/6] New release process --- .github/workflows/release.yml | 27 ++++++++++++++++++------- build.gradle.kts | 38 ++++++++++++++++++++++++++++++++++- gradle.properties | 2 +- starters/README.md | 2 +- starters/build.gradle.kts | 1 + 5 files changed, 60 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5621b366c7..e6ec111dff 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,13 +30,26 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} cache: gradle - # TODO - # - env: - # REPOSITORY_PASSWORD: ${{ secrets.HEXAGONTK_REPOSITORY_PASSWORD }} - # REPOSITORY_USERNAME: ${{ secrets.HEXAGONTK_REPOSITORY_USERNAME }} - # SIGNING_KEY: ${{ secrets.HEXAGONTK_SIGNING_KEY }} - # SIGNING_PASSWORD: ${{ secrets.HEXAGONTK_SIGNING_PASSWORD }} - # run: ./gradlew --no-daemon -x test release + # TODO Check if JReleaser can push tags without an extra command + - env: + STAGING_DIRECTORY: build/staging + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + SIGNING_KEY: ${{ secrets.HEXAGONTK_SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.HEXAGONTK_SIGNING_PASSWORD }} + REPOSITORY_USERNAME: ${{ secrets.HEXAGONTK_REPOSITORY_USERNAME }} + REPOSITORY_PASSWORD: ${{ secrets.HEXAGONTK_REPOSITORY_PASSWORD }} + + JRELEASER_GPG_SECRET_KEY: ${{ secrets.HEXAGONTK_SIGNING_KEY }} + JRELEASER_GPG_PASSPHRASE: ${{ secrets.HEXAGONTK_SIGNING_PASSWORD }} + JRELEASER_DEPLOY_MAVEN_MAVENCENTRAL_SONATYPE_USERNAME: ${{ secrets.HEXAGONTK_REPOSITORY_USERNAME }} + JRELEASER_DEPLOY_MAVEN_MAVENCENTRAL_SONATYPE_PASSWORD: ${{ secrets.HEXAGONTK_REPOSITORY_PASSWORD }} + run: | + export JRELEASER_GPG_PUBLIC_KEY="$(cat site/assets/project_hexagontk_com_public.key)" + ./gradlew --no-daemon -x test publish + ./gradlew --no-daemon -x test jreleaserFullRelease + git push --tags build_site: uses: hexagontk/hexagon/.github/workflows/site.yml@develop diff --git a/build.gradle.kts b/build.gradle.kts index 84205fffc6..c5b703212d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,6 +5,7 @@ import com.github.jk1.license.render.InventoryHtmlReportRenderer import com.github.jk1.license.render.InventoryMarkdownReportRenderer import com.github.jk1.license.render.ReportRenderer import org.gradle.api.tasks.wrapper.Wrapper.DistributionType.ALL +import org.jreleaser.model.Active.ALWAYS /* * Main build script, responsible for: @@ -20,16 +21,17 @@ import org.gradle.api.tasks.wrapper.Wrapper.DistributionType.ALL plugins { kotlin("jvm") version(libs.versions.kotlin) apply(false) + id("java") id("idea") id("eclipse") id("project-report") + id("org.jreleaser") version(libs.versions.jreleaser) id("org.jetbrains.dokka") version(libs.versions.dokka) id("com.github.jk1.dependency-license-report") version(libs.versions.licenseReport) id("org.jetbrains.kotlinx.binary-compatibility-validator") version(libs.versions.binValidator) id("org.graalvm.buildtools.native") version(libs.versions.nativeTools) apply(false) id("io.gitlab.arturbosch.detekt") version(libs.versions.detekt) apply(false) id("me.champeau.jmh") version(libs.versions.jmhGradle) apply(false) - id("org.jreleaser") version(libs.versions.jreleaser) apply(false) } apply(from = "gradle/certificates.gradle") @@ -166,3 +168,37 @@ apiValidation { ) ) } + +jreleaser { + dryrun = true + + signing { + active.set(ALWAYS) + armored = true + } + + // TODO Enable GitHub release creation directly + release { + github { + tagName = "{{projectVersion}}" + skipRelease = true + } + } + + // TODO Leave Maven Central rules enabled (resolve problems with Kotlin POMs) + deploy { + maven { + mavenCentral { + create("sonatype") { + applyMavenCentralRules = false // Already checked + active.set(ALWAYS) + url = "https://central.sonatype.com/api/v1/publisher" + + val stagingProperty = findProperty("stagingDirectory")?.toString() + val stagingDirectory = stagingProperty ?: System.getenv("STAGING_DIRECTORY") + stagingRepository(stagingDirectory) + } + } + } + } +} diff --git a/gradle.properties b/gradle.properties index 42b6bfb0b1..28280afa1b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.warning.mode=all org.gradle.console=plain # Gradle -version=4.0.0-A1 +version=4.0.0-A3 group=com.hexagontk description=The atoms of your platform diff --git a/starters/README.md b/starters/README.md index 0ed3c97450..4e2a2d86a3 100644 --- a/starters/README.md +++ b/starters/README.md @@ -1,5 +1,5 @@ -## Maven Starters +# Module starters This module holds the Maven parent POMs with Kotlin setup to ease the project creation using [Maven](https://maven.apache.org). To use them declare the following `parent` section inside your diff --git a/starters/build.gradle.kts b/starters/build.gradle.kts index 03b42c44cf..083873b51b 100644 --- a/starters/build.gradle.kts +++ b/starters/build.gradle.kts @@ -5,6 +5,7 @@ import javax.xml.parsers.DocumentBuilderFactory apply(from = "../gradle/kotlin.gradle") apply(from = "../gradle/publish.gradle") +apply(from = "../gradle/dokka.gradle") extensions.configure { publications {