lydavid / MusicSearch

An Android app for browsing songs, artists, and anything related to them
Apache License 2.0
18 stars 0 forks source link

feat: update Kotlin to 2.0.0 #924

Closed lydavid closed 1 month ago

sweep-ai[bot] commented 1 month ago

Sweep: PR Review

Authors of pull request: @lydavid

android/app/build.gradle.kts

Replaced the Android Compose plugin with a multiplatform Compose plugin in the build script.

Sweep Found These Issues

  • The new plugin ly.david.musicsearch.compose.multiplatform may introduce compatibility issues or require additional configuration changes that are not reflected in the current build script.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/android%2Fapp%2Fbuild.gradle.kts#L6 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-852897104c5cf350a945bb63cd9836c04ab5209a74900a1e8938092f6b9d68fbR6)

android/feature/nowplaying/build.gradle.kts

Replaced the ly.david.android.compose plugin with ly.david.musicsearch.compose.multiplatform in the build.gradle.kts file.

Sweep Found These Issues

  • The new plugin ly.david.musicsearch.compose.multiplatform might introduce changes or dependencies that are not compatible with the existing project setup, potentially causing build or runtime issues.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/android%2Ffeature%2Fnowplaying%2Fbuild.gradle.kts#L4 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-3efae39c4f3b333f01996f75bedc096891e98275c00ec0e8f56d832e7e16af4fR4)

android/feature/spotify/build.gradle.kts

Switched from a single-platform Compose plugin to a multiplatform Compose plugin in the build configuration.

Sweep Found These Issues

  • Switching to a multiplatform Compose plugin may introduce compatibility issues if the existing codebase is not fully compatible with multiplatform configurations.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/android%2Ffeature%2Fspotify%2Fbuild.gradle.kts#L4 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-7822f77ebbf0d4822d6100af6a5ddff91067f1a8df67d4b23dc8c195beaf8856R4)

build-logic/convention/build.gradle.kts

Added the Compose Compiler Gradle Plugin as a compile-only dependency and removed the registration of the androidCompose plugin.

Potential Issues

Sweep isn't 100% sure if the following are issues or not but they may be worth taking a look at.

  • The removal of the "androidCompose" plugin registration may cause build failures or missing functionality if the plugin was previously in use.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/build-logic%2Fconvention%2Fbuild.gradle.kts#L21-L24 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-ff18f46c23dea6ea303e09a83b13894808be61c9fa471be350363fc6e8514f0aR21-R24)

build-logic/convention/src/main/kotlin/ly/david/convention/plugin/AndroidComposeConventionPlugin.kt

Removed the AndroidComposeConventionPlugin class and its associated configurations for enabling Jetpack Compose in Android projects.

Sweep Found These Issues

  • The removal of the AndroidComposeConventionPlugin class will result in Android projects no longer having Compose-specific configurations automatically applied, which could lead to build failures or missing Compose features.
  • https://github.com/lydavid/MusicSearch/blob/7c654bfa80544bd4a80ef35de46df2819576997d/build-logic%2Fconvention%2Fsrc%2Fmain%2Fkotlin%2Fly%2Fdavid%2Fconvention%2Fplugin%2FAndroidComposeConventionPlugin.kt#L1-L30 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-162ad36510f598e59e68d3f89c6e384fee0604a7885235acf7bba6a7f333f8f1R1-R30)

build-logic/convention/src/main/kotlin/ly/david/convention/plugin/ComposeMultiplatformConventionPlugin.kt

Added the application of the "org.jetbrains.kotlin.plugin.compose" plugin to the ComposeMultiplatformConventionPlugin.


build.gradle.kts

Added the compose.compiler plugin to the plugins block for manual application in specific subprojects or tasks.

Sweep Found These Issues

  • The addition of the compose.compiler plugin without automatic application might lead to confusion or errors if developers forget to manually apply it where needed.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/build.gradle.kts#L7 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-c0dfa6bc7a8685217f70a860145fbdf416d449eaff052fa28352c5cec1a98c06R7)

data/coverart/src/jvmTest/kotlin/ly/david/musicsearch/data/coverart/RemoveFileExtensionTests.kt

Added unit tests to verify the functionality of the removeFileExtension method for URLs with .png, .jpg, and no file extension.

Sweep Found These Issues

  • The tests do not cover edge cases such as URLs with multiple dots or different file extensions, which could lead to incomplete test coverage.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/data%2Fcoverart%2Fsrc%2FjvmTest%2Fkotlin%2Fly%2Fdavid%2Fmusicsearch%2Fdata%2Fcoverart%2FRemoveFileExtensionTests.kt#L8-L30 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-ce7b62d6bb20cb64f7fec27362f8dde7d5676fbf7a0b82ee37f232a9e28afcf4R8-R30)

gradle/libs.versions.toml

Updated Kotlin and KSP versions, removed old Compose compiler references, and added new Kotlin Compose Compiler plugin dependencies.


shared/feature/collections/build.gradle.kts

Removed the ly.david.android.compose plugin from the build.gradle.kts file.

Potential Issues

Sweep isn't 100% sure if the following are issues or not but they may be worth taking a look at.

  • Removing the ly.david.android.compose plugin may lead to missing configurations or dependencies that were previously provided by this plugin, potentially causing runtime errors or missing features.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/shared%2Ffeature%2Fcollections%2Fbuild.gradle.kts#L2-L4 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-0fd1632d2cdb3d0d526742ee694e6a08720ffdea7bbad20545c924fef16e213aR2-R4)

