Skip to content

Commit 997a9f6

Browse files
authored
feat: setup DynamoDbMapper publication (#1419)
1 parent 535d4c3 commit 997a9f6

File tree

13 files changed

+61
-118
lines changed

13 files changed

+61
-118
lines changed

.brazil.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
{
22
"dependencies": {
3+
"org.jetbrains.kotlin:kotlin-gradle-plugin:2.*": "KotlinGradlePlugin-2.x",
34
"org.jetbrains.kotlin:kotlin-stdlib-common:2.*.*": "KotlinStdlibCommon-2.x",
45
"org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.*.*": "KotlinStdlibJdk8-2.x",
56
"org.jetbrains.kotlin:kotlin-stdlib:2.*.*": "KotlinStdlib-2.x",
67
"org.jetbrains.kotlinx:atomicfu:0.*.*": "Atomicfu-0.x",
78
"org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.*": "KotlinxCoroutinesCoreJvm-1.x",
8-
"org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.*": "KotlinxCoroutinesJdk8-1.x"
9+
"org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.*": "KotlinxCoroutinesJdk8-1.x",
10+
"com.google.devtools.ksp:symbol-processing-api:2.*": "Maven-com-google-devtools-ksp_symbol-processing-api-2.x",
11+
"com.google.devtools.ksp:symbol-processing-gradle-plugin:2.*": "Maven-com-google-devtools-ksp_symbol-processing-gradle-plugin-2.x"
912
},
1013
"packageHandlingRules": {
1114
"versioning": {
1215
"defaultVersionLayout": "{MAJOR}.0.x"
1316
},
1417
"ignore": [
1518
"aws.sdk.kotlin:bom",
16-
"aws.sdk.kotlin.crt:aws-crt-kotlin-android",
1719
"aws.sdk.kotlin:testing",
1820
"aws.sdk.kotlin:version-catalog"
1921
],

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ksp-version = "2.0.10-1.0.24" # Keep in sync with kotlin-version
44

55
dokka-version = "1.9.10"
66

7-
aws-kotlin-repo-tools-version = "0.4.10"
7+
aws-kotlin-repo-tools-version = "0.4.11"
88

99
# libs
1010
coroutines-version = "1.9.0"

hll/build.gradle.kts

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import aws.sdk.kotlin.gradle.dsl.configurePublishing
77
import aws.sdk.kotlin.gradle.kmp.*
8+
import aws.smithy.kotlin.runtime.InternalApi
9+
import aws.smithy.kotlin.runtime.text.ensureSuffix
810
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
911

1012
description = "High-level libraries for the AWS SDK for Kotlin"
@@ -31,22 +33,32 @@ val optinAnnotations = listOf(
3133
"kotlin.RequiresOptIn",
3234
)
3335

36+
@OptIn(InternalApi::class)
37+
val hllPreviewVersion = if (sdkVersion.contains("-SNAPSHOT")) { // e.g. 1.3.29-beta-SNAPSHOT
38+
sdkVersion
39+
.removeSuffix("-SNAPSHOT")
40+
.ensureSuffix("-beta-SNAPSHOT")
41+
} else {
42+
sdkVersion.ensureSuffix("-beta") // e.g. 1.3.29-beta
43+
}
44+
45+
subprojects {
46+
group = "aws.sdk.kotlin"
47+
version = hllPreviewVersion
48+
configurePublishing("aws-sdk-kotlin")
49+
}
50+
3451
subprojects {
3552
if (!needsKmpConfigured) {
3653
return@subprojects
3754
}
3855

39-
group = "aws.sdk.kotlin"
40-
version = sdkVersion
41-
4256
apply {
4357
plugin("org.jetbrains.kotlin.multiplatform")
4458
plugin("org.jetbrains.dokka")
4559
plugin(libraries.plugins.aws.kotlin.repo.tools.kmp.get().pluginId)
4660
}
4761

48-
configurePublishing("aws-sdk-kotlin")
49-
5062
kotlin {
5163
explicitApi()
5264

@@ -94,7 +106,6 @@ apiValidation {
94106

95107
ignoredProjects += listOf(
96108
"hll-codegen",
97-
"dynamodb-mapper-annotation-processor-test",
98109
"dynamodb-mapper-codegen",
99110
"dynamodb-mapper-ops-codegen",
100111
"dynamodb-mapper-schema-codegen",

hll/dynamodb-mapper/dynamodb-mapper-codegen/build.gradle.kts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ kotlin {
3030
}
3131
}
3232

33-
val sdkVersion: String by project
34-
group = "aws.sdk.kotlin"
35-
version = sdkVersion
36-
3733
val sourcesJar by tasks.creating(Jar::class) {
3834
group = "publishing"
3935
description = "Assembles Kotlin sources jar"

hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/build.gradle.kts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ tasks.test {
4949
}
5050
}
5151

52-
val sdkVersion: String by project
53-
group = "aws.sdk.kotlin"
54-
version = sdkVersion
55-
5652
val sourcesJar by tasks.creating(Jar::class) {
5753
group = "publishing"
5854
description = "Assembles Kotlin sources jar"

hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/build.gradle.kts

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import aws.smithy.kotlin.runtime.InternalApi
2+
import aws.smithy.kotlin.runtime.text.ensureSuffix
13
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
24

35
/*
@@ -45,10 +47,6 @@ gradlePlugin {
4547
}
4648
}
4749

48-
val sdkVersion: String by project
49-
group = "aws.sdk.kotlin"
50-
version = sdkVersion
51-
5250
publishing {
5351
publications {
5452
create<MavenPublication>("dynamodb-mapper-schema-generator-plugin") {
@@ -57,6 +55,27 @@ publishing {
5755
}
5856
}
5957

58+
/**
59+
* The `java-gradle-plugin` plugin creates a javadoc jar by default, conflicting with the empty javadoc jar (emptyJar)
60+
* created in aws-kotlin-repo-tools. Configure dependencies and disable the emptyJar task to avoid conflicts.
61+
*/
62+
afterEvaluate {
63+
tasks.withType<PublishToMavenRepository> {
64+
dependsOn(tasks.named("javadocJar"))
65+
}
66+
67+
tasks.named("publishDynamodb-mapper-schema-generatorPluginMarkerMavenPublicationToMavenLocal") {
68+
dependsOn(tasks.named("javadocJar"))
69+
}
70+
71+
tasks.findByName("signDynamodb-mapper-schema-generatorPluginMarkerMavenPublication")
72+
?.dependsOn(tasks.named("javadocJar"))
73+
74+
tasks.named("emptyJar") {
75+
enabled = false
76+
}
77+
}
78+
6079
tasks.test {
6180
useJUnitPlatform()
6281
testLogging {
@@ -69,6 +88,17 @@ tasks.test {
6988
}
7089

7190
// FIXME Commonize the following functions into the aws-kotlin-repo-tools build-support
91+
val sdkVersion: String by project
92+
93+
@OptIn(InternalApi::class)
94+
val hllPreviewVersion = if (sdkVersion.contains("-SNAPSHOT")) { // e.g. 1.3.29-beta-SNAPSHOT
95+
sdkVersion
96+
.removeSuffix("-SNAPSHOT")
97+
.ensureSuffix("-beta-SNAPSHOT")
98+
} else {
99+
sdkVersion.ensureSuffix("-beta") // e.g. 1.3.29-beta
100+
}
101+
72102
/**
73103
* Create a file containing the sdkVersion to use as a resource
74104
* This saves us from having to manually change version numbers in multiple places
@@ -81,7 +111,7 @@ val generateSdkVersionFile by tasks.registering {
81111
outputs.file(versionFile)
82112
sourceSets.main.get().output.dir(resourcesDir)
83113
doLast {
84-
versionFile.writeText(sdkVersion)
114+
versionFile.writeText(hllPreviewVersion)
85115
}
86116
}
87117

hll/dynamodb-mapper/dynamodb-mapper/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
1212
import java.nio.file.Files
1313
import java.nio.file.StandardCopyOption
1414

15+
description = "High level DynamoDbMapper client"
16+
extra["displayName"] = "AWS :: SDK :: Kotlin :: HLL :: DynamoDbMapper"
17+
extra["moduleName"] = "aws.sdk.kotlin.hll.dynamodbmapper"
18+
1519
buildscript {
1620
dependencies {
1721
classpath(libs.ddb.local)

hll/dynamodb-mapper/tests/dynamodb-mapper-annotation-processor-test/build.gradle.kts

Lines changed: 0 additions & 27 deletions
This file was deleted.

hll/dynamodb-mapper/tests/dynamodb-mapper-annotation-processor-test/common/src/aws/sdk/kotlin/hll/dynamodbmapper/tests/processor/data/Group.kt

Lines changed: 0 additions & 14 deletions
This file was deleted.

hll/dynamodb-mapper/tests/dynamodb-mapper-annotation-processor-test/common/src/aws/sdk/kotlin/hll/dynamodbmapper/tests/processor/data/User.kt

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)