Skip to content

Commit 9373740

Browse files
authored
Merge pull request #30 from skydoves/release/0.5.0
Prepare for release 0.5.0
2 parents 98ad00b + 2f8a8e9 commit 9373740

File tree

6 files changed

+41
-9
lines changed

6 files changed

+41
-9
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ This is incredibly useful for:
123123
Add the dependency below to your `libs.versions.toml` file:
124124

125125
```toml
126-
stability-analyzer = { id = "com.github.skydoves.compose.stability.analyzer", version = "0.4.2" }
126+
stability-analyzer = { id = "com.github.skydoves.compose.stability.analyzer", version = "0.5.0" }
127127
```
128128

129129
Next, apply the plugin on your root's `build.gradle.kts` file like below:
@@ -138,6 +138,7 @@ It’s **strongly recommended to use the exact same Kotlin version** as this lib
138138

139139
| Stability Analyzer | Kotlin |
140140
|--------------------|-------------|
141+
| 0.5.0 | 2.2.21 |
141142
| 0.4.2 | 2.2.21 |
142143
| 0.4.1 | 2.2.21 |
143144
| 0.4.0 | 2.2.21 |

compose-stability-analyzer-idea/CHANGELOG.md

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,46 @@ All notable changes to the IntelliJ IDEA plugin will be documented in this file.
44

55
## [Unreleased]
66

