diff --git a/buildSrc/src/main/kotlin/pklJavaExecutable.gradle.kts b/buildSrc/src/main/kotlin/pklJavaExecutable.gradle.kts index c5aca821..a5801262 100644 --- a/buildSrc/src/main/kotlin/pklJavaExecutable.gradle.kts +++ b/buildSrc/src/main/kotlin/pklJavaExecutable.gradle.kts @@ -19,7 +19,7 @@ import org.gradle.kotlin.dsl.support.serviceOf plugins { id("pklJavaLibrary") - id("pklPublishLibrary") + // id("pklPublishLibrary") id("com.github.johnrengelman.shadow") } @@ -98,34 +98,34 @@ tasks.check { dependsOn(testStartJavaExecutableOnOtherJdks) } -publishing { - publications { - // need to put in `afterEvaluate` because `artifactId` cannot be set lazily. - project.afterEvaluate { - register("javaExecutable") { - artifactId = executableSpec.javaPublicationName.get() +// publishing { +// publications { +// // need to put in `afterEvaluate` because `artifactId` cannot be set lazily. +// project.afterEvaluate { +// register("javaExecutable") { +// artifactId = executableSpec.javaPublicationName.get() +// +// artifact(javaExecutable.map { it.outputs.files.singleFile }) { +// classifier = null +// extension = "bin" +// builtBy(javaExecutable) +// } +// +// pom { +// url = executableSpec.website +// description = +// executableSpec.documentationName.map { name -> +// """ +// $name executable for Java. +// Can be executed directly, or with `java -jar `. +// Requires Java 17 or higher. +// """ +// .trimIndent() +// } +// } +// } +// } +// } +// } - artifact(javaExecutable.map { it.outputs.files.singleFile }) { - classifier = null - extension = "jar" - builtBy(javaExecutable) - } - - pom { - url = executableSpec.website - description = - executableSpec.documentationName.map { name -> - """ - $name executable for Java. - Can be executed directly, or with `java -jar `. - Requires Java 17 or higher. - """ - .trimIndent() - } - } - } - } - } -} - -signing { project.afterEvaluate { sign(publishing.publications["javaExecutable"]) } } +// signing { project.afterEvaluate { sign(publishing.publications["javaExecutable"]) } } diff --git a/buildSrc/src/main/kotlin/pklNativeExecutable.gradle.kts b/buildSrc/src/main/kotlin/pklNativeExecutable.gradle.kts index 9ed058b7..b55c5c0e 100644 --- a/buildSrc/src/main/kotlin/pklNativeExecutable.gradle.kts +++ b/buildSrc/src/main/kotlin/pklNativeExecutable.gradle.kts @@ -20,8 +20,7 @@ plugins { id("pklGraalVm") id("pklJavaLibrary") id("pklNativeLifecycle") - // TODO: re-enable maven publishing - // id("pklPublishLibrary") + id("pklPublishLibrary") id("com.github.johnrengelman.shadow") } @@ -171,122 +170,122 @@ val assembleNativeAlpineLinuxAmd64 by tasks.existing { wraps(alpineExecutableAmd val assembleNativeWindowsAmd64 by tasks.existing { wraps(windowsExecutableAmd64) } -// publishing { -// publications { -// // need to put in `afterEvaluate` because `artifactId` cannot be set lazily. -// project.afterEvaluate { -// create("macExecutableAmd64") { -// artifactId = "${executableSpec.publicationName.get()}-macos-amd64" -// artifact(stagedMacAmd64Executable.singleFile) { -// classifier = null -// extension = "bin" -// builtBy(stagedMacAmd64Executable) -// } -// pom { -// name = "${executableSpec.publicationName.get()}-macos-amd64" -// url = executableSpec.website -// description = -// executableSpec.documentationName.map { name -> -// "Native $name executable for macOS/amd64." -// } -// } -// } -// -// create("macExecutableAarch64") { -// artifactId = "${executableSpec.publicationName.get()}-macos-aarch64" -// artifact(stagedMacAarch64Executable.singleFile) { -// classifier = null -// extension = "bin" -// builtBy(stagedMacAarch64Executable) -// } -// pom { -// name = "${executableSpec.publicationName.get()}-macos-aarch64" -// url = executableSpec.website -// description = -// executableSpec.documentationName.map { name -> -// "Native $name executable for macOS/aarch64." -// } -// } -// } -// -// create("linuxExecutableAmd64") { -// artifactId = "${executableSpec.publicationName.get()}-linux-amd64" -// artifact(stagedLinuxAmd64Executable.singleFile) { -// classifier = null -// extension = "bin" -// builtBy(stagedLinuxAmd64Executable) -// } -// pom { -// name = "${executableSpec.publicationName.get()}-linux-amd64" -// url = executableSpec.website -// description = -// executableSpec.documentationName.map { name -> -// "Native $name executable for linux/amd64." -// } -// } -// } -// -// create("linuxExecutableAarch64") { -// artifactId = "${executableSpec.publicationName.get()}-linux-aarch64" -// artifact(stagedLinuxAarch64Executable.singleFile) { -// classifier = null -// extension = "bin" -// builtBy(stagedLinuxAarch64Executable) -// } -// pom { -// name = "${executableSpec.publicationName.get()}-linux-aarch64" -// url = executableSpec.website -// description = -// executableSpec.documentationName.map { name -> -// "Native $name executable for linux/aarch64." -// } -// } -// } -// -// create("alpineLinuxExecutableAmd64") { -// artifactId = "${executableSpec.publicationName.get()}-alpine-linux-amd64" -// artifact(stagedAlpineLinuxAmd64Executable.singleFile) { -// classifier = null -// extension = "bin" -// builtBy(stagedAlpineLinuxAmd64Executable) -// } -// pom { -// name = "${executableSpec.publicationName.get()}-alpine-linux-amd64" -// url = executableSpec.website -// description = -// executableSpec.documentationName.map { name -> -// "Native $name executable for linux/amd64 and statically linked to musl." -// } -// } -// } -// -// create("windowsExecutableAmd64") { -// artifactId = "${executableSpec.publicationName.get()}-windows-amd64" -// artifact(stagedWindowsAmd64Executable.singleFile) { -// classifier = null -// extension = "exe" -// builtBy(stagedWindowsAmd64Executable) -// } -// pom { -// name = "${executableSpec.publicationName.get()}-windows-amd64" -// url = executableSpec.website -// description = -// executableSpec.documentationName.map { name -> -// "Native $name executable for windows/amd64." -// } -// } -// } -// } -// } -// } -// -// signing { -// project.afterEvaluate { -// sign(publishing.publications["linuxExecutableAarch64"]) -// sign(publishing.publications["linuxExecutableAmd64"]) -// sign(publishing.publications["macExecutableAarch64"]) -// sign(publishing.publications["macExecutableAmd64"]) -// sign(publishing.publications["alpineLinuxExecutableAmd64"]) -// sign(publishing.publications["windowsExecutableAmd64"]) -// } -// } +publishing { + publications { + // need to put in `afterEvaluate` because `artifactId` cannot be set lazily. + project.afterEvaluate { + create("macExecutableAmd64") { + artifactId = "${executableSpec.publicationName.get()}-macos-amd64" + artifact(stagedMacAmd64Executable.singleFile) { + classifier = null + extension = "bin" + builtBy(stagedMacAmd64Executable) + } + pom { + name = "${executableSpec.publicationName.get()}-macos-amd64" + url = executableSpec.website + description = + executableSpec.documentationName.map { name -> + "Native $name executable for macOS/amd64." + } + } + } + + create("macExecutableAarch64") { + artifactId = "${executableSpec.publicationName.get()}-macos-aarch64" + artifact(stagedMacAarch64Executable.singleFile) { + classifier = null + extension = "bin" + builtBy(stagedMacAarch64Executable) + } + pom { + name = "${executableSpec.publicationName.get()}-macos-aarch64" + url = executableSpec.website + description = + executableSpec.documentationName.map { name -> + "Native $name executable for macOS/aarch64." + } + } + } + + create("linuxExecutableAmd64") { + artifactId = "${executableSpec.publicationName.get()}-linux-amd64" + artifact(stagedLinuxAmd64Executable.singleFile) { + classifier = null + extension = "bin" + builtBy(stagedLinuxAmd64Executable) + } + pom { + name = "${executableSpec.publicationName.get()}-linux-amd64" + url = executableSpec.website + description = + executableSpec.documentationName.map { name -> + "Native $name executable for linux/amd64." + } + } + } + + create("linuxExecutableAarch64") { + artifactId = "${executableSpec.publicationName.get()}-linux-aarch64" + artifact(stagedLinuxAarch64Executable.singleFile) { + classifier = null + extension = "bin" + builtBy(stagedLinuxAarch64Executable) + } + pom { + name = "${executableSpec.publicationName.get()}-linux-aarch64" + url = executableSpec.website + description = + executableSpec.documentationName.map { name -> + "Native $name executable for linux/aarch64." + } + } + } + + create("alpineLinuxExecutableAmd64") { + artifactId = "${executableSpec.publicationName.get()}-alpine-linux-amd64" + artifact(stagedAlpineLinuxAmd64Executable.singleFile) { + classifier = null + extension = "bin" + builtBy(stagedAlpineLinuxAmd64Executable) + } + pom { + name = "${executableSpec.publicationName.get()}-alpine-linux-amd64" + url = executableSpec.website + description = + executableSpec.documentationName.map { name -> + "Native $name executable for linux/amd64 and statically linked to musl." + } + } + } + + create("windowsExecutableAmd64") { + artifactId = "${executableSpec.publicationName.get()}-windows-amd64" + artifact(stagedWindowsAmd64Executable.singleFile) { + classifier = null + extension = "exe" + builtBy(stagedWindowsAmd64Executable) + } + pom { + name = "${executableSpec.publicationName.get()}-windows-amd64" + url = executableSpec.website + description = + executableSpec.documentationName.map { name -> + "Native $name executable for windows/amd64." + } + } + } + } + } +} + +signing { + project.afterEvaluate { + sign(publishing.publications["linuxExecutableAarch64"]) + sign(publishing.publications["linuxExecutableAmd64"]) + sign(publishing.publications["macExecutableAarch64"]) + sign(publishing.publications["macExecutableAmd64"]) + sign(publishing.publications["alpineLinuxExecutableAmd64"]) + sign(publishing.publications["windowsExecutableAmd64"]) + } +} diff --git a/docs/modules/release-notes/pages/0.29.adoc b/docs/modules/release-notes/pages/0.29.adoc index e6631b63..c1cec1eb 100644 --- a/docs/modules/release-notes/pages/0.29.adoc +++ b/docs/modules/release-notes/pages/0.29.adoc @@ -381,9 +381,11 @@ Code that references the name from the lexical scope will continue to work as-is To learn more about name resolution, consult the xref:language-reference:index.adoc#name-resolution[language reference]. -=== Native executables are not published to Maven Central +=== jpkl is not published to Maven Central -Due to a breakage in release pipeline, the `pkl` native executables are no longer published to Maven Central (https://github.com/apple/pkl/pull/1146[#1146]). +Due to a breakage in release pipeline, the `jpkl` executable is not published to Maven Central (https://github.com/apple/pkl/pull/1147[#1147]). + +It is still available to download as a GitHub release asset. == Miscellaneous [small]#🐸#