1
0
mirror of https://github.com/element-hq/element-x-android.git synced 2026-10-23 18:49:00 +03:00
Files
element-x-android/gradle.properties
Benoit Marty 73b3282939 Stop rewriting screenshots that did not meaningfully change
Recording rewrote every screenshot unconditionally, so renderer noise far below
the verification tolerance produced large "Update screenshots" commits.

Use `app.cash.paparazzi.overwriteOnMaxPercentDifference` to keep screenshots that
are within tolerance. Existing screenshots are no longer deleted before recording;
obsolete ones are pruned afterwards, only when their preview produced no
screenshot at all.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-01 15:46:28 +02:00

74 lines
3.1 KiB
Properties

#
# Copyright (c) 2025 Element Creations Ltd.
# Copyright 2022 New Vector Ltd.
#
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
# Please see LICENSE files in the repository root for full details.
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Matches the heap size CI already uses for release builds (see GRADLE_OPTS in
# .github/workflows/release.yml and nightly.yml) - a local `assembleRelease`/`bundleRelease`
# runs R8 on the full app and can run out of heap well before 4g on this codebase's size.
org.gradle.jvmargs=-Xmx8g -Dfile.encoding=UTF-8 -XX:+UseG1GC
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app"s APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
org.gradle.configureondemand=true
org.gradle.parallel=true
# Caching
org.gradle.caching=true
org.gradle.configuration-cache=true
org.gradle.configuration-cache.parallel=true
kotlin.incremental=true
# Dummy values for signing secrets / nightly
signing.element.nightly.storeFile=
signing.element.nightly.storePassword=Secret
signing.element.nightly.keyId=Secret
signing.element.nightly.keyPassword=Secret
# Customise the Lint version to use a more recent version than the one bundled with AGP
# https://googlesamples.github.io/android-custom-lint-rules/usage/newer-lint.md.html
# android.experimental.lint.version=8.12.2
# Enable test fixture for all modules by default
android.experimental.enableTestFixtures=true
# Create BuildConfig files as bytecode to avoid Java compilation phase
android.enableBuildConfigAsBytecode=true
# Only apply KSP to main sources
ksp.allow.all.target.configuration=false
# Used to prevent detekt from reusing invalid cached rules
detekt.use.worker.api=true
# Needed after enabling proguard on AGP 8.13.1
android.r8.gradual.support=true
# Enabled parallel sync for Gradle 9.4+
org.gradle.tooling.parallel=true
# When re-recording, keep the existing screenshot if it differs by less than `maxPercentDifference`
# (see PaparazziPreviewRule in tests/uitests/.../base/ScreenshotTest.kt). Without this, recording has
# no tolerance at all while verification has one, so renderer noise far below the threshold that
# `verifyPaparazziDebug` accepts still rewrites the Git LFS blob of every affected screenshot.
app.cash.paparazzi.overwriteOnMaxPercentDifference=true