Skip to content

Commit 2d05a47

Browse files
sorenoidSoren Roth
andauthored
Forms api backwards compatibility validation (#345)
* add api file and bcv support * ignore ComposableSingleton classes * update api file * add todo --------- Co-authored-by: Soren Roth <sor10874@esri.com>
1 parent 9743100 commit 2d05a47

File tree

4 files changed

+43
-0
lines changed

4 files changed

+43
-0
lines changed

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
plugins {
2121
alias(libs.plugins.android.application) apply false
2222
alias(libs.plugins.android.library) apply false
23+
alias(libs.plugins.binary.compatibility.validator) apply false
2324
alias(libs.plugins.kotlin.android) apply false
2425
alias(libs.plugins.gradle.secrets) apply false
2526
alias(libs.plugins.kapt) apply false

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ androidxLifecycle = "2.6.2"
1111
androidxMaterialIcons = "1.4.3"
1212
androidxTestExt = "1.1.5"
1313
androidxWindow = "1.2.0"
14+
binaryCompatibilityValidator = "0.14.0"
1415
compileSdk = "34"
1516
compose-navigation = "2.7.5"
1617
dokka = "1.9.10"
@@ -72,6 +73,7 @@ dokka-versioning = { group = "org.jetbrains.dokka", name = "versioning-plugin",
7273
[plugins]
7374
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
7475
android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }
76+
binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binaryCompatibilityValidator"}
7577
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
7678
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
7779
kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
public final class com/arcgismaps/toolkit/featureforms/FeatureFormKt {
2+
public static final fun FeatureForm (Lcom/arcgismaps/mapping/featureforms/FeatureForm;Landroidx/compose/ui/Modifier;Lcom/arcgismaps/toolkit/featureforms/ValidationErrorVisibility;Landroidx/compose/runtime/Composer;II)V
3+
}
4+
5+
public abstract class com/arcgismaps/toolkit/featureforms/ValidationErrorVisibility {
6+
public static final field $stable I
7+
}
8+
9+
public final class com/arcgismaps/toolkit/featureforms/ValidationErrorVisibility$Automatic : com/arcgismaps/toolkit/featureforms/ValidationErrorVisibility {
10+
public static final field $stable I
11+
public static final field INSTANCE Lcom/arcgismaps/toolkit/featureforms/ValidationErrorVisibility$Automatic;
12+
}
13+
14+
public final class com/arcgismaps/toolkit/featureforms/ValidationErrorVisibility$Visible : com/arcgismaps/toolkit/featureforms/ValidationErrorVisibility {
15+
public static final field $stable I
16+
public static final field INSTANCE Lcom/arcgismaps/toolkit/featureforms/ValidationErrorVisibility$Visible;
17+
}
18+

toolkit/featureforms/build.gradle.kts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ plugins {
33
id("org.jetbrains.kotlin.android")
44
id("artifact-deploy")
55
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
6+
alias(libs.plugins.binary.compatibility.validator) apply true
67
}
78

89
secrets {
@@ -50,6 +51,27 @@ android {
5051
}
5152
}
5253

54+
apiValidation {
55+
ignoredClasses.add("com.arcgismaps.toolkit.featureforms.BuildConfig")
56+
// todo: remove when this is resolved https://github.com/Kotlin/binary-compatibility-validator/issues/74
57+
// compose compiler generates public singletons for internal compose functions. this may be resolved in the compose
58+
// compiler.
59+
val composableSingletons = listOf(
60+
"com.arcgismaps.toolkit.featureforms.components.base.ComposableSingletons\$BaseTextFieldKt",
61+
"com.arcgismaps.toolkit.featureforms.components.codedvalue.ComposableSingletons\$ComboBoxFieldKt",
62+
"com.arcgismaps.toolkit.featureforms.components.codedvalue.ComposableSingletons\$RadioButtonFieldKt",
63+
"com.arcgismaps.toolkit.featureforms.components.datetime.ComposableSingletons\$DateTimeFieldKt",
64+
"com.arcgismaps.toolkit.featureforms.components.datetime.picker.ComposableSingletons\$DateTimePickerKt",
65+
"com.arcgismaps.toolkit.featureforms.components.datetime.picker.date.ComposableSingletons\$DatePickerKt",
66+
"com.arcgismaps.toolkit.featureforms.components.datetime.picker.time.ComposableSingletons\$TimePickerKt",
67+
"com.arcgismaps.toolkit.featureforms.components.formelement.ComposableSingletons\$AttachmentFormElementKt",
68+
"com.arcgismaps.toolkit.featureforms.components.formelement.ComposableSingletons\$GroupElementKt"
69+
)
70+
71+
ignoredClasses.addAll(composableSingletons)
72+
}
73+
74+
5375
dependencies {
5476
api(arcgis.mapsSdk)
5577
implementation(platform(libs.coil.bom))

0 commit comments

Comments
 (0)