Skip to content

Commit

Permalink
Add binary compat validator plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
zsmb13 committed May 10, 2024
1 parent 3928a28 commit 230de7b
Show file tree
Hide file tree
Showing 13 changed files with 335 additions and 15 deletions.
3 changes: 3 additions & 0 deletions .fleet/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"backend.maxHeapSizeMb": 4096
}
9 changes: 9 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,13 @@ plugins {
alias(libs.plugins.androidLibrary) apply false
alias(libs.plugins.kotlinMultiplatform) apply false
alias(libs.plugins.mavenPublish) apply false
alias(libs.plugins.binaryCompatValidator)
}

apiValidation {
ignoredProjects += "app"
klib {
enabled = true
strictValidation = true
}
}
2 changes: 2 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
agp = "8.2.2"
androidTools = "31.4.0"
appcompat = "1.6.1"
binary-compat-validator = "0.15.0-Beta.2"
constraintlayout = "2.1.4"
core-ktx = "1.13.1"
core-bundle = "1.0.0-rc01"
Expand Down Expand Up @@ -36,6 +37,7 @@ work-runtime = { module = "androidx.work:work-runtime", version.ref = "work-runt
[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
androidLibrary = { id = "com.android.library", version.ref = "agp" }
binaryCompatValidator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binary-compat-validator" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
mavenPublish = { id = "com.vanniktech.maven.publish", version.ref = "maven-publish" }
requireKtxLibrary = { id = "co.zsmb.requirektx.library", version = "unspecified" }
79 changes: 79 additions & 0 deletions requirektx-bundle/api/android/requirektx-bundle.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
public final class co/zsmb/requirektx/BundleArrayListKt {
public static final fun getCharSequenceArrayListOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun getIntegerArrayListOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun getStringArrayListOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun requireCharSequenceArrayList (Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun requireIntegerArrayList (Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun requireStringArrayList (Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
}

public final class co/zsmb/requirektx/BundleArrayList_androidKt {
public static final fun getParcelableArrayListOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun requireParcelableArrayList (Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
}

public final class co/zsmb/requirektx/BundleArraysKt {
public static final fun getBooleanArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[Z
public static final fun getByteArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[B
public static final fun getCharArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[C
public static final fun getCharSequenceArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[Ljava/lang/CharSequence;
public static final fun getDoubleArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[D
public static final fun getFloatArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[F
public static final fun getIntArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[I
public static final fun getLongArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[J
public static final fun getShortArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[S
public static final fun getStringArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[Ljava/lang/String;
public static final fun requireBooleanArray (Landroid/os/Bundle;Ljava/lang/String;)[Z
public static final fun requireByteArray (Landroid/os/Bundle;Ljava/lang/String;)[B
public static final fun requireCharArray (Landroid/os/Bundle;Ljava/lang/String;)[C
public static final fun requireCharSequenceArray (Landroid/os/Bundle;Ljava/lang/String;)[Ljava/lang/CharSequence;
public static final fun requireDoubleArray (Landroid/os/Bundle;Ljava/lang/String;)[D
public static final fun requireFloatArray (Landroid/os/Bundle;Ljava/lang/String;)[F
public static final fun requireIntArray (Landroid/os/Bundle;Ljava/lang/String;)[I
public static final fun requireLongArray (Landroid/os/Bundle;Ljava/lang/String;)[J
public static final fun requireShortArray (Landroid/os/Bundle;Ljava/lang/String;)[S
public static final fun requireStringArray (Landroid/os/Bundle;Ljava/lang/String;)[Ljava/lang/String;
}

public final class co/zsmb/requirektx/BundleArrays_androidKt {
public static final fun getParcelableArrayOrNull (Landroid/os/Bundle;Ljava/lang/String;)[Landroid/os/Parcelable;
public static final fun requireParcelableArray (Landroid/os/Bundle;Ljava/lang/String;)[Landroid/os/Parcelable;
}

public final class co/zsmb/requirektx/BundlePrimitivesKt {
public static final fun getBooleanOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/Boolean;
public static final fun getByteOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/Byte;
public static final fun getCharOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/Character;
public static final fun getDoubleOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/Double;
public static final fun getFloatOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/Float;
public static final fun getIntOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/Integer;
public static final fun getLongOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/Long;
public static final fun getShortOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/Short;
public static final fun requireBoolean (Landroid/os/Bundle;Ljava/lang/String;)Z
public static final fun requireByte (Landroid/os/Bundle;Ljava/lang/String;)B
public static final fun requireChar (Landroid/os/Bundle;Ljava/lang/String;)C
public static final fun requireDouble (Landroid/os/Bundle;Ljava/lang/String;)D
public static final fun requireFloat (Landroid/os/Bundle;Ljava/lang/String;)F
public static final fun requireInt (Landroid/os/Bundle;Ljava/lang/String;)I
public static final fun requireLong (Landroid/os/Bundle;Ljava/lang/String;)J
public static final fun requireShort (Landroid/os/Bundle;Ljava/lang/String;)S
}

public final class co/zsmb/requirektx/BundleReferenceKt {
public static final fun getBundleOrNull (Landroid/os/Bundle;Ljava/lang/String;)Landroid/os/Bundle;
public static final fun getCharSequenceOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/CharSequence;
public static final fun getStringOrNull (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/String;
public static final fun requireBundle (Landroid/os/Bundle;Ljava/lang/String;)Landroid/os/Bundle;
public static final fun requireCharSequence (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/CharSequence;
public static final fun requireString (Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/String;
}

public final class co/zsmb/requirektx/BundleReference_androidKt {
public static final fun getBinderOrNull (Landroid/os/Bundle;Ljava/lang/String;)Landroid/os/Binder;
public static final fun getSizeFOrNull (Landroid/os/Bundle;Ljava/lang/String;)Landroid/util/SizeF;
public static final fun getSizeOrNull (Landroid/os/Bundle;Ljava/lang/String;)Landroid/util/Size;
public static final fun requireBinder (Landroid/os/Bundle;Ljava/lang/String;)Landroid/os/Binder;
public static final fun requireSize (Landroid/os/Bundle;Ljava/lang/String;)Landroid/util/Size;
public static final fun requireSizeF (Landroid/os/Bundle;Ljava/lang/String;)Landroid/util/SizeF;
}

60 changes: 60 additions & 0 deletions requirektx-bundle/api/jvm/requirektx-bundle.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
public final class co/zsmb/requirektx/BundleArrayListKt {
public static final fun getCharSequenceArrayListOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun getIntegerArrayListOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun getStringArrayListOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun requireCharSequenceArrayList (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun requireIntegerArrayList (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
public static final fun requireStringArrayList (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/util/ArrayList;
}

public final class co/zsmb/requirektx/BundleArraysKt {
public static final fun getBooleanArrayOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[Z
public static final fun getByteArrayOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[B
public static final fun getCharArrayOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[C
public static final fun getCharSequenceArrayOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[Ljava/lang/CharSequence;
public static final fun getDoubleArrayOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[D
public static final fun getFloatArrayOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[F
public static final fun getIntArrayOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[I
public static final fun getLongArrayOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[J
public static final fun getShortArrayOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[S
public static final fun getStringArrayOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[Ljava/lang/String;
public static final fun requireBooleanArray (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[Z
public static final fun requireByteArray (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[B
public static final fun requireCharArray (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[C
public static final fun requireCharSequenceArray (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[Ljava/lang/CharSequence;
public static final fun requireDoubleArray (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[D
public static final fun requireFloatArray (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[F
public static final fun requireIntArray (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[I
public static final fun requireLongArray (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[J
public static final fun requireShortArray (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[S
public static final fun requireStringArray (Landroidx/core/bundle/Bundle;Ljava/lang/String;)[Ljava/lang/String;
}

public final class co/zsmb/requirektx/BundlePrimitivesKt {
public static final fun getBooleanOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/Boolean;
public static final fun getByteOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/Byte;
public static final fun getCharOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/Character;
public static final fun getDoubleOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/Double;
public static final fun getFloatOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/Float;
public static final fun getIntOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/Integer;
public static final fun getLongOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/Long;
public static final fun getShortOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/Short;
public static final fun requireBoolean (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Z
public static final fun requireByte (Landroidx/core/bundle/Bundle;Ljava/lang/String;)B
public static final fun requireChar (Landroidx/core/bundle/Bundle;Ljava/lang/String;)C
public static final fun requireDouble (Landroidx/core/bundle/Bundle;Ljava/lang/String;)D
public static final fun requireFloat (Landroidx/core/bundle/Bundle;Ljava/lang/String;)F
public static final fun requireInt (Landroidx/core/bundle/Bundle;Ljava/lang/String;)I
public static final fun requireLong (Landroidx/core/bundle/Bundle;Ljava/lang/String;)J
public static final fun requireShort (Landroidx/core/bundle/Bundle;Ljava/lang/String;)S
}

public final class co/zsmb/requirektx/BundleReferenceKt {
public static final fun getBundleOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Landroidx/core/bundle/Bundle;
public static final fun getCharSequenceOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/CharSequence;
public static final fun getStringOrNull (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/String;
public static final fun requireBundle (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Landroidx/core/bundle/Bundle;
public static final fun requireCharSequence (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/CharSequence;
public static final fun requireString (Landroidx/core/bundle/Bundle;Ljava/lang/String;)Ljava/lang/String;
}

0 comments on commit 230de7b

Please sign in to comment.