+## Default Gradle Plugin - Multiplatform + ```kts // Root build.gradle.kts id("com.mikepenz.aboutlibraries.plugin") version "${latestAboutLibsRelease}" apply false @@ -67,6 +77,23 @@ id("com.mikepenz.aboutlibraries.plugin") version "${latestAboutLibsRelease}" app id("com.mikepenz.aboutlibraries.plugin") ``` +## Gradle Plugin - Android + +To improve configuration cache compatibility and reduce unintended behavior, the auto registering as part of the Android build was moved into its own plugin in v13.x.y. + +```kotlin +// App build.gradle.kts +id("com.mikepenz.aboutlibraries.plugin.android") +``` + +When using the `.android` plugin variant: + +- The library definitions are automatically generated as part of the Android build process +- The `registerAndroidTasks` configuration no longer exists, as it now happens by default +- The generated file is automatically included in your Android resources +- No manual execution of tasks is required + +
-## Gradle Plugin - Android
-
-To improve configuration cache compatibility and reduce unintended behavior, the auto registering as part of the Android build was moved into its own plugin.
-When using the `.android` plugin variant, the `registerAndroidTasks` configuration does no longer exist, as it now happens by default. If you do not need the meta data to be generated as part of the android build - the default plugin is recommended.
-
-```kotlin
-// App build.gradle.kts
-id("com.mikepenz.aboutlibraries.plugin.android")
-```
-
## Gradle Plugin Configuration
The plugin allows customization via the `aboutLibraries` extension in your build script.
@@ -170,8 +187,8 @@ aboutLibraries {
license {
// Define the strict mode, will fail if the project uses licenses not allowed
- // - This will only automatically fail for Android projects which have `registerAndroidTasks` enabled
- // For non Android projects, execute `exportLibraryDefinitions`
+ // - This will only automatically fail for Android projects using the Android-specific plugin (com.mikepenz.aboutlibraries.plugin.android)
+ // For other projects, execute `exportLibraryDefinitions` manually
strictMode = com.mikepenz.aboutlibraries.plugin.StrictMode.FAIL
// Allowed set of licenses, this project will be able to use without build failure
diff --git a/aboutlibraries-core/api/android/aboutlibraries-core.api b/aboutlibraries-core/api/android/aboutlibraries-core.api
index 634684b25..75c75703e 100644
--- a/aboutlibraries-core/api/android/aboutlibraries-core.api
+++ b/aboutlibraries-core/api/android/aboutlibraries-core.api
@@ -12,7 +12,7 @@ public final class com/mikepenz/aboutlibraries/Libs {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/Libs$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/Libs$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/Libs$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/Libs;
@@ -20,6 +20,7 @@ public synthetic class com/mikepenz/aboutlibraries/Libs$$serializer : kotlinx/se
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/Libs;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/Libs$Builder {
@@ -46,7 +47,7 @@ public final class com/mikepenz/aboutlibraries/entity/Developer {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/Developer$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/Developer$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/Developer$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/Developer;
@@ -54,6 +55,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/Developer$$serializer
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/Developer;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/Developer$Companion {
@@ -74,7 +76,7 @@ public final class com/mikepenz/aboutlibraries/entity/Funding {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/Funding$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/Funding$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/Funding$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/Funding;
@@ -82,6 +84,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/Funding$$serializer :
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/Funding;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/Funding$Companion {
@@ -123,7 +126,7 @@ public final class com/mikepenz/aboutlibraries/entity/Library {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/Library$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/Library$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/Library$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/Library;
@@ -131,6 +134,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/Library$$serializer :
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/Library;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/Library$Companion {
@@ -160,7 +164,7 @@ public final class com/mikepenz/aboutlibraries/entity/License {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/License$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/License$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/License$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/License;
@@ -168,6 +172,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/License$$serializer :
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/License;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/License$Companion {
@@ -188,7 +193,7 @@ public final class com/mikepenz/aboutlibraries/entity/Organization {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/Organization$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/Organization$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/Organization$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/Organization;
@@ -196,6 +201,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/Organization$$serializ
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/Organization;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/Organization$Companion {
@@ -218,7 +224,7 @@ public final class com/mikepenz/aboutlibraries/entity/Scm {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/Scm$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/Scm$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/Scm$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/Scm;
@@ -226,6 +232,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/Scm$$serializer : kotl
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/Scm;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/Scm$Companion {
diff --git a/aboutlibraries-core/api/jvm/aboutlibraries-core.api b/aboutlibraries-core/api/jvm/aboutlibraries-core.api
index bc8a2630e..12eaf986a 100644
--- a/aboutlibraries-core/api/jvm/aboutlibraries-core.api
+++ b/aboutlibraries-core/api/jvm/aboutlibraries-core.api
@@ -12,7 +12,7 @@ public final class com/mikepenz/aboutlibraries/Libs {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/Libs$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/Libs$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/Libs$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/Libs;
@@ -20,6 +20,7 @@ public synthetic class com/mikepenz/aboutlibraries/Libs$$serializer : kotlinx/se
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/Libs;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/Libs$Builder {
@@ -46,7 +47,7 @@ public final class com/mikepenz/aboutlibraries/entity/Developer {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/Developer$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/Developer$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/Developer$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/Developer;
@@ -54,6 +55,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/Developer$$serializer
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/Developer;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/Developer$Companion {
@@ -74,7 +76,7 @@ public final class com/mikepenz/aboutlibraries/entity/Funding {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/Funding$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/Funding$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/Funding$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/Funding;
@@ -82,6 +84,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/Funding$$serializer :
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/Funding;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/Funding$Companion {
@@ -123,7 +126,7 @@ public final class com/mikepenz/aboutlibraries/entity/Library {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/Library$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/Library$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/Library$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/Library;
@@ -131,6 +134,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/Library$$serializer :
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/Library;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/Library$Companion {
@@ -160,7 +164,7 @@ public final class com/mikepenz/aboutlibraries/entity/License {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/License$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/License$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/License$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/License;
@@ -168,6 +172,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/License$$serializer :
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/License;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/License$Companion {
@@ -188,7 +193,7 @@ public final class com/mikepenz/aboutlibraries/entity/Organization {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/Organization$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/Organization$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/Organization$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/Organization;
@@ -196,6 +201,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/Organization$$serializ
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/Organization;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/Organization$Companion {
@@ -218,7 +224,7 @@ public final class com/mikepenz/aboutlibraries/entity/Scm {
public fun toString ()Ljava/lang/String;
}
-public synthetic class com/mikepenz/aboutlibraries/entity/Scm$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
+public final synthetic class com/mikepenz/aboutlibraries/entity/Scm$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/mikepenz/aboutlibraries/entity/Scm$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/mikepenz/aboutlibraries/entity/Scm;
@@ -226,6 +232,7 @@ public synthetic class com/mikepenz/aboutlibraries/entity/Scm$$serializer : kotl
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/mikepenz/aboutlibraries/entity/Scm;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
+ public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class com/mikepenz/aboutlibraries/entity/Scm$Companion {
diff --git a/aboutlibraries/api/aboutlibraries.api b/aboutlibraries/api/aboutlibraries.api
index 242175325..c9487ab5d 100644
--- a/aboutlibraries/api/aboutlibraries.api
+++ b/aboutlibraries/api/aboutlibraries.api
@@ -320,5 +320,7 @@ public final class com/mikepenz/aboutlibraries/viewmodel/LibsViewModel : android
public final class com/mikepenz/aboutlibraries/viewmodel/LibsViewModelFactory : androidx/lifecycle/ViewModelProvider$Factory {
public fun