A decentralized music tracking and discovery platform built on AT Protocol 馃幍
rocksky.app
spotify
atproto
lastfm
musicbrainz
scrobbling
listenbrainz
1import com.vanniktech.maven.publish.JavaLibrary
2import com.vanniktech.maven.publish.JavadocJar
3import com.vanniktech.maven.publish.SonatypeHost
4
5plugins {
6 kotlin("jvm")
7 kotlin("plugin.serialization")
8 `java-library`
9 id("com.vanniktech.maven.publish") version "0.30.0"
10}
11
12group = "app.rocksky"
13version = "0.2.0"
14
15kotlin {
16 jvmToolchain(17)
17 explicitApi()
18}
19
20val ktorVersion = "2.3.12"
21val coroutinesVersion = "1.9.0"
22val serializationVersion = "1.7.3"
23
24dependencies {
25 api("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
26 api("org.jetbrains.kotlinx:kotlinx-serialization-json:$serializationVersion")
27
28 api("io.ktor:ktor-client-core:$ktorVersion")
29 api("io.ktor:ktor-client-content-negotiation:$ktorVersion")
30 api("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
31 implementation("io.ktor:ktor-client-cio:$ktorVersion")
32
33 testImplementation(kotlin("test-junit5"))
34 testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
35 testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.10.2")
36 testImplementation("io.ktor:ktor-client-mock:$ktorVersion")
37 testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion")
38}
39
40tasks.test {
41 useJUnitPlatform()
42 testLogging {
43 events("passed", "skipped", "failed")
44 showStandardStreams = false
45 }
46}
47
48mavenPublishing {
49 publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true)
50 signAllPublications()
51
52 coordinates("app.rocksky", "rocksky-kotlin", project.version.toString())
53
54 configure(JavaLibrary(javadocJar = JavadocJar.Empty(), sourcesJar = true))
55
56 pom {
57 name.set("Rocksky Kotlin SDK")
58 description.set("Coroutine-based Kotlin SDK for the Rocksky XRPC API")
59 url.set("https://rocksky.app")
60 inceptionYear.set("2025")
61 licenses {
62 license {
63 name.set("MIT License")
64 url.set("https://opensource.org/licenses/MIT")
65 distribution.set("repo")
66 }
67 }
68 developers {
69 developer {
70 id.set("tsirysndr")
71 name.set("Tsiry Sandratraina")
72 email.set("tsiry.sndr@rocksky.app")
73 url.set("https://github.com/tsirysndr")
74 }
75 }
76 scm {
77 url.set("https://github.com/tsirysndr/rocksky")
78 connection.set("scm:git:git://github.com/tsirysndr/rocksky.git")
79 developerConnection.set("scm:git:ssh://git@github.com/tsirysndr/rocksky.git")
80 }
81 issueManagement {
82 system.set("GitHub")
83 url.set("https://github.com/tsirysndr/rocksky/issues")
84 }
85 }
86}