diff --git a/.gitignore b/.gitignore index f429aecdb4..51fc0ce4f3 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ replay_pid*.log # Keystore files — never commit signing keys *.jks *.keystore +.idea/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fc04a9319..7aeef7f01a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,17 @@ Date: Late March 2026 - (Work in progress) +--- +## v9.6.14 +Date: 2026-03-18 + +### Highlights +- Moved to Kotatsu-Redo parsers thanks to the Kotatsu-Redo dev. +- Fixed SSL errors. +- New website landing page. + +### Fixes +- Fixed Reproducible builds issue. --- ## v9.6.13 diff --git a/app/build.gradle b/app/build.gradle index 0cfb495996..24837d9d29 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -31,7 +31,7 @@ android { minSdk = 23 targetSdk = 36 versionCode project.hasProperty('versionCode') ? project.property('versionCode').toInteger() : 90614 - versionName project.hasProperty('versionName') ? project.property('versionName') : '9.6.13' + versionName project.hasProperty('versionName') ? project.property('versionName') : '9.6.14' generatedDensities = [] testInstrumentationRunner 'io.github.landwarderer.futon.HiltTestRunner' ksp { @@ -210,6 +210,7 @@ dependencies { implementation libs.kizzyrpc implementation libs.conscrypt.android + implementation libs.sentry.android debugImplementation libs.leakcanary.android nightlyImplementation libs.leakcanary.android @@ -233,19 +234,21 @@ dependencies { kspAndroidTest libs.hilt.android.compiler } - sentry { - org = "appfuton" - projectName = "android" - - // this will upload your source code to Sentry to show it as part of the stack traces - // disable if you don't want to expose your sources - includeSourceContext = true - - // Skip all Sentry Gradle plugin tasks (source upload, mapping upload, etc.) - // if SENTRY_AUTH_TOKEN is not provided — avoids build errors in local/dev environments - def sentryAuthToken = System.getenv('SENTRY_AUTH_TOKEN') - includeSourceContext = sentryAuthToken != null && !sentryAuthToken.isEmpty() - autoUploadProguardMapping = sentryAuthToken != null && !sentryAuthToken.isEmpty() - autoUploadSourceContext = sentryAuthToken != null && !sentryAuthToken.isEmpty() + org = "appfuton" + projectName = "android" + authToken = System.getenv('SENTRY_AUTH_TOKEN') ?: '' + + // Disable all uploads + includeSourceContext = false + autoUploadProguardMapping = false + autoUploadSourceContext = false + + // Disable instrumentation that causes manifest/UUID changes + tracingInstrumentation { enabled = false } + autoInstallation { enabled = false } + + // Disable telemetry and dependency reporting that cause non-deterministic builds + includeDependenciesReport = false + telemetry = false } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c99a096b1c..2a4d82633b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ diff --git a/app/src/main/kotlin/io/github/landwarderer/futon/core/github/AppUpdateRepository.kt b/app/src/main/kotlin/io/github/landwarderer/futon/core/github/AppUpdateRepository.kt index 6ffc408f2f..0deceba200 100644 --- a/app/src/main/kotlin/io/github/landwarderer/futon/core/github/AppUpdateRepository.kt +++ b/app/src/main/kotlin/io/github/landwarderer/futon/core/github/AppUpdateRepository.kt @@ -56,7 +56,7 @@ class AppUpdateRepository @Inject constructor( val json = JSONObject(response.body?.string() ?: "{}") val currentVersion = VersionId(BuildConfig.VERSION_NAME) - val releaseVersion = VersionId(json.getString("name").removePrefix("v")) + val releaseVersion = VersionId(json.getString("tag_name").removePrefix("v")) // Only return update if there's a newer version available if (releaseVersion <= currentVersion) { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6b974a466c..c992dde3be 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -34,11 +34,12 @@ material = "1.14.0-alpha05" moshi = "1.15.2" okhttp = "5.2.1" okio = "3.16.1" -parsers = "e7302508ac" +parsers = "4c0ce00c35" preference = "1.2.1" recyclerview = "1.4.0" room = "2.7.2" serialization = "1.9.0" +sentry = "8.36.0" ssiv = "v4.1" swiperefreshlayout = "1.1.0" testRules = "1.7.0" @@ -112,6 +113,7 @@ okhttp = { module = "com.squareup.okhttp3:okhttp" } okhttp-dnsoverhttps = { module = "com.squareup.okhttp3:okhttp-dnsoverhttps" } okhttp-tls = { module = "com.squareup.okhttp3:okhttp-tls" } okio = { module = "com.squareup.okio:okio", version.ref = "okio" } +sentry-android = { module = "io.sentry:sentry-android", version.ref = "sentry" } ssiv = { module = "com.github.AppFuton:subsampling-scale-image-view", version.ref = "ssiv" } workinspector = { module = "com.github.Koitharu:WorkInspector", version.ref = "workinspector" } androidx-window = { module = "androidx.window:window", version.ref = "window" } diff --git a/metadata/changelogs/90614.txt b/metadata/changelogs/90614.txt new file mode 100644 index 0000000000..40aedf35f8 --- /dev/null +++ b/metadata/changelogs/90614.txt @@ -0,0 +1,10 @@ +Date: 2026-03-18 +Highlights + +- Moved to Kotatsu-Redo parsers thanks to the Kotatsu-Redo dev. +- Fixed SSL errors. +- New website landing page. + +Fixes + +- Fixed Reproducible builds issue. \ No newline at end of file