shared/feature/details/build.gradle.kts

Removed the ly.david.android.compose plugin from the build script, potentially affecting Compose-specific configurations.

Sweep Found These Issues

  • Removing the ly.david.android.compose plugin may lead to missing configurations or tasks required for Jetpack Compose, potentially causing build or runtime issues.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/shared%2Ffeature%2Fdetails%2Fbuild.gradle.kts#L1-L8 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-61648ea2072fc86d794913f44d7c1dee6f5988e0e1a0aa0cefe57a645092bce9R1-R8)

shared/feature/history/build.gradle.kts

Removed the "ly.david.android.compose" plugin from the build script.

Sweep Found These Issues

  • Removing the "ly.david.android.compose" plugin may cause issues with Compose-related features if they rely on configurations or tasks provided by this plugin.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/shared%2Ffeature%2Fhistory%2Fbuild.gradle.kts#L2-L6 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-ae0ca9ee7acffec4896cbd9987231642d3bc8a8cffece0568f44714454b3a283R2-R6)

shared/feature/search/build.gradle.kts

Removed the ly.david.android.compose plugin from the build.gradle.kts file.

Sweep Found These Issues

  • Removing the ly.david.android.compose plugin may lead to missing configurations or tasks that were previously provided by this plugin, potentially causing build or runtime issues related to Jetpack Compose.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/shared%2Ffeature%2Fsearch%2Fbuild.gradle.kts#L2-L4 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-e1b614c105c1b83f805be04ecfb123f3e2e40ef63660132c09027371fe0959adR2-R4)

shared/feature/settings/build.gradle.kts

Removed the "ly.david.android.compose" plugin from the build.gradle.kts file.

Sweep Found These Issues

  • The removal of the "ly.david.android.compose" plugin may cause issues if any configurations, tasks, or dependencies provided by this plugin are still required by the project.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/shared%2Ffeature%2Fsettings%2Fbuild.gradle.kts#L2-L4 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-f5296235a25c6f8fbbf7622834aaeadfc99c19aafd1bd5d51cf2c7a1d3d4c4cfR2-R4)

shared/feature/stats/build.gradle.kts

Removed the "ly.david.android.compose" plugin from the build script.

Sweep Found These Issues

  • Removing the "ly.david.android.compose" plugin may lead to missing configurations or dependencies required for Android Compose functionality, potentially causing runtime errors or build failures.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/shared%2Ffeature%2Fstats%2Fbuild.gradle.kts#L2-L5 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-6fdeae66b950b18f8d3911602e2ad8850320a9312af39a7eccb37be2628f1694R2-R5)

ui/common/build.gradle.kts

Removed ly.david.android.compose plugin, added ly.david.musicsearch.compose.multiplatform plugin, and configured Kotlin targets to include custom Parcelize annotation for Android.

Potential Issues

Sweep isn't 100% sure if the following are issues or not but they may be worth taking a look at.

  • The removal of the ly.david.android.compose plugin might break existing functionalities that depend on it.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/ui%2Fcommon%2Fbuild.gradle.kts#L5 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-4ec95ba8af55074fcc1e6c70efdda933a429ebd0623088ec6700303131993263R5)

ui/common/src/androidMain/kotlin/ly/david/ui/common/screen/CommonParcelize.kt

Removed the CommonParcelize.kt file, eliminating the CommonParcelize typealias and its associated package declaration and comments.


ui/common/src/commonMain/kotlin/ly/david/ui/common/screen/CommonParcelize.kt

Removed the CommonParcelize annotation class from CommonParcelize.kt.


ui/common/src/commonMain/kotlin/ly/david/ui/common/screen/Screens.kt

Replaced @CommonParcelize with @Parcelize for consistency in parcelization annotations across multiple screen data classes and objects.


ui/common/src/iosMain/kotlin/ly/david/ui/common/screen/CommonParcelize.ios.kt

Removed the CommonParcelize annotation class and its associated metadata from the codebase.


ui/common/src/jvmMain/kotlin/ly/david/ui/common/screen/CommonParcelize.kt

Removed the CommonParcelize annotation class from the ly.david.ui.common.screen package, including its package declaration, annotations, and definition.


ui/image/build.gradle.kts

Removed the ly.david.android.compose plugin from the plugins block in ui/image/build.gradle.kts.

Sweep Found These Issues

  • Removing the ly.david.android.compose plugin may lead to missing configurations or dependencies required for Android Compose functionality.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/ui%2Fimage%2Fbuild.gradle.kts#L2-L4 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-436d3c3efd1e35750f12225b564947b7cea50739473484e01dc977834fc8502dR2-R4)

ui/test/screenshot/build.gradle.kts

Switched from an Android-specific Compose plugin to a multiplatform Compose plugin in the build configuration.

Sweep Found These Issues

  • Switching to a multiplatform Compose plugin may introduce compatibility issues with existing Android-specific configurations or dependencies.
  • https://github.com/lydavid/MusicSearch/blob/577355002d44bfbcb3622def7dad52459db01ba9/ui%2Ftest%2Fscreenshot%2Fbuild.gradle.kts#L4 [View Diff](https://github.com/lydavid/MusicSearch/pull/924/files#diff-587837487b5d8d68473ba2bc22203a8e936c8a4418f7fb1b2730b4c91465e93aR4)

.gitignore was not reviewed because our filter identified it as typically a non-human-readable or less important file (e.g., dist files, package.json, images). If this is an error, please let us know.