From 39de9a34d62ad3d0efb6cd4a4754f86b0aafe7df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Kautler?= Date: Fri, 2 May 2025 01:47:10 +0200 Subject: [PATCH 1/2] fix(abg): fix the GMM content to contain sizes, checksums, and the sources variant --- .../workflows/mavenbinding/ModuleBuilding.kt | 163 ++++++++++++------ .../mavenbinding/VersionArtifactsBuilding.kt | 44 +++-- 2 files changed, 144 insertions(+), 63 deletions(-) diff --git a/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/ModuleBuilding.kt b/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/ModuleBuilding.kt index 76dbbda419..0d295195b5 100644 --- a/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/ModuleBuilding.kt +++ b/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/ModuleBuilding.kt @@ -2,64 +2,121 @@ package io.github.typesafegithub.workflows.mavenbinding import io.github.typesafegithub.workflows.actionbindinggenerator.domain.ActionCoords -internal fun ActionCoords.buildModuleFile() = - """ - { - "formatVersion": "1.1", - "component": { - "group": "$owner", - "module": "$mavenName", - "version": "$version", - "attributes": { - "org.gradle.status": "release" - } - }, - "createdBy": { - "gradle": { - "version": "8.7" - } - }, - "variants": [ +internal fun ActionCoords.buildModuleFile( + mainJarSize: () -> Int, + mainJarMd5Checksum: () -> String, + mainJarSha1Checksum: () -> String, + mainJarSha256Checksum: () -> String, + mainJarSha512Checksum: () -> String, + sourcesJarSize: () -> Int, + sourcesJarMd5Checksum: () -> String, + sourcesJarSha1Checksum: () -> String, + sourcesJarSha256Checksum: () -> String, + sourcesJarSha512Checksum: () -> String, +): String { + val mainJarSize = mainJarSize() + val mainJarMd5Checksum = mainJarMd5Checksum() + val mainJarSha1Checksum = mainJarSha1Checksum() + val mainJarSha256Checksum = mainJarSha256Checksum() + val mainJarSha512Checksum = mainJarSha512Checksum() + val sourcesJarSize = sourcesJarSize() + val sourcesJarMd5Checksum = sourcesJarMd5Checksum() + val sourcesJarSha1Checksum = sourcesJarSha1Checksum() + val sourcesJarSha256Checksum = sourcesJarSha256Checksum() + val sourcesJarSha512Checksum = sourcesJarSha512Checksum() + return """ { - "name": "apiElements", - "attributes": { - "org.gradle.category": "library", - "org.gradle.dependency.bundling": "external", - "org.gradle.jvm.environment": "standard-jvm", - "org.gradle.jvm.version": 11, - "org.gradle.libraryelements": "jar", - "org.gradle.usage": "java-api", - "org.jetbrains.kotlin.platform.type": "jvm" + "formatVersion": "1.1", + "component": { + "group": "$owner", + "module": "$mavenName", + "version": "$version", + "attributes": { + "org.gradle.status": "release" + } }, - "dependencies": [], - "files": [ - { - "name": "$mavenName-$version.jar", - "url": "$mavenName-$version.jar", - "size": 1 + "createdBy": { + "gradle": { + "version": "8.7" } - ] - }, - { - "name": "runtimeElements", - "attributes": { - "org.gradle.category": "library", - "org.gradle.dependency.bundling": "external", - "org.gradle.jvm.environment": "standard-jvm", - "org.gradle.jvm.version": 11, - "org.gradle.libraryelements": "jar", - "org.gradle.usage": "java-runtime", - "org.jetbrains.kotlin.platform.type": "jvm" }, - "dependencies": [], - "files": [ + "variants": [ + { + "name": "apiElements", + "attributes": { + "org.gradle.category": "library", + "org.gradle.dependency.bundling": "external", + "org.gradle.jvm.environment": "standard-jvm", + "org.gradle.jvm.version": 11, + "org.gradle.libraryelements": "jar", + "org.gradle.usage": "java-api", + "org.jetbrains.kotlin.platform.type": "jvm" + }, + "files": [ + { + "name": "$mavenName-$version.jar", + "url": "$mavenName-$version.jar", + "size": $mainJarSize, + "sha512": "$mainJarSha512Checksum", + "sha256": "$mainJarSha256Checksum", + "sha1": "$mainJarSha1Checksum", + "md5": "$mainJarMd5Checksum" + } + ] + }, + { + "name": "runtimeElements", + "attributes": { + "org.gradle.category": "library", + "org.gradle.dependency.bundling": "external", + "org.gradle.jvm.environment": "standard-jvm", + "org.gradle.jvm.version": 11, + "org.gradle.libraryelements": "jar", + "org.gradle.usage": "java-runtime", + "org.jetbrains.kotlin.platform.type": "jvm" + }, + "dependencies": [ + { + "group": "io.github.typesafegithub", + "module": "github-workflows-kt", + "version": { + "requires": "$LATEST_RELASED_LIBRARY_VERSION" + } + } + ], + "files": [ + { + "name": "$mavenName-$version.jar", + "url": "$mavenName-$version.jar", + "size": $mainJarSize, + "sha512": "$mainJarSha512Checksum", + "sha256": "$mainJarSha256Checksum", + "sha1": "$mainJarSha1Checksum", + "md5": "$mainJarMd5Checksum" + } + ] + }, { - "name": "$mavenName-$version.jar", - "url": "$mavenName-$version.jar", - "size": 1 + "name": "sourcesElements", + "attributes": { + "org.gradle.category": "documentation", + "org.gradle.dependency.bundling": "external", + "org.gradle.docstype": "sources", + "org.gradle.usage": "java-runtime" + }, + "files": [ + { + "name": "$mavenName-$version-sources.jar", + "url": "$mavenName-$version-sources.jar", + "size": $sourcesJarSize, + "sha512": "$sourcesJarSha512Checksum", + "sha256": "$sourcesJarSha256Checksum", + "sha1": "$sourcesJarSha1Checksum", + "md5": "$sourcesJarMd5Checksum" + } + ] } ] } - ] - } - """.trimIndent() + """.trimIndent() +} diff --git a/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/VersionArtifactsBuilding.kt b/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/VersionArtifactsBuilding.kt index ae051b6242..60b19a96d7 100644 --- a/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/VersionArtifactsBuilding.kt +++ b/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/VersionArtifactsBuilding.kt @@ -12,22 +12,45 @@ data class JarArtifact( val data: () -> ByteArray, ) : Artifact -fun buildVersionArtifacts(actionCoords: ActionCoords): Map? = +fun buildVersionArtifacts(actionCoords: ActionCoords): Map? { with(actionCoords) { val jars = buildJars() ?: return null val pom = buildPomFile() - val module = buildModuleFile() + val mainJarSize = { jars.mainJar().size } + val mainJarMd5Checksum = { jars.mainJar().md5Checksum() } + val mainJarSha1Checksum = { jars.mainJar().sha1Checksum() } + val mainJarSha256Checksum = { jars.mainJar().sha256Checksum() } + val mainJarSha512Checksum = { jars.mainJar().sha512Checksum() } + val sourcesJarSize = { jars.sourcesJar().size } + val sourcesJarMd5Checksum = { jars.sourcesJar().md5Checksum() } + val sourcesJarSha1Checksum = { jars.sourcesJar().sha1Checksum() } + val sourcesJarSha256Checksum = { jars.sourcesJar().sha256Checksum() } + val sourcesJarSha512Checksum = { jars.sourcesJar().sha512Checksum() } + val module by lazy { + buildModuleFile( + mainJarSize, + mainJarMd5Checksum, + mainJarSha1Checksum, + mainJarSha256Checksum, + mainJarSha512Checksum, + sourcesJarSize, + sourcesJarMd5Checksum, + sourcesJarSha1Checksum, + sourcesJarSha256Checksum, + sourcesJarSha512Checksum, + ) + } return mapOf( "$mavenName-$version.jar" to JarArtifact(jars.mainJar), - "$mavenName-$version.jar.md5" to TextArtifact { jars.mainJar().md5Checksum() }, - "$mavenName-$version.jar.sha1" to TextArtifact { jars.mainJar().sha1Checksum() }, - "$mavenName-$version.jar.sha256" to TextArtifact { jars.mainJar().sha256Checksum() }, - "$mavenName-$version.jar.sha512" to TextArtifact { jars.mainJar().sha512Checksum() }, + "$mavenName-$version.jar.md5" to TextArtifact(mainJarMd5Checksum), + "$mavenName-$version.jar.sha1" to TextArtifact(mainJarSha1Checksum), + "$mavenName-$version.jar.sha256" to TextArtifact(mainJarSha256Checksum), + "$mavenName-$version.jar.sha512" to TextArtifact(mainJarSha512Checksum), "$mavenName-$version-sources.jar" to JarArtifact(jars.sourcesJar), - "$mavenName-$version-sources.jar.md5" to TextArtifact { jars.sourcesJar().md5Checksum() }, - "$mavenName-$version-sources.jar.sha1" to TextArtifact { jars.sourcesJar().sha1Checksum() }, - "$mavenName-$version-sources.jar.sha256" to TextArtifact { jars.sourcesJar().sha256Checksum() }, - "$mavenName-$version-sources.jar.sha512" to TextArtifact { jars.sourcesJar().sha512Checksum() }, + "$mavenName-$version-sources.jar.md5" to TextArtifact(sourcesJarMd5Checksum), + "$mavenName-$version-sources.jar.sha1" to TextArtifact(sourcesJarSha1Checksum), + "$mavenName-$version-sources.jar.sha256" to TextArtifact(sourcesJarSha256Checksum), + "$mavenName-$version-sources.jar.sha512" to TextArtifact(sourcesJarSha512Checksum), "$mavenName-$version.pom" to TextArtifact { pom }, "$mavenName-$version.pom.md5" to TextArtifact { pom.md5Checksum() }, "$mavenName-$version.pom.sha1" to TextArtifact { pom.sha1Checksum() }, @@ -40,3 +63,4 @@ fun buildVersionArtifacts(actionCoords: ActionCoords): Map? = "$mavenName-$version.module.sha512" to TextArtifact { module.sha512Checksum() }, ) } +} From 9e4bbf83d00a95edee4abb191912aca19085da4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Kautler?= Date: Fri, 2 May 2025 13:50:56 +0200 Subject: [PATCH 2/2] Review Feedback Vol. 1 --- .../workflows/mavenbinding/ModuleBuilding.kt | 202 ++++++++---------- .../mavenbinding/VersionArtifactsBuilding.kt | 36 ++-- 2 files changed, 113 insertions(+), 125 deletions(-) diff --git a/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/ModuleBuilding.kt b/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/ModuleBuilding.kt index 0d295195b5..e2dda2ba8f 100644 --- a/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/ModuleBuilding.kt +++ b/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/ModuleBuilding.kt @@ -3,120 +3,108 @@ package io.github.typesafegithub.workflows.mavenbinding import io.github.typesafegithub.workflows.actionbindinggenerator.domain.ActionCoords internal fun ActionCoords.buildModuleFile( - mainJarSize: () -> Int, - mainJarMd5Checksum: () -> String, - mainJarSha1Checksum: () -> String, - mainJarSha256Checksum: () -> String, - mainJarSha512Checksum: () -> String, - sourcesJarSize: () -> Int, - sourcesJarMd5Checksum: () -> String, - sourcesJarSha1Checksum: () -> String, - sourcesJarSha256Checksum: () -> String, - sourcesJarSha512Checksum: () -> String, -): String { - val mainJarSize = mainJarSize() - val mainJarMd5Checksum = mainJarMd5Checksum() - val mainJarSha1Checksum = mainJarSha1Checksum() - val mainJarSha256Checksum = mainJarSha256Checksum() - val mainJarSha512Checksum = mainJarSha512Checksum() - val sourcesJarSize = sourcesJarSize() - val sourcesJarMd5Checksum = sourcesJarMd5Checksum() - val sourcesJarSha1Checksum = sourcesJarSha1Checksum() - val sourcesJarSha256Checksum = sourcesJarSha256Checksum() - val sourcesJarSha512Checksum = sourcesJarSha512Checksum() - return """ + mainJarSize: Int, + mainJarMd5Checksum: String, + mainJarSha1Checksum: String, + mainJarSha256Checksum: String, + mainJarSha512Checksum: String, + sourcesJarSize: Int, + sourcesJarMd5Checksum: String, + sourcesJarSha1Checksum: String, + sourcesJarSha256Checksum: String, + sourcesJarSha512Checksum: String, +) = """ + { + "formatVersion": "1.1", + "component": { + "group": "$owner", + "module": "$mavenName", + "version": "$version", + "attributes": { + "org.gradle.status": "release" + } + }, + "createdBy": { + "gradle": { + "version": "8.7" + } + }, + "variants": [ { - "formatVersion": "1.1", - "component": { - "group": "$owner", - "module": "$mavenName", - "version": "$version", - "attributes": { - "org.gradle.status": "release" - } + "name": "apiElements", + "attributes": { + "org.gradle.category": "library", + "org.gradle.dependency.bundling": "external", + "org.gradle.jvm.environment": "standard-jvm", + "org.gradle.jvm.version": 11, + "org.gradle.libraryelements": "jar", + "org.gradle.usage": "java-api", + "org.jetbrains.kotlin.platform.type": "jvm" }, - "createdBy": { - "gradle": { - "version": "8.7" + "files": [ + { + "name": "$mavenName-$version.jar", + "url": "$mavenName-$version.jar", + "size": $mainJarSize, + "sha512": "$mainJarSha512Checksum", + "sha256": "$mainJarSha256Checksum", + "sha1": "$mainJarSha1Checksum", + "md5": "$mainJarMd5Checksum" } + ] + }, + { + "name": "runtimeElements", + "attributes": { + "org.gradle.category": "library", + "org.gradle.dependency.bundling": "external", + "org.gradle.jvm.environment": "standard-jvm", + "org.gradle.jvm.version": 11, + "org.gradle.libraryelements": "jar", + "org.gradle.usage": "java-runtime", + "org.jetbrains.kotlin.platform.type": "jvm" }, - "variants": [ + "dependencies": [ { - "name": "apiElements", - "attributes": { - "org.gradle.category": "library", - "org.gradle.dependency.bundling": "external", - "org.gradle.jvm.environment": "standard-jvm", - "org.gradle.jvm.version": 11, - "org.gradle.libraryelements": "jar", - "org.gradle.usage": "java-api", - "org.jetbrains.kotlin.platform.type": "jvm" - }, - "files": [ - { - "name": "$mavenName-$version.jar", - "url": "$mavenName-$version.jar", - "size": $mainJarSize, - "sha512": "$mainJarSha512Checksum", - "sha256": "$mainJarSha256Checksum", - "sha1": "$mainJarSha1Checksum", - "md5": "$mainJarMd5Checksum" - } - ] - }, + "group": "io.github.typesafegithub", + "module": "github-workflows-kt", + "version": { + "requires": "$LATEST_RELASED_LIBRARY_VERSION" + } + } + ], + "files": [ { - "name": "runtimeElements", - "attributes": { - "org.gradle.category": "library", - "org.gradle.dependency.bundling": "external", - "org.gradle.jvm.environment": "standard-jvm", - "org.gradle.jvm.version": 11, - "org.gradle.libraryelements": "jar", - "org.gradle.usage": "java-runtime", - "org.jetbrains.kotlin.platform.type": "jvm" - }, - "dependencies": [ - { - "group": "io.github.typesafegithub", - "module": "github-workflows-kt", - "version": { - "requires": "$LATEST_RELASED_LIBRARY_VERSION" - } - } - ], - "files": [ - { - "name": "$mavenName-$version.jar", - "url": "$mavenName-$version.jar", - "size": $mainJarSize, - "sha512": "$mainJarSha512Checksum", - "sha256": "$mainJarSha256Checksum", - "sha1": "$mainJarSha1Checksum", - "md5": "$mainJarMd5Checksum" - } - ] - }, + "name": "$mavenName-$version.jar", + "url": "$mavenName-$version.jar", + "size": $mainJarSize, + "sha512": "$mainJarSha512Checksum", + "sha256": "$mainJarSha256Checksum", + "sha1": "$mainJarSha1Checksum", + "md5": "$mainJarMd5Checksum" + } + ] + }, + { + "name": "sourcesElements", + "attributes": { + "org.gradle.category": "documentation", + "org.gradle.dependency.bundling": "external", + "org.gradle.docstype": "sources", + "org.gradle.usage": "java-runtime" + }, + "files": [ { - "name": "sourcesElements", - "attributes": { - "org.gradle.category": "documentation", - "org.gradle.dependency.bundling": "external", - "org.gradle.docstype": "sources", - "org.gradle.usage": "java-runtime" - }, - "files": [ - { - "name": "$mavenName-$version-sources.jar", - "url": "$mavenName-$version-sources.jar", - "size": $sourcesJarSize, - "sha512": "$sourcesJarSha512Checksum", - "sha256": "$sourcesJarSha256Checksum", - "sha1": "$sourcesJarSha1Checksum", - "md5": "$sourcesJarMd5Checksum" - } - ] + "name": "$mavenName-$version-sources.jar", + "url": "$mavenName-$version-sources.jar", + "size": $sourcesJarSize, + "sha512": "$sourcesJarSha512Checksum", + "sha256": "$sourcesJarSha256Checksum", + "sha1": "$sourcesJarSha1Checksum", + "md5": "$sourcesJarMd5Checksum" } ] } - """.trimIndent() -} + ] + } + """.trimIndent() diff --git a/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/VersionArtifactsBuilding.kt b/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/VersionArtifactsBuilding.kt index 60b19a96d7..ba42523706 100644 --- a/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/VersionArtifactsBuilding.kt +++ b/maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/VersionArtifactsBuilding.kt @@ -16,16 +16,16 @@ fun buildVersionArtifacts(actionCoords: ActionCoords): Map? { with(actionCoords) { val jars = buildJars() ?: return null val pom = buildPomFile() - val mainJarSize = { jars.mainJar().size } - val mainJarMd5Checksum = { jars.mainJar().md5Checksum() } - val mainJarSha1Checksum = { jars.mainJar().sha1Checksum() } - val mainJarSha256Checksum = { jars.mainJar().sha256Checksum() } - val mainJarSha512Checksum = { jars.mainJar().sha512Checksum() } - val sourcesJarSize = { jars.sourcesJar().size } - val sourcesJarMd5Checksum = { jars.sourcesJar().md5Checksum() } - val sourcesJarSha1Checksum = { jars.sourcesJar().sha1Checksum() } - val sourcesJarSha256Checksum = { jars.sourcesJar().sha256Checksum() } - val sourcesJarSha512Checksum = { jars.sourcesJar().sha512Checksum() } + val mainJarSize by lazy { jars.mainJar().size } + val mainJarMd5Checksum by lazy { jars.mainJar().md5Checksum() } + val mainJarSha1Checksum by lazy { jars.mainJar().sha1Checksum() } + val mainJarSha256Checksum by lazy { jars.mainJar().sha256Checksum() } + val mainJarSha512Checksum by lazy { jars.mainJar().sha512Checksum() } + val sourcesJarSize by lazy { jars.sourcesJar().size } + val sourcesJarMd5Checksum by lazy { jars.sourcesJar().md5Checksum() } + val sourcesJarSha1Checksum by lazy { jars.sourcesJar().sha1Checksum() } + val sourcesJarSha256Checksum by lazy { jars.sourcesJar().sha256Checksum() } + val sourcesJarSha512Checksum by lazy { jars.sourcesJar().sha512Checksum() } val module by lazy { buildModuleFile( mainJarSize, @@ -42,15 +42,15 @@ fun buildVersionArtifacts(actionCoords: ActionCoords): Map? { } return mapOf( "$mavenName-$version.jar" to JarArtifact(jars.mainJar), - "$mavenName-$version.jar.md5" to TextArtifact(mainJarMd5Checksum), - "$mavenName-$version.jar.sha1" to TextArtifact(mainJarSha1Checksum), - "$mavenName-$version.jar.sha256" to TextArtifact(mainJarSha256Checksum), - "$mavenName-$version.jar.sha512" to TextArtifact(mainJarSha512Checksum), + "$mavenName-$version.jar.md5" to TextArtifact { mainJarMd5Checksum }, + "$mavenName-$version.jar.sha1" to TextArtifact { mainJarSha1Checksum }, + "$mavenName-$version.jar.sha256" to TextArtifact { mainJarSha256Checksum }, + "$mavenName-$version.jar.sha512" to TextArtifact { mainJarSha512Checksum }, "$mavenName-$version-sources.jar" to JarArtifact(jars.sourcesJar), - "$mavenName-$version-sources.jar.md5" to TextArtifact(sourcesJarMd5Checksum), - "$mavenName-$version-sources.jar.sha1" to TextArtifact(sourcesJarSha1Checksum), - "$mavenName-$version-sources.jar.sha256" to TextArtifact(sourcesJarSha256Checksum), - "$mavenName-$version-sources.jar.sha512" to TextArtifact(sourcesJarSha512Checksum), + "$mavenName-$version-sources.jar.md5" to TextArtifact { sourcesJarMd5Checksum }, + "$mavenName-$version-sources.jar.sha1" to TextArtifact { sourcesJarSha1Checksum }, + "$mavenName-$version-sources.jar.sha256" to TextArtifact { sourcesJarSha256Checksum }, + "$mavenName-$version-sources.jar.sha512" to TextArtifact { sourcesJarSha512Checksum }, "$mavenName-$version.pom" to TextArtifact { pom }, "$mavenName-$version.pom.md5" to TextArtifact { pom.md5Checksum() }, "$mavenName-$version.pom.sha1" to TextArtifact { pom.sha1Checksum() },