Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ jobs:
- name: Check lint
run: ./gradlew lintDebug --stacktrace

- name: Check stability
run: ./gradlew stabilityCheck --stacktrace

- name: Build all build type and flavor permutations
run: ./gradlew assemble --stacktrace

Expand Down
10 changes: 10 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@
./gradlew lintDebug
```

- stability
```bash
./gradlew stabilityCheck
```

- roborazzi
```bash
./gradlew verifyRoborazziDebug
Expand All @@ -55,6 +60,11 @@
./gradlew metalavaGenerateSignatureRelease
```

- stability
```bash
./gradlew stabilityDump
```

- roborazzi
```bash
./gradlew recordRoborazziDebug
Expand Down
2 changes: 2 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ dokka = "1.8.10"

compose = "1.9.0"
compose-material3 = "1.4.0"
compose-stability-analyzer = "0.2.11"

material = "1.5.0"

Expand Down Expand Up @@ -72,6 +73,7 @@ android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
compose-stability-analyzer = { id = "com.github.skydoves.compose.stability.analyzer", version.ref = "compose-stability-analyzer" }
roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" }
jetbrains-dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
metalava = { id = "me.tylerbwong.gradle.metalava", version.ref = "metalava" }
Expand Down
16 changes: 11 additions & 5 deletions pre_check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,37 @@ echo "Starting pre-check validations..."
echo ""

# Verify dependency changes
echo "🔍 [1/5] Checking dependency guard..."
echo "🔍 [1/6] Checking dependency guard..."
./gradlew dependencyGuard
echo "✓ Dependency guard check passed"
echo ""

# Verify code formatting
echo "🔍 [2/5] Checking code formatting..."
echo "🔍 [2/6] Checking code formatting..."
./gradlew spotlessCheck --init-script gradle/init.gradle.kts
echo "✓ Code formatting check passed"
echo ""

# Verify API compatibility
echo "🔍 [3/5] Checking API compatibility..."
echo "🔍 [3/6] Checking API compatibility..."
./gradlew metalavaCheckCompatibilityRelease
echo "✓ API compatibility check passed"
echo ""

# Static analysis and lint checks
echo "🔍 [4/5] Running lint checks..."
echo "🔍 [4/6] Running lint checks..."
./gradlew lintDebug
echo "✓ Lint check passed"
echo ""

# Verify compose stability
echo "🔍 [5/6] Checking stability..."
./gradlew stabilityCheck
echo "✓ Stability check passed"
echo ""

# Verify screenshots
echo "🔍 [5/5] Checking screenshots..."
echo "🔍 [6/6] Checking screenshots..."
./gradlew verifyRoborazziDebug
echo "✓ Screenshots check passed"
echo ""
Expand Down
1 change: 1 addition & 0 deletions readmore-foundation/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ plugins {
alias(libs.plugins.maven.publish)
alias(libs.plugins.jetbrains.dokka)
alias(libs.plugins.metalava)
alias(libs.plugins.compose.stability.analyzer)
}

android {
Expand Down
142 changes: 142 additions & 0 deletions readmore-foundation/stability/readmore-foundation.stability
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
// This file was automatically generated by Compose Stability Analyzer
// https://github.com/skydoves/compose-stability-analyzer
//
// Do not edit this file directly. To update it, run:
// ./gradlew :readmore-foundation:stabilityDump

@Composable
private fun com.webtoonscorp.android.readmore.foundation.BasicReadMoreTextScreenshotTest.Screenshot(testCase: com.webtoonscorp.android.readmore.foundation.ScreenshotTestCase, expanded: kotlin.Boolean, readMoreText: kotlin.String?, readLessText: kotlin.String?, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int, $default: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- testCase: STABLE (marked @Stable or @Immutable)
- expanded: STABLE (primitive type)
- readMoreText: STABLE
- readLessText: STABLE
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)
- $default: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.BasicReadMoreTextScreenshotTest.Screenshot.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.BasicReadMoreTextScreenshotTest.all_collapsed.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.BasicReadMoreTextScreenshotTest.all_expanded.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.BasicReadMoreTextScreenshotTest.default_none.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.BasicReadMoreTextScreenshotTest.expanded_none.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.BasicReadMoreTextScreenshotTest.readLessText_collapsed.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.BasicReadMoreTextScreenshotTest.readLessText_expanded.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.BasicReadMoreTextScreenshotTest.readMoreText_collapsed.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.BasicReadMoreTextScreenshotTest.readMoreText_expanded.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.ComposableSingletons$BasicReadMoreTextScreenshotTestKt.lambda-1.<anonymous>(it: kotlin.String, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- it: STABLE (String is immutable)
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.ComposableSingletons$BasicReadMoreTextScreenshotTestKt.lambda-1.<anonymous>.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.ComposableSingletons$BasicReadMoreTextScreenshotTestKt.lambda-2.<anonymous>(it: kotlin.String, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- it: STABLE (String is immutable)
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.ComposableSingletons$BasicReadMoreTextScreenshotTestKt.lambda-2.<anonymous>.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.ComposableSingletons$BasicReadMoreTextScreenshotTestKt.lambda-3.<anonymous>(it: kotlin.String, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- it: STABLE (String is immutable)
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

@Composable
public fun com.webtoonscorp.android.readmore.foundation.ComposableSingletons$BasicReadMoreTextScreenshotTestKt.lambda-3.<anonymous>.<anonymous>($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit
skippable: false
restartable: true
params:
- $composer: RUNTIME (requires runtime check)
- $changed: STABLE (primitive type)

1 change: 1 addition & 0 deletions readmore-material/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ plugins {
alias(libs.plugins.maven.publish)
alias(libs.plugins.jetbrains.dokka)
alias(libs.plugins.metalava)
alias(libs.plugins.compose.stability.analyzer)
}

android {
Expand Down
Loading
Loading