File tree Expand file tree Collapse file tree 4 files changed +25
-1
lines changed
src/main/kotlin/com/skydoves/compose/stability/gradle Expand file tree Collapse file tree 4 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ public abstract class com/skydoves/compose/stability/gradle/StabilityDumpTask :
4646 public abstract fun getStabilityConfigurationFiles ()Lorg/gradle/api/provider/ListProperty;
4747 public abstract fun getStabilityFileSuffix ()Lorg/gradle/api/provider/Property;
4848 public abstract fun getStabilityInputFiles ()Lorg/gradle/api/file/ConfigurableFileCollection;
49+ public abstract fun getUnstableOnly ()Lorg/gradle/api/provider/Property;
4950}
5051
5152public abstract class com/skydoves/compose/stability/gradle/StabilityValidationConfig {
@@ -61,5 +62,6 @@ public abstract class com/skydoves/compose/stability/gradle/StabilityValidationC
6162 public final fun getOutputDir ()Lorg/gradle/api/file/DirectoryProperty;
6263 public final fun getQuietCheck ()Lorg/gradle/api/provider/Property;
6364 public final fun getStabilityConfigurationFiles ()Lorg/gradle/api/provider/ListProperty;
65+ public final fun getUnstableOnly ()Lorg/gradle/api/provider/Property;
6466}
6567
Original file line number Diff line number Diff line change @@ -182,6 +182,15 @@ public abstract class StabilityValidationConfig @Inject constructor(
182182 public val allowMissingBaseline: Property <Boolean > =
183183 objects.property(Boolean ::class .javaObjectType).convention(false )
184184
185+ /* *
186+ * When true, only unstable composables (not skippable) are included in the baseline file.
187+ * This reduces baseline file size in large projects and lets you focus on fixing stability issues.
188+ *
189+ * Default: false
190+ */
191+ public val unstableOnly: Property <Boolean > =
192+ objects.property(Boolean ::class .javaObjectType).convention(false )
193+
185194 /* *
186195 * List of paths to stability configuration files.
187196 *
Original file line number Diff line number Diff line change @@ -97,6 +97,7 @@ public class StabilityAnalyzerGradlePlugin : KotlinCompilerPluginSupportPlugin {
9797 ignoredPackages.set(extension.stabilityValidation.ignoredPackages)
9898 ignoredClasses.set(extension.stabilityValidation.ignoredClasses)
9999 stabilityConfigurationFiles.set(extension.stabilityValidation.stabilityConfigurationFiles)
100+ unstableOnly.set(extension.stabilityValidation.unstableOnly)
100101 }
101102
102103 // Register stability check task
@@ -164,6 +165,7 @@ public class StabilityAnalyzerGradlePlugin : KotlinCompilerPluginSupportPlugin {
164165 ignoredClasses.set(extension.stabilityValidation.ignoredClasses)
165166 stabilityFileSuffix.set(variant.name)
166167 stabilityConfigurationFiles.set(extension.stabilityValidation.stabilityConfigurationFiles)
168+ unstableOnly.set(extension.stabilityValidation.unstableOnly)
167169 }
168170
169171 // Register stability check task
Original file line number Diff line number Diff line change @@ -79,6 +79,12 @@ public abstract class StabilityDumpTask : DefaultTask() {
7979 @get:PathSensitive(PathSensitivity .RELATIVE )
8080 public abstract val stabilityConfigurationFiles: ListProperty <RegularFile >
8181
82+ /* *
83+ * When true, only unstable composables (not skippable) are included in the baseline file.
84+ */
85+ @get:Input
86+ public abstract val unstableOnly: Property <Boolean >
87+
8288 init {
8389 group = " verification"
8490 description = " Dump composable stability information to stability file"
@@ -117,7 +123,12 @@ public abstract class StabilityDumpTask : DefaultTask() {
117123 }
118124
119125 val resolved = applyStabilityConfiguration(filtered, stableTypeMatchers)
120- writeStabilityFile(outputFile, resolved)
126+ val finalEntries = if (unstableOnly.get()) {
127+ resolved.filter { ! it.skippable }
128+ } else {
129+ resolved
130+ }
131+ writeStabilityFile(outputFile, finalEntries)
121132
122133 logger.lifecycle(" Stability file written to: ${outputFile.absolutePath} " )
123134 }
You can’t perform that action at this time.
0 commit comments