pachli-android/tools/mkserverversions/build.gradle.kts

53 lines
1.5 KiB
Plaintext
Raw Normal View History

/*
* Copyright 2024 Pachli Association
*
* This file is a part of Pachli.
*
* This program is free software; you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation; either version 3 of the
* License, or (at your option) any later version.
*
* Pachli is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
* You should have received a copy of the GNU General Public License along with Pachli; if not,
* see <http://www.gnu.org/licenses>.
*/
plugins {
refactor: Convert from Gson to Moshi (#428) Moshi is faster to decode JSON at runtime, is actively maintained, has a smaller memory and method footprint, and a slightly smaller APK size. Moshi also correctly creates default constructor arguments instead of leaving them null, which was a source of `NullPointerExceptions` when using Gson. The conversion broadly consisted of: - Adding `@JsonClass(generateAdapter = true)` to data classes that marshall to/from JSON. - Replacing `@SerializedName(value = ...)` with `@Json(name = ...)`. - Replacing Gson instances with Moshi in Retrofit, Hilt, and tests. - Using Moshi adapters to marshall to/from JSON instead of Gson `toJson` / `fromJson`. - Deleting `Rfc3339DateJsonAdapter` and related code, and using the equivalent adapter bundled with Moshi. - Rewriting `GuardedBooleanAdapter` as a more generic `GuardedAdapter`. - Deleting unused ProGuard rules; Moshi generates adapters using code generation, not runtime reflection. The conversion surfaced some bugs which have been fixed. - Not all audio attachments have attachment size metadata. Don't show the attachment preview if the metadata is missing. - Some `throwable` were not being logged correctly. - The wrong type was being used when parsing the response when sending a scheduled status. - Exceptions other than `HttpException` or `IoException` would also cause a status to be resent. If there's a JSON error parsing a response the status would be repeatedly sent. - In tests strings containing error responses were not valid JSON. - Workaround Mastodon a bug and ensure `filter.keywords` is populated, https://github.com/mastodon/mastodon/issues/29142
2024-02-09 12:41:13 +01:00
id("com.google.devtools.ksp")
id("com.apollographql.apollo3") version "3.8.2"
}
application {
mainClass = "app.pachli.mkserverversions.MainKt"
}
dependencies {
// GraphQL client
implementation("com.apollographql.apollo3:apollo-runtime:3.8.2")
// Logging
fix(deps): update dependency io.github.oshai:kotlin-logging-jvm to v6.0.3 (#362) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [io.github.oshai:kotlin-logging-jvm](https://togithub.com/oshai/kotlin-logging) | `5.1.4` -> `6.0.3` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.oshai:kotlin-logging-jvm/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.oshai:kotlin-logging-jvm/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.oshai:kotlin-logging-jvm/5.1.4/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.oshai:kotlin-logging-jvm/5.1.4/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [io.github.oshai:kotlin-logging-jvm](https://togithub.com/oshai/kotlin-logging) | `6.0.1` -> `6.0.3` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.oshai:kotlin-logging-jvm/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.oshai:kotlin-logging-jvm/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.oshai:kotlin-logging-jvm/6.0.1/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.oshai:kotlin-logging-jvm/6.0.1/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>oshai/kotlin-logging (io.github.oshai:kotlin-logging-jvm)</summary> ### [`v6.0.3`](https://togithub.com/oshai/kotlin-logging/releases/tag/6.0.3) [Compare Source](https://togithub.com/oshai/kotlin-logging/compare/6.0.2...6.0.3) #### What's Changed - Add Kotlin/Wasm (JS browser) support by [@&#8203;AzimMuradov](https://togithub.com/AzimMuradov) in [https://github.com/oshai/kotlin-logging/pull/388](https://togithub.com/oshai/kotlin-logging/pull/388) - Bump com.diffplug.spotless from 6.23.3 to 6.24.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/oshai/kotlin-logging/pull/390](https://togithub.com/oshai/kotlin-logging/pull/390) - Bump actions/upload-pages-artifact from 2 to 3 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/oshai/kotlin-logging/pull/391](https://togithub.com/oshai/kotlin-logging/pull/391) - Bump actions/deploy-pages from 3 to 4 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/oshai/kotlin-logging/pull/392](https://togithub.com/oshai/kotlin-logging/pull/392) - Bump actions/cache from 3.3.2 to 3.3.3 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/oshai/kotlin-logging/pull/393](https://togithub.com/oshai/kotlin-logging/pull/393) - Log marker and stacktrace on Darwin by [@&#8203;Gaming32](https://togithub.com/Gaming32) in [https://github.com/oshai/kotlin-logging/pull/379](https://togithub.com/oshai/kotlin-logging/pull/379) #### New Contributors - [@&#8203;Gaming32](https://togithub.com/Gaming32) made their first contribution in [https://github.com/oshai/kotlin-logging/pull/379](https://togithub.com/oshai/kotlin-logging/pull/379) **Full Changelog**: https://github.com/oshai/kotlin-logging/compare/6.0.2...6.0.3 ### [`v6.0.2`](https://togithub.com/oshai/kotlin-logging/releases/tag/6.0.2) [Compare Source](https://togithub.com/oshai/kotlin-logging/compare/6.0.1...6.0.2) #### What's Changed - Bump multiplatform from 1.9.21 to 1.9.22 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/oshai/kotlin-logging/pull/385](https://togithub.com/oshai/kotlin-logging/pull/385) - Remove detekt by [@&#8203;AzimMuradov](https://togithub.com/AzimMuradov) in [https://github.com/oshai/kotlin-logging/pull/387](https://togithub.com/oshai/kotlin-logging/pull/387) - Add workflow to publish Dokka HTML docs to project site by [@&#8203;EdricChan03](https://togithub.com/EdricChan03) in [https://github.com/oshai/kotlin-logging/pull/383](https://togithub.com/oshai/kotlin-logging/pull/383) #### New Contributors - [@&#8203;EdricChan03](https://togithub.com/EdricChan03) made their first contribution in [https://github.com/oshai/kotlin-logging/pull/383](https://togithub.com/oshai/kotlin-logging/pull/383) **Full Changelog**: https://github.com/oshai/kotlin-logging/compare/6.0.1...6.0.2 ### [`v6.0.1`](https://togithub.com/oshai/kotlin-logging/releases/tag/6.0.1) [Compare Source](https://togithub.com/oshai/kotlin-logging/compare/6.0.0...6.0.1) #### What's Changed - Bump com.diffplug.spotless from 6.22.0 to 6.23.3 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/oshai/kotlin-logging/pull/377](https://togithub.com/oshai/kotlin-logging/pull/377) - Bump actions/setup-java from 3 to 4 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/oshai/kotlin-logging/pull/376](https://togithub.com/oshai/kotlin-logging/pull/376) - Bump org.jetbrains.dokka from 1.8.20 to 1.9.10 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/oshai/kotlin-logging/pull/366](https://togithub.com/oshai/kotlin-logging/pull/366) **Full Changelog**: https://github.com/oshai/kotlin-logging/compare/6.0.0...6.0.1 ### [`v6.0.0`](https://togithub.com/oshai/kotlin-logging/releases/tag/6.0.0) [Compare Source](https://togithub.com/oshai/kotlin-logging/compare/5.1.4...6.0.0) #### What's Changed - Update Kotlin to 1.9.21 by [@&#8203;AzimMuradov](https://togithub.com/AzimMuradov) in [https://github.com/oshai/kotlin-logging/pull/380](https://togithub.com/oshai/kotlin-logging/pull/380) #### New Contributors - [@&#8203;AzimMuradov](https://togithub.com/AzimMuradov) made their first contribution in [https://github.com/oshai/kotlin-logging/pull/380](https://togithub.com/oshai/kotlin-logging/pull/380) **Full Changelog**: https://github.com/oshai/kotlin-logging/compare/5.1.2...6.0.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/pachli/pachli-android). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIyMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 14:53:10 +01:00
implementation("io.github.oshai:kotlin-logging-jvm:6.0.3")
fix(deps): update dependency ch.qos.logback:logback-classic to v1.5.3 (#294) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ch.qos.logback:logback-classic](http://logback.qos.ch) ([source](https://togithub.com/qos-ch/logback), [changelog](https://logback.qos.ch/news.html)) | `1.4.11` -> `1.5.3` | [![age](https://developer.mend.io/api/mc/badges/age/maven/ch.qos.logback:logback-classic/1.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/ch.qos.logback:logback-classic/1.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/ch.qos.logback:logback-classic/1.4.11/1.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/ch.qos.logback:logback-classic/1.4.11/1.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/pachli/pachli-android). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuMjIwLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 20:18:13 +01:00
implementation("ch.qos.logback:logback-classic:1.5.3")
refactor: Convert from Gson to Moshi (#428) Moshi is faster to decode JSON at runtime, is actively maintained, has a smaller memory and method footprint, and a slightly smaller APK size. Moshi also correctly creates default constructor arguments instead of leaving them null, which was a source of `NullPointerExceptions` when using Gson. The conversion broadly consisted of: - Adding `@JsonClass(generateAdapter = true)` to data classes that marshall to/from JSON. - Replacing `@SerializedName(value = ...)` with `@Json(name = ...)`. - Replacing Gson instances with Moshi in Retrofit, Hilt, and tests. - Using Moshi adapters to marshall to/from JSON instead of Gson `toJson` / `fromJson`. - Deleting `Rfc3339DateJsonAdapter` and related code, and using the equivalent adapter bundled with Moshi. - Rewriting `GuardedBooleanAdapter` as a more generic `GuardedAdapter`. - Deleting unused ProGuard rules; Moshi generates adapters using code generation, not runtime reflection. The conversion surfaced some bugs which have been fixed. - Not all audio attachments have attachment size metadata. Don't show the attachment preview if the metadata is missing. - Some `throwable` were not being logged correctly. - The wrong type was being used when parsing the response when sending a scheduled status. - Exceptions other than `HttpException` or `IoException` would also cause a status to be resent. If there's a JSON error parsing a response the status would be repeatedly sent. - In tests strings containing error responses were not valid JSON. - Workaround Mastodon a bug and ensure `filter.keywords` is populated, https://github.com/mastodon/mastodon/issues/29142
2024-02-09 12:41:13 +01:00
// Moshi
implementation(libs.moshi)
ksp(libs.moshi.codegen)
// Testing
testImplementation(kotlin("test"))
fix(deps): update dependency org.junit.jupiter:junit-jupiter-params to v5.10.2 (#418) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.junit.jupiter:junit-jupiter-params](https://junit.org/junit5/) ([source](https://togithub.com/junit-team/junit5)) | `5.10.1` -> `5.10.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.junit.jupiter:junit-jupiter-params/5.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.junit.jupiter:junit-jupiter-params/5.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.junit.jupiter:junit-jupiter-params/5.10.1/5.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.junit.jupiter:junit-jupiter-params/5.10.1/5.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/pachli/pachli-android). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-04 22:54:05 +01:00
testImplementation("org.junit.jupiter:junit-jupiter-params:5.10.2") // for parameterized tests
}
tasks.test {
useJUnitPlatform()
}
apollo {
service("service") {
packageName = "app.pachli.mkserverversions.fediverseobserver"
}
}