diff --git a/pkl-tools/pkl-tools.gradle.kts b/pkl-tools/pkl-tools.gradle.kts index 53759086..a464aa9f 100644 --- a/pkl-tools/pkl-tools.gradle.kts +++ b/pkl-tools/pkl-tools.gradle.kts @@ -1,12 +1,19 @@ +import java.nio.charset.StandardCharsets +import java.util.* + plugins { pklAllProjects pklFatJar - pklPublishLibrary - pklJavaLibrary + signing } val firstPartySourcesJars by configurations.existing +java { + // create an empty javadoc jar so Maven Central is happy + withJavadocJar() +} + // Note: pkl-tools cannot (easily) contain pkl-config-kotlin // because pkl-tools ships with a shaded Kotlin stdlib. dependencies { @@ -36,14 +43,6 @@ tasks.shadowJar { publishing { publications { - named("library") { - pom { - url.set("https://github.com/apple/pkl/tree/main/pkl-tools") - description.set(""" - The suite of libraries and tools within the Pkl JVM ecosystem. - """.trimIndent()) - } - } named("fatJar") { // don't use `-all` suffix because this is the only JAR we publish artifactId = "pkl-tools" @@ -52,7 +51,48 @@ publishing { description.set("Fat Jar containing pkl-cli, pkl-codegen-java, " + "pkl-codegen-kotlin, pkl-config-java, pkl-core, pkl-doc, " + "and their shaded third-party dependencies.") + name.set(artifactId) + // keep in sync with pklPublishLibrary + licenses { + license { + name.set("The Apache Software License, Version 2.0") + url.set("https://github.com/apple/pkl/blob/main/LICENSE.txt") + } + } + developers { + developer { + id.set("pkl-authors") + name.set("The Pkl Authors") + email.set("pkl-oss@group.apple.com") + } + } + scm { + connection.set("scm:git:git://github.com/apple/pkl.git") + developerConnection.set("scm:git:ssh://github.com/apple/pkl.git") + val buildInfo = project.extensions.getByType() + url.set("https://github.com/apple/pkl/tree/${buildInfo.commitish}") + } + issueManagement { + system.set("GitHub Issues") + url.set("https://github.com/apple/pkl/issues") + } + ciManagement { + system.set("Circle CI") + url.set("https://app.circleci.com/pipelines/github/apple/pkl") + } } } } } + +signing { + // provided as env vars `ORG_GRADLE_PROJECT_signingKey` and `ORG_GRADLE_PROJECT_signingPassword` + // in CI. + val signingKey = (findProperty("signingKey") as String?) + ?.let { Base64.getDecoder().decode(it).toString(StandardCharsets.US_ASCII) } + val signingPassword = findProperty("signingPassword") as String? + if (signingKey != null && signingPassword != null) { + useInMemoryPgpKeys(signingKey, signingPassword) + } + sign(publishing.publications["fatJar"]) +} diff --git a/pkl-tools/src/main/java/org/pkl/tools/Tools.java b/pkl-tools/src/main/java/org/pkl/tools/Tools.java deleted file mode 100644 index 3df5d3e9..00000000 --- a/pkl-tools/src/main/java/org/pkl/tools/Tools.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.pkl.tools; - -/** This is an intentionally empty class. */ -@SuppressWarnings("unused") -public class Tools {}