Skip to content

Commit 0bc4fbd

Browse files
authored
Merge pull request #34 from pahill/readme_update
Update template to improve developer experience
2 parents 27e8b97 + ebc28a9 commit 0bc4fbd

28 files changed

+460
-225
lines changed

.github/workflows/deploy.yml

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

.github/workflows/publish.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Publish
2+
on:
3+
release:
4+
types: [released, prereleased]
5+
jobs:
6+
publish:
7+
name: Release build and publish
8+
runs-on: macOS-latest
9+
steps:
10+
- name: Check out code
11+
uses: actions/checkout@v4
12+
- name: Set up JDK 21
13+
uses: actions/setup-java@v4
14+
with:
15+
distribution: 'zulu'
16+
java-version: 21
17+
- name: Publish to MavenCentral
18+
run: ./gradlew publishToMavenCentral --no-configuration-cache
19+
env:
20+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
21+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
22+
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }}
23+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
24+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_KEY_CONTENTS }}
25+

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,6 @@ captures
88
.cxx
99
local.properties
1010
xcuserdata
11-
.kotlin
11+
.kotlin
12+
#So we don't accidentally commit our private keys
13+
*.gpg

README.md

Lines changed: 360 additions & 46 deletions
Large diffs are not rendered by default.

build.gradle.kts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
plugins {
2-
id("root.publication")
3-
//trick: for the same plugin versions in all sub-modules
4-
alias(libs.plugins.androidLibrary).apply(false)
5-
alias(libs.plugins.kotlinMultiplatform).apply(false)
6-
}
2+
alias(libs.plugins.androidLibrary) apply false
3+
alias(libs.plugins.kotlinMultiplatform) apply false
4+
alias(libs.plugins.vanniktech.mavenPublish) apply false
5+
}

convention-plugins/build.gradle.kts

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

convention-plugins/settings.gradle.kts

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

convention-plugins/src/main/kotlin/module.publication.gradle.kts

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

convention-plugins/src/main/kotlin/root.publication.gradle.kts

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

gradle/libs.versions.toml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
[versions]
22
agp = "8.5.0"
3-
kotlin = "2.0.0"
4-
nexus-publish = "2.0.0"
3+
kotlin = "2.0.20"
54
android-minSdk = "24"
65
android-compileSdk = "34"
76

87
[libraries]
98
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
10-
nexus-publish = { module = "io.github.gradle-nexus.publish-plugin:io.github.gradle-nexus.publish-plugin.gradle.plugin", version.ref = "nexus-publish" }
119

1210
[plugins]
1311
androidLibrary = { id = "com.android.library", version.ref = "agp" }
14-
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
12+
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
13+
vanniktech-mavenPublish = { id = "com.vanniktech.maven.publish", version = "0.29.0" }

images/create_release_and_tag.png

27.2 KB
Loading

images/draft_release.png

6.67 KB
Loading

images/github_releases.png

5.99 KB
Loading

images/github_secrets.png

27 KB
Loading

images/published_on_maven_central.png

121 KB
Loading

images/release_settings.png

19.4 KB
Loading

library/build.gradle.kts

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1+
import com.vanniktech.maven.publish.SonatypeHost
12
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
23
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
34

45
plugins {
56
alias(libs.plugins.kotlinMultiplatform)
67
alias(libs.plugins.androidLibrary)
7-
id("module.publication")
8+
alias(libs.plugins.vanniktech.mavenPublish)
89
}
910

11+
group = "io.github.kotlin"
12+
version = "1.0.0"
13+
1014
kotlin {
1115
jvm()
1216
androidTarget {
@@ -42,3 +46,37 @@ android {
4246
minSdk = libs.versions.android.minSdk.get().toInt()
4347
}
4448
}
49+
50+
mavenPublishing {
51+
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL)
52+
53+
signAllPublications()
54+
55+
coordinates(group.toString(), "library", version.toString())
56+
57+
pom {
58+
name = "My library"
59+
description = "A library."
60+
inceptionYear = "2024"
61+
url = "https://github.com/kotlin/multiplatform-library-template/"
62+
licenses {
63+
license {
64+
name = "XXX"
65+
url = "YYY"
66+
distribution = "ZZZ"
67+
}
68+
}
69+
developers {
70+
developer {
71+
id = "XXX"
72+
name = "YYY"
73+
url = "ZZZ"
74+
}
75+
}
76+
scm {
77+
url = "XXX"
78+
connection = "YYY"
79+
developerConnection = "ZZZ"
80+
}
81+
}
82+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1+
package io.github.kotlin.fibonacci
2+
13
actual val firstElement: Int = 1
24
actual val secondElement: Int = 2
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
package io.github.kotlin.fibonacci
2+
13
import kotlin.test.Test
24
import kotlin.test.assertEquals
35

46
class AndroidFibiTest {
57

68
@Test
79
fun `test 3rd element`() {
8-
assertEquals(3, fibi.take(3).last())
10+
assertEquals(3, generateFibi().take(3).last())
911
}
1012
}

library/src/commonMain/kotlin/CustomFibi.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
val fibi = sequence {
1+
package io.github.kotlin.fibonacci
2+
3+
fun generateFibi() = sequence {
24
var a = firstElement
35
yield(a)
46
var b = secondElement
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
package io.github.kotlin.fibonacci
2+
13
import kotlin.test.Test
24
import kotlin.test.assertEquals
35

46
class FibiTest {
57

68
@Test
79
fun `test 3rd element`() {
8-
assertEquals(firstElement + secondElement, fibi.take(3).last())
10+
assertEquals(firstElement + secondElement, generateFibi().take(3).last())
911
}
1012
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1+
package io.github.kotlin.fibonacci
2+
13
actual val firstElement: Int = 3
24
actual val secondElement: Int = 4
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
package io.github.kotlin.fibonacci
2+
13
import kotlin.test.Test
24
import kotlin.test.assertEquals
35

46
class IosFibiTest {
57

68
@Test
79
fun `test 3rd element`() {
8-
assertEquals(7, fibi.take(3).last())
10+
assertEquals(7, generateFibi().take(3).last())
911
}
1012
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1+
package io.github.kotlin.fibonacci
2+
13
actual val firstElement: Int = 2
24
actual val secondElement: Int = 3
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
package io.github.kotlin.fibonacci
2+
13
import kotlin.test.Test
24
import kotlin.test.assertEquals
35

46
class JvmFibiTest {
57

68
@Test
79
fun `test 3rd element`() {
8-
assertEquals(5, fibi.take(3).last())
10+
assertEquals(5, generateFibi().take(3).last())
911
}
1012
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1+
package io.github.kotlin.fibonacci
2+
13
actual val firstElement: Int = 3
24
actual val secondElement: Int = 5
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
package io.github.kotlin.fibonacci
2+
13
import kotlin.test.Test
24
import kotlin.test.assertEquals
35

46
class LinuxFibiTest {
57

68
@Test
79
fun `test 3rd element`() {
8-
assertEquals(8, fibi.take(3).last())
10+
assertEquals(8, generateFibi().take(3).last())
911
}
1012
}

0 commit comments

Comments
 (0)