diff --git a/.github/ci-gradle.properties b/.github/ci-gradle.properties index dbafa68cd..a9abe496a 100644 --- a/.github/ci-gradle.properties +++ b/.github/ci-gradle.properties @@ -17,6 +17,8 @@ org.gradle.daemon=false org.gradle.parallel=true org.gradle.workers.max=2 +org.gradle.configuration-cache=true +org.gradle.configuration-cache.parallel=true kotlin.incremental=false diff --git a/.github/renovate.json b/.github/renovate.json index a9eab3c4d..0eec647d9 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -7,6 +7,8 @@ "main" ], "gitIgnoredAuthors": [ + "renovate[bot]@users.noreply.github.com", + "github-actions[bot]@users.noreply.github.com", "41898282+github-actions[bot]@users.noreply.github.com" ] } diff --git a/.github/workflows/Build.yaml b/.github/workflows/Build.yaml index 8e77a2600..5a212bffb 100644 --- a/.github/workflows/Build.yaml +++ b/.github/workflows/Build.yaml @@ -37,9 +37,11 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 + with: + cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: Check build-logic - run: ./gradlew check -p build-logic + run: ./gradlew :build-logic:convention:check - name: Check spotless run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache @@ -186,6 +188,8 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 + with: + cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: Build projects and run instrumentation tests uses: reactivecircus/android-emulator-runner@v2 diff --git a/.github/workflows/NightlyBaselineProfiles.yaml b/.github/workflows/NightlyBaselineProfiles.yaml index de626b0a5..6e7354476 100644 --- a/.github/workflows/NightlyBaselineProfiles.yaml +++ b/.github/workflows/NightlyBaselineProfiles.yaml @@ -7,6 +7,7 @@ on: jobs: baseline_profiles: name: "Generate Baseline Profiles" + if: github.repository == 'android/nowinandroid' runs-on: ubuntu-latest permissions: @@ -36,6 +37,8 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 + with: + cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: Setup Android SDK uses: android-actions/setup-android@v3 @@ -44,7 +47,7 @@ jobs: run: yes | sdkmanager --licenses || true - name: Check build-logic - run: ./gradlew check -p build-logic + run: ./gradlew :build-logic:convention:check - name: Setup GMD run: ./gradlew :benchmarks:pixel6Api33Setup @@ -52,9 +55,8 @@ jobs: -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" - # This generates both baseline and startup profile and adds them into the generated folder - - name: Generate Baseline Profile - run: ./gradlew :app:generateReleaseBaselineProfile - -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=baselineprofile - -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" - --stacktrace \ No newline at end of file + - name: Build all build type and flavor permutations including baseline profiles + run: ./gradlew :app:assemble + -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=baselineprofile + -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" + -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml index 71ee060e1..b952ccb50 100644 --- a/.github/workflows/Release.yml +++ b/.github/workflows/Release.yml @@ -7,6 +7,7 @@ on: jobs: build: + if: github.repository == 'android/nowinandroid' runs-on: ubuntu-latest timeout-minutes: 120 @@ -33,6 +34,8 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 + with: + cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: Setup Android SDK uses: android-actions/setup-android@v3 diff --git a/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt b/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt index 852b3db52..04a864e86 100644 --- a/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt +++ b/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt @@ -2,24 +2,24 @@ androidx.activity:activity-compose:1.9.3 androidx.activity:activity-ktx:1.9.3 androidx.activity:activity:1.9.3 androidx.annotation:annotation-experimental:1.4.1 -androidx.annotation:annotation-jvm:1.8.1 -androidx.annotation:annotation:1.8.1 +androidx.annotation:annotation-jvm:1.9.1 +androidx.annotation:annotation:1.9.1 androidx.appcompat:appcompat-resources:1.6.1 androidx.arch.core:core-common:2.2.0 androidx.arch.core:core-runtime:2.2.0 androidx.autofill:autofill:1.0.0 androidx.browser:browser:1.8.0 -androidx.collection:collection-jvm:1.4.4 -androidx.collection:collection-ktx:1.4.4 -androidx.collection:collection:1.4.4 -androidx.compose.animation:animation-android:1.7.6 -androidx.compose.animation:animation-core-android:1.7.6 -androidx.compose.animation:animation-core:1.7.6 -androidx.compose.animation:animation:1.7.6 -androidx.compose.foundation:foundation-android:1.7.6 -androidx.compose.foundation:foundation-layout-android:1.7.6 -androidx.compose.foundation:foundation-layout:1.7.6 -androidx.compose.foundation:foundation:1.7.6 +androidx.collection:collection-jvm:1.5.0-beta01 +androidx.collection:collection-ktx:1.5.0-beta01 +androidx.collection:collection:1.5.0-beta01 +androidx.compose.animation:animation-android:1.8.0-alpha07 +androidx.compose.animation:animation-core-android:1.8.0-alpha07 +androidx.compose.animation:animation-core:1.8.0-alpha07 +androidx.compose.animation:animation:1.8.0-alpha07 +androidx.compose.foundation:foundation-android:1.8.0-alpha07 +androidx.compose.foundation:foundation-layout-android:1.8.0-alpha07 +androidx.compose.foundation:foundation-layout:1.8.0-alpha07 +androidx.compose.foundation:foundation:1.8.0-alpha07 androidx.compose.material3.adaptive:adaptive-android:1.0.0 androidx.compose.material3.adaptive:adaptive:1.0.0 androidx.compose.material3:material3-adaptive-navigation-suite-android:1.3.1 @@ -32,55 +32,55 @@ androidx.compose.material:material-icons-extended-android:1.7.6 androidx.compose.material:material-icons-extended:1.7.6 androidx.compose.material:material-ripple-android:1.7.6 androidx.compose.material:material-ripple:1.7.6 -androidx.compose.runtime:runtime-android:1.7.6 -androidx.compose.runtime:runtime-saveable-android:1.7.6 -androidx.compose.runtime:runtime-saveable:1.7.6 -androidx.compose.runtime:runtime:1.7.6 -androidx.compose.ui:ui-android:1.7.6 -androidx.compose.ui:ui-geometry-android:1.7.6 -androidx.compose.ui:ui-geometry:1.7.6 -androidx.compose.ui:ui-graphics-android:1.7.6 -androidx.compose.ui:ui-graphics:1.7.6 -androidx.compose.ui:ui-text-android:1.7.6 -androidx.compose.ui:ui-text:1.7.6 -androidx.compose.ui:ui-tooling-preview-android:1.7.6 -androidx.compose.ui:ui-tooling-preview:1.7.6 -androidx.compose.ui:ui-unit-android:1.7.6 -androidx.compose.ui:ui-unit:1.7.6 -androidx.compose.ui:ui-util-android:1.7.6 -androidx.compose.ui:ui-util:1.7.6 -androidx.compose.ui:ui:1.7.6 +androidx.compose.runtime:runtime-android:1.8.0-alpha07 +androidx.compose.runtime:runtime-saveable-android:1.8.0-alpha07 +androidx.compose.runtime:runtime-saveable:1.8.0-alpha07 +androidx.compose.runtime:runtime:1.8.0-alpha07 +androidx.compose.ui:ui-android:1.8.0-alpha07 +androidx.compose.ui:ui-geometry-android:1.8.0-alpha07 +androidx.compose.ui:ui-geometry:1.8.0-alpha07 +androidx.compose.ui:ui-graphics-android:1.8.0-alpha07 +androidx.compose.ui:ui-graphics:1.8.0-alpha07 +androidx.compose.ui:ui-text-android:1.8.0-alpha07 +androidx.compose.ui:ui-text:1.8.0-alpha07 +androidx.compose.ui:ui-tooling-preview-android:1.8.0-alpha07 +androidx.compose.ui:ui-tooling-preview:1.8.0-alpha07 +androidx.compose.ui:ui-unit-android:1.8.0-alpha07 +androidx.compose.ui:ui-unit:1.8.0-alpha07 +androidx.compose.ui:ui-util-android:1.8.0-alpha07 +androidx.compose.ui:ui-util:1.8.0-alpha07 +androidx.compose.ui:ui:1.8.0-alpha07 androidx.compose:compose-bom:2024.12.01 androidx.concurrent:concurrent-futures:1.1.0 androidx.core:core-ktx:1.13.1 androidx.core:core:1.13.1 androidx.customview:customview-poolingcontainer:1.0.0 androidx.customview:customview:1.0.0 -androidx.emoji2:emoji2:1.3.0 +androidx.emoji2:emoji2:1.4.0 androidx.exifinterface:exifinterface:1.3.7 androidx.fragment:fragment:1.5.1 androidx.graphics:graphics-path:1.0.1 androidx.interpolator:interpolator:1.0.0 -androidx.lifecycle:lifecycle-common-java8:2.8.3 -androidx.lifecycle:lifecycle-common-jvm:2.8.3 -androidx.lifecycle:lifecycle-common:2.8.3 -androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.3 -androidx.lifecycle:lifecycle-livedata-core:2.8.3 -androidx.lifecycle:lifecycle-livedata:2.8.3 -androidx.lifecycle:lifecycle-process:2.8.3 -androidx.lifecycle:lifecycle-runtime-android:2.8.3 -androidx.lifecycle:lifecycle-runtime-compose-android:2.8.3 -androidx.lifecycle:lifecycle-runtime-compose:2.8.3 -androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.3 -androidx.lifecycle:lifecycle-runtime-ktx:2.8.3 -androidx.lifecycle:lifecycle-runtime:2.8.3 -androidx.lifecycle:lifecycle-viewmodel-android:2.8.3 -androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.3 -androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.3 -androidx.lifecycle:lifecycle-viewmodel:2.8.3 +androidx.lifecycle:lifecycle-common-java8:2.8.7 +androidx.lifecycle:lifecycle-common-jvm:2.8.7 +androidx.lifecycle:lifecycle-common:2.8.7 +androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 +androidx.lifecycle:lifecycle-livedata-core:2.8.7 +androidx.lifecycle:lifecycle-livedata:2.8.7 +androidx.lifecycle:lifecycle-process:2.8.7 +androidx.lifecycle:lifecycle-runtime-android:2.8.7 +androidx.lifecycle:lifecycle-runtime-compose-android:2.8.7 +androidx.lifecycle:lifecycle-runtime-compose:2.8.7 +androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.7 +androidx.lifecycle:lifecycle-runtime-ktx:2.8.7 +androidx.lifecycle:lifecycle-runtime:2.8.7 +androidx.lifecycle:lifecycle-viewmodel-android:2.8.7 +androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 +androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 +androidx.lifecycle:lifecycle-viewmodel:2.8.7 androidx.loader:loader:1.0.0 androidx.metrics:metrics-performance:1.0.0-beta01 -androidx.profileinstaller:profileinstaller:1.3.1 +androidx.profileinstaller:profileinstaller:1.4.0 androidx.savedstate:savedstate-ktx:1.2.1 androidx.savedstate:savedstate:1.2.1 androidx.startup:startup-runtime:1.1.1 @@ -96,10 +96,10 @@ androidx.window:window-core:1.3.0 androidx.window:window:1.3.0 com.google.accompanist:accompanist-drawablepainter:0.32.0 com.google.code.findbugs:jsr305:3.0.2 -com.google.dagger:dagger-lint-aar:2.53.1 -com.google.dagger:dagger:2.53.1 -com.google.dagger:hilt-android:2.53.1 -com.google.dagger:hilt-core:2.53.1 +com.google.dagger:dagger-lint-aar:2.54 +com.google.dagger:dagger:2.54 +com.google.dagger:hilt-android:2.54 +com.google.dagger:hilt-core:2.54 com.google.guava:listenablefuture:1.0 com.squareup.okhttp3:okhttp:4.12.0 com.squareup.okio:okio-jvm:3.9.0 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 166eb8582..05212a28f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -116,15 +116,16 @@ dependencies { testImplementation(projects.sync.syncTest) testImplementation(libs.kotlin.test) + testDemoImplementation(libs.androidx.navigation.testing) testDemoImplementation(libs.robolectric) testDemoImplementation(libs.roborazzi) testDemoImplementation(projects.core.screenshotTesting) + testDemoImplementation(projects.core.testing) androidTestImplementation(projects.core.testing) androidTestImplementation(projects.core.dataTest) androidTestImplementation(projects.core.datastoreTest) androidTestImplementation(libs.androidx.test.espresso.core) - androidTestImplementation(libs.androidx.navigation.testing) androidTestImplementation(libs.androidx.compose.ui.test) androidTestImplementation(libs.hilt.android.testing) androidTestImplementation(libs.kotlin.test) diff --git a/app/dependencies/prodReleaseRuntimeClasspath.txt b/app/dependencies/prodReleaseRuntimeClasspath.txt index 2db7fa46c..6fca688a1 100644 --- a/app/dependencies/prodReleaseRuntimeClasspath.txt +++ b/app/dependencies/prodReleaseRuntimeClasspath.txt @@ -2,25 +2,25 @@ androidx.activity:activity-compose:1.9.3 androidx.activity:activity-ktx:1.9.3 androidx.activity:activity:1.9.3 androidx.annotation:annotation-experimental:1.4.1 -androidx.annotation:annotation-jvm:1.8.1 -androidx.annotation:annotation:1.8.1 +androidx.annotation:annotation-jvm:1.9.1 +androidx.annotation:annotation:1.9.1 androidx.appcompat:appcompat-resources:1.7.0 androidx.appcompat:appcompat:1.7.0 androidx.arch.core:core-common:2.2.0 androidx.arch.core:core-runtime:2.2.0 androidx.autofill:autofill:1.0.0 androidx.browser:browser:1.8.0 -androidx.collection:collection-jvm:1.4.4 -androidx.collection:collection-ktx:1.4.4 -androidx.collection:collection:1.4.4 -androidx.compose.animation:animation-android:1.7.6 -androidx.compose.animation:animation-core-android:1.7.6 -androidx.compose.animation:animation-core:1.7.6 -androidx.compose.animation:animation:1.7.6 -androidx.compose.foundation:foundation-android:1.7.6 -androidx.compose.foundation:foundation-layout-android:1.7.6 -androidx.compose.foundation:foundation-layout:1.7.6 -androidx.compose.foundation:foundation:1.7.6 +androidx.collection:collection-jvm:1.5.0-beta01 +androidx.collection:collection-ktx:1.5.0-beta01 +androidx.collection:collection:1.5.0-beta01 +androidx.compose.animation:animation-android:1.8.0-alpha07 +androidx.compose.animation:animation-core-android:1.8.0-alpha07 +androidx.compose.animation:animation-core:1.8.0-alpha07 +androidx.compose.animation:animation:1.8.0-alpha07 +androidx.compose.foundation:foundation-android:1.8.0-alpha07 +androidx.compose.foundation:foundation-layout-android:1.8.0-alpha07 +androidx.compose.foundation:foundation-layout:1.8.0-alpha07 +androidx.compose.foundation:foundation:1.8.0-alpha07 androidx.compose.material3.adaptive:adaptive-android:1.0.0 androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0 androidx.compose.material3.adaptive:adaptive-layout:1.0.0 @@ -39,25 +39,25 @@ androidx.compose.material:material-icons-extended-android:1.7.6 androidx.compose.material:material-icons-extended:1.7.6 androidx.compose.material:material-ripple-android:1.7.6 androidx.compose.material:material-ripple:1.7.6 -androidx.compose.runtime:runtime-android:1.7.6 -androidx.compose.runtime:runtime-saveable-android:1.7.6 -androidx.compose.runtime:runtime-saveable:1.7.6 -androidx.compose.runtime:runtime-tracing:1.7.6 -androidx.compose.runtime:runtime:1.7.6 -androidx.compose.ui:ui-android:1.7.6 -androidx.compose.ui:ui-geometry-android:1.7.6 -androidx.compose.ui:ui-geometry:1.7.6 -androidx.compose.ui:ui-graphics-android:1.7.6 -androidx.compose.ui:ui-graphics:1.7.6 -androidx.compose.ui:ui-text-android:1.7.6 -androidx.compose.ui:ui-text:1.7.6 -androidx.compose.ui:ui-tooling-preview-android:1.7.6 -androidx.compose.ui:ui-tooling-preview:1.7.6 -androidx.compose.ui:ui-unit-android:1.7.6 -androidx.compose.ui:ui-unit:1.7.6 -androidx.compose.ui:ui-util-android:1.7.6 -androidx.compose.ui:ui-util:1.7.6 -androidx.compose.ui:ui:1.7.6 +androidx.compose.runtime:runtime-android:1.8.0-alpha07 +androidx.compose.runtime:runtime-saveable-android:1.8.0-alpha07 +androidx.compose.runtime:runtime-saveable:1.8.0-alpha07 +androidx.compose.runtime:runtime-tracing:1.8.0-alpha07 +androidx.compose.runtime:runtime:1.8.0-alpha07 +androidx.compose.ui:ui-android:1.8.0-alpha07 +androidx.compose.ui:ui-geometry-android:1.8.0-alpha07 +androidx.compose.ui:ui-geometry:1.8.0-alpha07 +androidx.compose.ui:ui-graphics-android:1.8.0-alpha07 +androidx.compose.ui:ui-graphics:1.8.0-alpha07 +androidx.compose.ui:ui-text-android:1.8.0-alpha07 +androidx.compose.ui:ui-text:1.8.0-alpha07 +androidx.compose.ui:ui-tooling-preview-android:1.8.0-alpha07 +androidx.compose.ui:ui-tooling-preview:1.8.0-alpha07 +androidx.compose.ui:ui-unit-android:1.8.0-alpha07 +androidx.compose.ui:ui-unit:1.8.0-alpha07 +androidx.compose.ui:ui-util-android:1.8.0-alpha07 +androidx.compose.ui:ui-util:1.8.0-alpha07 +androidx.compose.ui:ui:1.8.0-alpha07 androidx.compose:compose-bom:2024.12.01 androidx.concurrent:concurrent-futures-ktx:1.1.0 androidx.concurrent:concurrent-futures:1.1.0 @@ -79,8 +79,8 @@ androidx.datastore:datastore-preferences:1.1.1 androidx.datastore:datastore:1.1.1 androidx.documentfile:documentfile:1.0.0 androidx.drawerlayout:drawerlayout:1.0.0 -androidx.emoji2:emoji2-views-helper:1.3.0 -androidx.emoji2:emoji2:1.3.0 +androidx.emoji2:emoji2-views-helper:1.4.0 +androidx.emoji2:emoji2:1.4.0 androidx.exifinterface:exifinterface:1.3.7 androidx.fragment:fragment:1.5.4 androidx.graphics:graphics-path:1.0.1 @@ -164,10 +164,10 @@ com.google.android.gms:play-services-oss-licenses:17.1.0 com.google.android.gms:play-services-stats:17.0.2 com.google.android.gms:play-services-tasks:18.2.0 com.google.code.findbugs:jsr305:3.0.2 -com.google.dagger:dagger-lint-aar:2.53.1 -com.google.dagger:dagger:2.53.1 -com.google.dagger:hilt-android:2.53.1 -com.google.dagger:hilt-core:2.53.1 +com.google.dagger:dagger-lint-aar:2.54 +com.google.dagger:dagger:2.54 +com.google.dagger:hilt-android:2.54 +com.google.dagger:hilt-core:2.54 com.google.errorprone:error_prone_annotations:2.26.0 com.google.firebase:firebase-abt:21.1.1 com.google.firebase:firebase-analytics:22.1.2 @@ -216,18 +216,18 @@ org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0 org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0 -org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0 -org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0 -org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 -org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0 -org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.9.0 +org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.1 +org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.1 +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.1 +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1 +org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.10.1 +org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.10.1 org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.1 org.jetbrains.kotlinx:kotlinx-datetime:0.6.1 -org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3 -org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3 -org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.3 -org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 +org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0 +org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0 +org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 +org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0 +org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0 org.jetbrains:annotations:23.0.0 org.jspecify:jspecify:1.0.0 diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 7cdd25527..57077a216 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -21,7 +21,9 @@