Skip to content

Commit 26052b3

Browse files
committed
add binary compatibility validation to library
1 parent 4219bc2 commit 26052b3

4 files changed

Lines changed: 109 additions & 3 deletions

File tree

kulid/api/android/kulid.api

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
public final class dev/phillipslabs/kulid/ULID {
2+
public static final field Companion Ldev/phillipslabs/kulid/ULID$Companion;
3+
public static final synthetic fun box-impl (Ljava/lang/String;)Ldev/phillipslabs/kulid/ULID;
4+
public fun equals (Ljava/lang/Object;)Z
5+
public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z
6+
public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z
7+
public final fun getValue ()Ljava/lang/String;
8+
public fun hashCode ()I
9+
public static fun hashCode-impl (Ljava/lang/String;)I
10+
public fun toString ()Ljava/lang/String;
11+
public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String;
12+
public final synthetic fun unbox-impl ()Ljava/lang/String;
13+
}
14+
15+
public final synthetic class dev/phillipslabs/kulid/ULID$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
16+
public static final field INSTANCE Ldev/phillipslabs/kulid/ULID$$serializer;
17+
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
18+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
19+
public final fun deserialize-cf8O3LM (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String;
20+
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
21+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
22+
public final fun serialize--Y_liKM (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V
23+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
24+
}
25+
26+
public final class dev/phillipslabs/kulid/ULID$Companion {
27+
public final fun generate-cf8O3LM (J)Ljava/lang/String;
28+
public static synthetic fun generate-cf8O3LM$default (Ldev/phillipslabs/kulid/ULID$Companion;JILjava/lang/Object;)Ljava/lang/String;
29+
public final fun getMAX-0mmbifs ()Ljava/lang/String;
30+
public final fun getMIN-0mmbifs ()Ljava/lang/String;
31+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
32+
}
33+

kulid/api/jvm/kulid.api

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
public final class dev/phillipslabs/kulid/ULID {
2+
public static final field Companion Ldev/phillipslabs/kulid/ULID$Companion;
3+
public static final synthetic fun box-impl (Ljava/lang/String;)Ldev/phillipslabs/kulid/ULID;
4+
public fun equals (Ljava/lang/Object;)Z
5+
public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z
6+
public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z
7+
public final fun getValue ()Ljava/lang/String;
8+
public fun hashCode ()I
9+
public static fun hashCode-impl (Ljava/lang/String;)I
10+
public fun toString ()Ljava/lang/String;
11+
public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String;
12+
public final synthetic fun unbox-impl ()Ljava/lang/String;
13+
}
14+
15+
public final synthetic class dev/phillipslabs/kulid/ULID$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
16+
public static final field INSTANCE Ldev/phillipslabs/kulid/ULID$$serializer;
17+
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
18+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
19+
public final fun deserialize-cf8O3LM (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String;
20+
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
21+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
22+
public final fun serialize--Y_liKM (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V
23+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
24+
}
25+
26+
public final class dev/phillipslabs/kulid/ULID$Companion {
27+
public final fun generate-cf8O3LM (J)Ljava/lang/String;
28+
public static synthetic fun generate-cf8O3LM$default (Ldev/phillipslabs/kulid/ULID$Companion;JILjava/lang/Object;)Ljava/lang/String;
29+
public final fun getMAX-0mmbifs ()Ljava/lang/String;
30+
public final fun getMIN-0mmbifs ()Ljava/lang/String;
31+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
32+
}
33+

kulid/api/kulid.klib.api

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Klib ABI Dump
2+
// Targets: [androidNativeArm32, androidNativeArm64, androidNativeX64, androidNativeX86, iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
3+
// Rendering settings:
4+
// - Signature version: 2
5+
// - Show manifest properties: true
6+
// - Show declarations: true
7+
8+
// Library unique name: <dev.phillipslabs:kulid>
9+
final value class dev.phillipslabs.kulid/ULID { // dev.phillipslabs.kulid/ULID|null[0]
10+
final val value // dev.phillipslabs.kulid/ULID.value|{}value[0]
11+
final fun <get-value>(): kotlin/String // dev.phillipslabs.kulid/ULID.value.<get-value>|<get-value>(){}[0]
12+
13+
final fun equals(kotlin/Any?): kotlin/Boolean // dev.phillipslabs.kulid/ULID.equals|equals(kotlin.Any?){}[0]
14+
final fun hashCode(): kotlin/Int // dev.phillipslabs.kulid/ULID.hashCode|hashCode(){}[0]
15+
final fun toString(): kotlin/String // dev.phillipslabs.kulid/ULID.toString|toString(){}[0]
16+
17+
final object $serializer : kotlinx.serialization.internal/GeneratedSerializer<dev.phillipslabs.kulid/ULID> { // dev.phillipslabs.kulid/ULID.$serializer|null[0]
18+
final val descriptor // dev.phillipslabs.kulid/ULID.$serializer.descriptor|{}descriptor[0]
19+
final fun <get-descriptor>(): kotlinx.serialization.descriptors/SerialDescriptor // dev.phillipslabs.kulid/ULID.$serializer.descriptor.<get-descriptor>|<get-descriptor>(){}[0]
20+
21+
final fun childSerializers(): kotlin/Array<kotlinx.serialization/KSerializer<*>> // dev.phillipslabs.kulid/ULID.$serializer.childSerializers|childSerializers(){}[0]
22+
final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.phillipslabs.kulid/ULID // dev.phillipslabs.kulid/ULID.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0]
23+
final fun serialize(kotlinx.serialization.encoding/Encoder, dev.phillipslabs.kulid/ULID) // dev.phillipslabs.kulid/ULID.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.phillipslabs.kulid.ULID){}[0]
24+
}
25+
26+
final object Companion { // dev.phillipslabs.kulid/ULID.Companion|null[0]
27+
final val MAX // dev.phillipslabs.kulid/ULID.Companion.MAX|{}MAX[0]
28+
final fun <get-MAX>(): dev.phillipslabs.kulid/ULID // dev.phillipslabs.kulid/ULID.Companion.MAX.<get-MAX>|<get-MAX>(){}[0]
29+
final val MIN // dev.phillipslabs.kulid/ULID.Companion.MIN|{}MIN[0]
30+
final fun <get-MIN>(): dev.phillipslabs.kulid/ULID // dev.phillipslabs.kulid/ULID.Companion.MIN.<get-MIN>|<get-MIN>(){}[0]
31+
32+
final fun generate(kotlin/Long = ...): dev.phillipslabs.kulid/ULID // dev.phillipslabs.kulid/ULID.Companion.generate|generate(kotlin.Long){}[0]
33+
final fun serializer(): kotlinx.serialization/KSerializer<dev.phillipslabs.kulid/ULID> // dev.phillipslabs.kulid/ULID.Companion.serializer|serializer(){}[0]
34+
}
35+
}

kulid/build.gradle.kts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
@file:OptIn(ExperimentalWasmDsl::class)
1+
@file:OptIn(ExperimentalWasmDsl::class, ExperimentalAbiValidation::class)
22

33
import com.vanniktech.maven.publish.SonatypeHost
44
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
55
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
6+
import org.jetbrains.kotlin.gradle.dsl.abi.ExperimentalAbiValidation
67

78
plugins {
89
alias(libs.plugins.kotlin.multiplatform)
@@ -22,6 +23,10 @@ version = "0.2.0"
2223
kotlin {
2324
explicitApi()
2425

26+
abiValidation {
27+
enabled = true
28+
}
29+
2530
jvm()
2631
jvmToolchain(
2732
libs.versions.jdk
@@ -128,8 +133,8 @@ mavenPublishing {
128133
licenses {
129134
license {
130135
name.set("The Apache License, Version 2.0")
131-
url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
132-
distribution.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
136+
url.set("https://www.apache.org/licenses/LICENSE-2.0.txt")
137+
distribution.set("https://www.apache.org/licenses/LICENSE-2.0.txt")
133138
}
134139
}
135140
developers {

0 commit comments

Comments
 (0)