Skip to content

Commit

Permalink
feat: Use new sonatype publishing plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
Stainless Bot committed Mar 22, 2024
1 parent fa22fd7 commit d3f8fb2
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 75 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/publish-sonatype.yml
Expand Up @@ -30,7 +30,7 @@ jobs:

- name: Publish to Sonatype
run: |
./gradlew publish --stacktrace
./gradlew publishToMavenCentral --stacktrace -PmavenCentralUsername="$SONATYPE_USERNAME" -PmavenCentralPassword="$SONATYPE_PASSWORD"
env:
SONATYPE_USERNAME: ${{ secrets.LANG_SMITH_SONATYPE_USERNAME || secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.LANG_SMITH_SONATYPE_PASSWORD || secrets.SONATYPE_PASSWORD }}
Expand Down
14 changes: 0 additions & 14 deletions build.gradle.kts
@@ -1,20 +1,6 @@
plugins {
id("io.github.gradle-nexus.publish-plugin") version "1.1.0"
}

allprojects {
group = "com.langsmith.api"
version = "0.1.0-alpha.1" // x-release-please-version
}

nexusPublishing {
repositories {
sonatype {
nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))

username.set(System.getenv("SONATYPE_USERNAME"))
password.set(System.getenv("SONATYPE_PASSWORD"))
}
}
}
4 changes: 4 additions & 0 deletions buildSrc/build.gradle.kts
@@ -1,12 +1,16 @@
plugins {
`kotlin-dsl`
kotlin("jvm") version "1.9.22"
id("com.vanniktech.maven.publish") version "0.28.0"
}

repositories {
gradlePluginPortal()
mavenCentral()
}

dependencies {
implementation("com.diffplug.spotless:spotless-plugin-gradle:6.25.0")
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22")
implementation("com.vanniktech:gradle-maven-publish-plugin:0.28.0")
}
14 changes: 4 additions & 10 deletions buildSrc/src/main/kotlin/langsmith.java.gradle.kts
@@ -1,6 +1,9 @@
import com.diffplug.gradle.spotless.SpotlessExtension
import com.vanniktech.maven.publish.JavaLibrary
import com.vanniktech.maven.publish.JavadocJar
import com.vanniktech.maven.publish.MavenPublishBaseExtension
import com.vanniktech.maven.publish.SonatypeHost
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import java.util.Locale

plugins {
`java-library`
Expand All @@ -11,11 +14,6 @@ repositories {
mavenCentral()
}

configure<JavaPluginExtension> {
withJavadocJar()
withSourcesJar()
}

configure<SpotlessExtension> {
java {
importOrder()
Expand All @@ -35,10 +33,6 @@ tasks.withType<JavaCompile> {
options.release.set(8)
}

tasks.named<Jar>("javadocJar") {
setZip64(true)
}

tasks.jar {
manifest {
attributes(mapOf(
Expand Down
1 change: 1 addition & 0 deletions buildSrc/src/main/kotlin/langsmith.kotlin.gradle.kts
@@ -1,4 +1,5 @@
import com.diffplug.gradle.spotless.SpotlessExtension
import com.vanniktech.maven.publish.*
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
Expand Down
83 changes: 34 additions & 49 deletions buildSrc/src/main/kotlin/langsmith.publish.gradle.kts
@@ -1,67 +1,52 @@
import com.vanniktech.maven.publish.MavenPublishBaseExtension
import com.vanniktech.maven.publish.SonatypeHost
import org.gradle.api.publish.PublishingExtension
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.create
import org.gradle.kotlin.dsl.get

plugins {
`maven-publish`
`signing`
id("com.vanniktech.maven.publish")
}

configure<PublishingExtension> {
publications {
create<MavenPublication>("maven") {
from(components["java"])
repositories {
gradlePluginPortal()
mavenCentral()
}

pom {
name.set("LangSmith")
description.set("An SDK library for LangSmith")
url.set("https://docs.LangSmith.com")
extra["signingInMemoryKey"] = System.getenv("GPG_SIGNING_KEY")
extra["signingInMemoryKeyId"] = System.getenv("GPG_SIGNING_KEY_ID")
extra["signingInMemoryKeyPassword"] = System.getenv("GPG_SIGNING_PASSWORD")

licenses {
license {
name.set("Apache-2.0")
}
}
configure<MavenPublishBaseExtension> {
signAllPublications()
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL)

developers {
developer {
name.set("Lang Smith")
email.set("[email protected]")
}
}
this.coordinates(project.group.toString(), project.name, project.version.toString())

scm {
connection.set("scm:git:git://github.com/langchain-ai/langsmith-java.git")
developerConnection.set("scm:git:git://github.com/langchain-ai/langsmith-java.git")
url.set("https://github.com/langchain-ai/langsmith-java")
}
pom {
name.set("LangSmith")
description.set("An SDK library for LangSmith")
url.set("https://docs.LangSmith.com")

versionMapping {
allVariants {
fromResolutionResult()
}
}
licenses {
license {
name.set("Apache-2.0")
}
}
}
}

signing {
val signingKeyId = System.getenv("GPG_SIGNING_KEY_ID")?.ifBlank { null }
val signingKey = System.getenv("GPG_SIGNING_KEY")?.ifBlank { null }
val signingPassword = System.getenv("GPG_SIGNING_PASSWORD")?.ifBlank { null }
if (signingKey != null && signingPassword != null) {
useInMemoryPgpKeys(
signingKeyId,
signingKey,
signingPassword,
)
sign(publishing.publications["maven"])
}
}
developers {
developer {
name.set("Lang Smith")
email.set("[email protected]")
}
}

tasks.publish {
dependsOn(":closeAndReleaseSonatypeStagingRepository")
}
scm {
connection.set("scm:git:git://github.com/langchain-ai/langsmith-java.git")
developerConnection.set("scm:git:git://github.com/langchain-ai/langsmith-java.git")
url.set("https://github.com/langchain-ai/langsmith-java")
}
}
}
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

0 comments on commit d3f8fb2

Please sign in to comment.