7+
---
8+
9+
## [0.5.0] - 2025-11-08
10+
711
### Added
812
- **New Compose Stability Tool Window** - View all composables in your project at a glance (Issue #14)
913
- Tree view grouped by module -> package -> file
10-
- Color-coded stability indicators (green for stable, red for unstable)
11-
- Stability counts at each level shown as (total: XS, YU, ZR) where S=Stable, U=Unstable, R=Runtime
14+
- Color-coded stability indicators (green for skippable, yellow for non-skippable)
15+
- Stability counts shown as (XS, YNS) where S=Skippable, NS=Non-skippable (zero counts are hidden for cleaner UI)
1216
- Details pane showing composable information and parameter stability
1317
- Double-click navigation to source code location
1418
- Filter buttons to show All, Skippable, or Unskippable composables
1519
- Refresh button to re-analyze the project
1620
- Appears as a dedicated tool window on the right side of the IDE with custom icon
1721
- Access via View -> Tool Windows -> Compose Stability or click the icon on the right toolbar
22+
- **Interactive empty state guide** - Step-by-step instructions when no composables are found
23+
- Clear setup instructions for first-time users
24+
- Clickable GitHub link for documentation and support
1825
- New setting: "Show in test source sets" for gutter icons (Issue #21)
1926
- Gutter icons are now hidden in test directories by default (can be enabled in settings)
2027
- Support for reading @StabilityInferred annotation parameters for cross-module stability detection (Issue #18)
2128

29+
### Improved
30+
- **Enhanced UI/UX for Tool Window**
31+
- Changed terminology from "runtime count" to more intuitive "S (Skippable)" and "NS (Non-skippable)"
32+
- Non-skippable items now use yellow color instead of red for better visual hierarchy
33+
- Zero counts are automatically hidden (e.g., "(2S, 0NS)" displays as "(2S)")
34+
- Centered stability icon in tool window for better visual alignment
35+
- **Performance optimization** - Tool window now reads pre-computed stability information from JSON files instead of re-analyzing all files
36+
- Significantly faster load times for large projects
37+
- Reduced CPU usage when opening the tool window
38+
2239
### Fixed
40+
- Fixed double-click navigation to source code in tool window
2341
- Fixed typealias detection for Composable function types (Issue #16)
24-
- Typealiases like `typealias SettingsButtons = @Composable (PlayerUiState) -> Unit` now correctly expand to their underlying function types before stability analysis
42+
- Typealiases like `typealias SettingsButtons = @Composable (PlayerUiState) -> Unit` now correctly expand to their underlying function types before stability analysis
2543
- Fixed ImmutableList/ImmutableSet/ImmutableMap showing as unstable in test code (Issue #21)
26-
- Added fallback type resolution by simple name for immutable collections when FQN resolution fails in test source sets
44+
- Added fallback type resolution by simple name for immutable collections when FQN resolution fails in test source sets
2745
- Improved cross-module stability detection by reading @StabilityInferred(parameters) annotation (Issue #18)
28-
- Classes from other modules now correctly marked as UNSTABLE unless annotated with @Stable/@Immutable or @StabilityInferred(parameters=0)
46+
- Classes from other modules now correctly marked as UNSTABLE unless annotated with @Stable/@Immutable or @StabilityInferred(parameters=0)
2947

3048
---
3149

compose-stability-analyzer-idea/api/compose-stability-analyzer-idea.api

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,19 @@ public final class com/skydoves/compose/stability/idea/toolwindow/StabilityNodeD
238238
public fun toString ()Ljava/lang/String;
239239
}
240240

241+
public final class com/skydoves/compose/stability/idea/toolwindow/StabilityNodeData$GitHubLink : com/skydoves/compose/stability/idea/toolwindow/StabilityNodeData {
242+
public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
243+
public final fun component1 ()Ljava/lang/String;
244+
public final fun component2 ()Ljava/lang/String;
245+
public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lcom/skydoves/compose/stability/idea/toolwindow/StabilityNodeData$GitHubLink;
246+
public static synthetic fun copy$default (Lcom/skydoves/compose/stability/idea/toolwindow/StabilityNodeData$GitHubLink;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/skydoves/compose/stability/idea/toolwindow/StabilityNodeData$GitHubLink;
247+
public fun equals (Ljava/lang/Object;)Z
248+
public final fun getText ()Ljava/lang/String;
249+
public final fun getUrl ()Ljava/lang/String;
250+
public fun hashCode ()I
251+
public fun toString ()Ljava/lang/String;
252+
}
253+
241254
public final class com/skydoves/compose/stability/idea/toolwindow/StabilityNodeData$Module : com/skydoves/compose/stability/idea/toolwindow/StabilityNodeData {
242255
public fun <init> (Ljava/lang/String;II)V
243256
public final fun component1 ()Ljava/lang/String;

compose-stability-analyzer-idea/src/test/kotlin/com/skydoves/compose/stability/idea/settings/StabilitySettingsStateTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class StabilitySettingsStateTest {
4141
assertTrue(settings.showGutterIcons)
4242
assertFalse(settings.showGutterIconsOnlyForUnskippable)
4343
assertTrue(settings.showWarnings)
44-
assertFalse(settings.isStrongSkippingEnabled)
44+
assertTrue(settings.isStrongSkippingEnabled)
4545
assertEquals("", settings.ignoredTypePatterns)
4646
assertEquals("", settings.stabilityConfigurationPath)
4747
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ kotlin.mpp.androidGradlePluginCompatibility.nowarn=true
5151

5252
# Maven publishing
5353
GROUP=com.github.skydoves
54-
VERSION_NAME=0.4.3
54+
VERSION_NAME=0.5.0
5555

5656
POM_URL=https://github.com/skydoves/compose-stability-analyzer/
5757
POM_SCM_URL=https://github.com/skydoves/compose-stability-analyzer/

stability-gradle/src/main/kotlin/com/skydoves/compose/stability/gradle/StabilityAnalyzerGradlePlugin.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public class StabilityAnalyzerGradlePlugin : KotlinCompilerPluginSupportPlugin {
4545

4646
// This version should match the version in gradle.properties
4747
// Update this when bumping the library version
48-
private const val VERSION = "0.4.3"
48+
private const val VERSION = "0.5.0"
4949

5050
// Compiler option keys
5151
private const val OPTION_ENABLED = "enabled"

0 commit comments

Comments
 (0)