-
Notifications
You must be signed in to change notification settings - Fork 0
Feature/#7 custom plugin #9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ๊ฐ์์ํฌ์ค๋ฃจ์ด ํ ๋ฆฌํ์คํธ๋ ๋น๋ ๋ก์ง ๋ชจ๋์ ๋์ ํ๊ณ ํ๋ก์ ํธ์ ๋น๋ ๊ตฌ์ฑ์ ํ์คํํ๋ ๋๊ท๋ชจ ๋ฆฌํฉํ ๋ง์ ํฌํจํฉ๋๋ค. ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ณตํต ๋น๋ ํ๋ฌ๊ทธ์ธ ์์ฑ, ๋ค์์คํ์ด์ค ์ค์ ํจ์ ์ถ๊ฐ, ์ฌ๋ฌ ๋ชจ๋์ ๋น๋ ์คํฌ๋ฆฝํธ ๋จ์ํ, ๊ทธ๋ฆฌ๊ณ ์ข ์์ฑ ๊ด๋ฆฌ ๋ฐฉ์ ๋ณ๊ฒฝ์ ํฌํจํฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ
ํ๊ฐ ๋์ ์ด์
๊ด๋ จ๋ ์ ์๋ PR
์ํ์ค ๋ค์ด์ด๊ทธ๋จsequenceDiagram
participant BuildLogic as Build Logic Module
participant Gradle as Gradle Build System
participant Modules as Project Modules
BuildLogic->>Gradle: Apply Convention Plugins
Gradle->>Modules: Configure Build Settings
Modules->>BuildLogic: Use Shared Configuration
BuildLogic->>Gradle: Set Namespace
BuildLogic->>Gradle: Manage Dependencies
์ (ํ ๋ผ์ ๋น๋ ๋ฆฌํฉํ ๋ง ์ถํ์)
๐ชง TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ค! ๊ณ ์ํ์
จ์ต๋๋ค!!
์ ๊ฐ ์์ ์ ํ๋ ๋ฐฉ์์์ ๋ญ๊ฐ ๋ ์๋ก์ด๊ฒ ์ถ๊ฐ๋๊ฑฐ๊ฐ๋ค์. ๋ค์์ ์ฒ์ฒํ ๋ณด๋ฉด์ ์ข ๋ฐฐ์ฐ๊ฒ ์ต๋๋ค ใ
ใ
minorํ ์ฝ๋ฉํธ๋ง ์์ด์ ๋ฐ๋ก mergeํด๋ ๋ ๊ฑฐ๊ฐ์์ (์ธํ ๋ถ๋ถ์ด๋ผ ์ฝ๋ ๋ฆฌ๋ทฐํ ๊ฒ ํฌ๊ฒ ์๋ค์)
ํํธ๊น์ง ๊ธฐ๋ํ๊ฒ ์ต๋๋ค!
|
||
fun Project.setNamespace(name: String) { | ||
androidExtension.apply { | ||
namespace = "com.yapp.app.$name" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ค์น ์ด๊ฑด ์ด๋์ ์ฐธ๊ณ ํ์ ๊ฑด๊ฐ์?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋๋ก์ด๋ ๋์ด์ธ ์ฐธ๊ณ ํ์ต๋๋ค ~
name์ ์ปจ๋ฐด์
์ผ๋ก ๊ด๋ฆฌํ๊ณ ์๋๋ผ๊ตฌ์
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ค ์ ๊ธฐํ๋ค์ ํ๋ ๋ฐฐ์๊ฐ๋๋ค ๐
gradle/libs.versions.toml
Outdated
@@ -1,18 +1,22 @@ | |||
[versions] | |||
agp = "8.7.3" | |||
agp = "8.3.2" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋ฒ์ ๋ด๋ฆฌ์ ์ด์ ๊ฐ ์๋์?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ด๋ฐ ๋น๋ ๊ตฌ์ฑํ ๋ kotlin ๋ฒ์ ์ด๋ ์๋ง๋ค๋ ์ค๋ฅ๊ฐ ๋ ์ ๋ฎ์ถ์ํ๋ก ์งํํ๋๋ฐ ,, ์ง๊ธ์ ์ฌ๋ ค๋ ์ ๋๋ค์ฉ ~
๊ฝค ๋ง์ด ๋ฎ์ท์ด์ ๋ค์ ๋ฒ์ ์
์ํค๋๊ฒ ์ข์๊ฒ ๊ฐ๋ค์ !
gradle/libs.versions.toml
Outdated
activityCompose = "1.8.0" | ||
composeBom = "2024.04.01" | ||
activityCompose = "1.9.0" | ||
composeBom = "2024.05.00" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
24.05๊ฐ ์ต์ ์ด๋๊ฐ์ฉ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ปจ๋ฐด์
๋ง ์ธ์ฐ๊ณ ๋ฒ์ ์ ์ ์ฒด์ ์ผ๋ก ์ฒดํฌ๋ฅผ ์ํ ์ํ์์ด์ ..
๋ค์ pr๋ ํ๋ฒ์ ์ฒดํฌ ํ๋ฒ ์ซ ํด์ ๋ฐ์ํ๋๋ก ํ ๊ฒ์ ~~~~
โ Actions performedReview triggered.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 14
๐ Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
๐ Files selected for processing (29)
app/build.gradle.kts
(2 hunks)app/src/main/java/com/yapp/official/MainActivity.kt
(0 hunks)app/src/main/java/com/yapp/official/ui/theme/Color.kt
(0 hunks)app/src/main/java/com/yapp/official/ui/theme/Theme.kt
(0 hunks)app/src/main/java/com/yapp/official/ui/theme/Type.kt
(0 hunks)build-logic/.gitignore
(1 hunks)build-logic/build.gradle.kts
(1 hunks)build-logic/settings.gradle.kts
(1 hunks)build-logic/src/main/java/com/yapp/app/AppNameExtension.kt
(1 hunks)build-logic/src/main/java/com/yapp/app/ComposeAndroid.kt
(1 hunks)build-logic/src/main/java/com/yapp/app/Extension.kt
(1 hunks)build-logic/src/main/java/com/yapp/app/KotlinAndroid.kt
(1 hunks)build-logic/src/main/java/yapp.android.application.gradle.kts
(1 hunks)build-logic/src/main/java/yapp.android.compose.gradle.kts
(1 hunks)build-logic/src/main/java/yapp.android.feature.gradle.kts
(1 hunks)build-logic/src/main/java/yapp.android.library.gradle.kts
(1 hunks)build-logic/src/main/java/yapp.kotlin.library.gradle.kts
(1 hunks)core/data-api/build.gradle.kts
(1 hunks)core/data/build.gradle.kts
(1 hunks)core/designsystem/build.gradle.kts
(1 hunks)core/domain/build.gradle.kts
(1 hunks)core/model/build.gradle.kts
(1 hunks)core/ui/build.gradle.kts
(1 hunks)feature/home/build.gradle.kts
(1 hunks)feature/login/build.gradle.kts
(1 hunks)feature/notice/build.gradle.kts
(1 hunks)feature/signup/build.gradle.kts
(1 hunks)gradle/libs.versions.toml
(1 hunks)settings.gradle.kts
(2 hunks)
๐ค Files with no reviewable changes (4)
- app/src/main/java/com/yapp/official/ui/theme/Type.kt
- app/src/main/java/com/yapp/official/MainActivity.kt
- app/src/main/java/com/yapp/official/ui/theme/Color.kt
- app/src/main/java/com/yapp/official/ui/theme/Theme.kt
๐ Additional comments (20)
build-logic/.gitignore (1)
1-1
: ๋น๋ ๋๋ ํ ๋ฆฌ ์ ์ธ ์ค์ ์ด ์ ์ ํฉ๋๋ค!๋น๋ ์ฐ์ถ๋ฌผ์ ๋ฒ์ ๊ด๋ฆฌ์์ ์ ์ธํ๋ ๊ฒ์ ์ฌ๋ฐ๋ฅธ ๊ดํ์ ๋๋ค.
core/model/build.gradle.kts (1)
2-2
: ์ปค์คํ ํ๋ฌ๊ทธ์ธ ์ ์ฉ ํ์ธ์ด ํ์ํฉ๋๋ค.
yapp.kotlin.library
ํ๋ฌ๊ทธ์ธ์ผ๋ก ์ ํํ๋ฉด์ Java ํธํ์ฑ ์ค์ ์ด ์ ๊ฑฐ๋์์ต๋๋ค. ๋ค์ ์ฌํญ๋ค์ ํ์ธํด์ฃผ์ธ์:
- Java 17 ์ ๊ทธ๋ ์ด๋๊ฐ ๋ชจ๋ ๋ชจ๋์์ ์ ์์ ์ผ๋ก ์ ์ฉ๋์๋์ง
- ๊ธฐ์กด Java ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ๋ค๊ณผ์ ํธํ์ฑ
โ Verification successful
Java 17 ์ค์ ์ด ์ปค์คํ ํ๋ฌ๊ทธ์ธ์ ํตํด ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฉ๋์์ต๋๋ค.
yapp.kotlin.library
ํ๋ฌ๊ทธ์ธ์ด core ๋ชจ๋๋ค์ ์ผ๊ด๋๊ฒ ์ ์ฉ๋์ด ์์ต๋๋ค.- ํ๋ฌ๊ทธ์ธ์์ Java 17๊ณผ Kotlin JVM 17 ํ๊ฒ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ด ์์ต๋๋ค.
- ๋ค๋ฅธ ๋ชจ๋์์ ์ถฉ๋๋๋ ๋ฒ์ ์ค์ ์ด ๋ฐ๊ฒฌ๋์ง ์์์ต๋๋ค.
๐ Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Java ๋ฒ์ ์ค์ ํ์ธ rg "JavaVersion" -A 2 # Kotlin JVM ํ๊ฒ ์ค์ ํ์ธ rg "jvmTarget" -A 2Length of output: 2179
Script:
#!/bin/bash # ๋ชจ๋ ๋ชจ๋์ build.gradle.kts ํ์ผ์์ ํ๋ฌ๊ทธ์ธ ์ ์ฉ ํ์ธ echo "=== Checking plugin application ===" fd build.gradle.kts --type f --exec rg "id\(\"yapp\.kotlin\.library\"\)" {} -l echo -e "\n=== Checking other Java/Kotlin version settings ===" # ๋ค๋ฅธ Java/Kotlin ๋ฒ์ ์ค์ ์ด ์๋์ง ํ์ธ fd build.gradle.kts --type f --exec rg "(sourceCompatibility|targetCompatibility|jvmTarget)" {} -lLength of output: 446
core/data-api/build.gradle.kts (1)
2-2
: ์ผ๊ด๋ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ์ด ์ ์ฉ๋์์ต๋๋ค!
model
๋ชจ๋๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ปค์คํ ํ๋ฌ๊ทธ์ธ์ด ์ ์ฉ๋์ด ์ผ๊ด์ฑ์ด ์ ์ง๋์์ต๋๋ค.build-logic/src/main/java/yapp.android.library.gradle.kts (1)
1-7
: ๋ชจ๋ ๊ตฌ์ฑ์ด ๊น๋ํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ์ ์ค๊ณ๋์์ต๋๋ค!์๋๋ก์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋์ ์ํ ๊ธฐ๋ณธ ์ค์ ์ด ์ ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, Kotlin ์ค์ ์ ๋ณ๋์ ํจ์๋ก ๋ถ๋ฆฌํ ๊ฒ์ด ์ข์ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค.
build-logic/build.gradle.kts (1)
7-9
: ๋ฒ์ ๊ด๋ฆฌ ๋ฐฉ์ ๊ฐ์ ์ ์ ์๋๋ฆฝ๋๋ค.Gradle ํ๋ฌ๊ทธ์ธ ๋ฒ์ ๋ค์
libs.versions.toml
ํ์ผ์์ ์ค์ ๊ด๋ฆฌํ๊ณ ์๋์ง ํ์ธ์ด ํ์ํฉ๋๋ค. ์ด๋ ๋ฒ์ ์ถฉ๋๊ณผ ์ ๋ฐ์ดํธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋๋ฐ ๋์์ด ๋ฉ๋๋ค.๋ค์ ๋ช ๋ น์ด๋ก ๋ฒ์ ์นดํ๋ก๊ทธ ์ค์ ์ ํ์ธํด๋ณด์ธ์:
โ Verification successful
๋ฒ์ ๊ด๋ฆฌ๊ฐ ์ ์ ํ ๊ตฌํ๋์ด ์์ต๋๋ค.
libs.versions.toml
ํ์ผ์์ ๋ชจ๋ Gradle ํ๋ฌ๊ทธ์ธ ๋ฒ์ ์ด ์ค์ ์ง์ค์์ผ๋ก ๊ด๋ฆฌ๋๊ณ ์์์ ํ์ธํ์ต๋๋ค. Android Gradle Plugin, Kotlin Gradle Plugin, Compose Compiler Plugin ๋ชจ๋ ๋ฒ์ ์นดํ๋ก๊ทธ๋ฅผ ํตํด ์ ์ ํ ๊ด๋ฆฌ๋๊ณ ์์ต๋๋ค.๐ Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash echo "Checking version catalog configuration..." cat gradle/libs.versions.toml 2>/dev/null || echo "libs.versions.toml not found"Length of output: 2657
core/ui/build.gradle.kts (1)
13-16
: UI ๋ชจ๋์ ํ์ํ ์์กด์ฑ์ด ๋๋ฝ๋์์ ์ ์์ต๋๋ค.UI ๋ชจ๋์์๋ ๋ถ๊ตฌํ๊ณ ์ต์ํ์ ์์กด์ฑ๋ง ํฌํจ๋์ด ์์ต๋๋ค. ๋ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ํ์ ์ฌ๋ถ๋ฅผ ๊ฒํ ํด์ฃผ์ธ์:
- androidx.core.ktx
- androidx.lifecycle
- material3
ํ์ฌ ๋ชจ๋์์ ์ฌ์ฉ ์ค์ธ Android UI ์ปดํฌ๋ํธ๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํด๋ณด์ธ์:
feature/home/build.gradle.kts (1)
11-15
: ์์กด์ฑ ์ ๋ฆฌ ๊ฒํ์ฝ์ด ๋ชจ๋ ์์กด์ฑ๋ค์ด ์ ๊ฑฐ๋์์ต๋๋ค. ์ด๋
yapp.android.feature
ํ๋ฌ๊ทธ์ธ์์ ๊ณตํต ์์กด์ฑ์ผ๋ก ๊ด๋ฆฌ๋๋ ๊ฒ์ผ๋ก ๋ณด์ด๋, ๋ค์์ ํ์ธํด์ฃผ์ธ์:
- ์ ๊ฑฐ๋ ์์กด์ฑ๋ค์ด ํ๋ฌ๊ทธ์ธ์ ํฌํจ๋์ด ์๋์ง ํ์ธ
- ํ ์คํธ ๊ด๋ จ ์์กด์ฑ ์ ๊ฑฐ๊ฐ ์๋๋ ๊ฒ์ธ์ง ํ์ธ
feature/login/build.gradle.kts (1)
1-15
: ๋ชจ๋ ๊ฐ ์ผ๊ด์ฑ ํ์ธ
feature/home
๋ชจ๋๊ณผ ๋์ผํ ํจํด์ผ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ผ๊ด์ฑ ์๋ ๊ตฌ์กฐ๋ ์ข์ผ๋, ๋ค์์ ํ์ธํด์ฃผ์ธ์:
- ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ํนํ๋ ์ถ๊ฐ ์ค์ ์ด๋ ์์กด์ฑ์ด ํ์ํ์ง๋ ์์์ง ๊ฒํ
- ๊ธฐ์กด
com.yapp.login
ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋ชจ๋๋ค์ ์ฐธ์กฐ ์ ๋ฐ์ดํธ ํ์โ Verification successful
ํจํค์ง๋ช ๋ณ๊ฒฝ ์์ ์ฑ ํ์ธ ์๋ฃ
ํจํค์ง๋ช ๋ณ๊ฒฝ์ด ๋ค๋ฅธ ๋ชจ๋์ ์ํฅ์ ์ฃผ์ง ์์์ ํ์ธํ์ต๋๋ค. ๋ค๋ง ๋ค์ ์์ ์ด ํ์ํฉ๋๋ค:
ExampleUnitTest.kt
์ExampleInstrumentedTest.kt
์ ํจํค์ง๋ช ์feature.login
์ผ๋ก ์ ๋ฐ์ดํธ ํ์๐ Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # ๋ก๊ทธ์ธ ๊ด๋ จ ํน์ ์์กด์ฑ ํ์ธ rg "com\.yapp\.login"Length of output: 353
Script:
#!/bin/bash # Check for project dependencies referencing login module fd build.gradle.kts --exec grep -l "login" {} \; # Check for imports from login module in other modules rg "^import.*login" --type kotlinLength of output: 143
Script:
#!/bin/bash # Check how login module is referenced in app/build.gradle.kts cat app/build.gradle.ktsLength of output: 579
feature/notice/build.gradle.kts (1)
1-15
: ์ผ๊ด๋ ๊ตฌ์กฐ ์ ์ฉ ํ์ธ๋ค๋ฅธ feature ๋ชจ๋๋ค๊ณผ ๋์ผํ ๊ตฌ์กฐ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ฃผ์ํ ์ :
- ๊ณตํต ํ๋ฌ๊ทธ์ธ์ผ๋ก ์ด๋๋ ์ค์ ๋ค์ด notice ๋ชจ๋์ ์๊ตฌ์ฌํญ์ ๋ชจ๋ ์ถฉ์กฑํ๋์ง ํ์ธ
- ๋ค์์คํ์ด์ค ๋ณ๊ฒฝ(
com.yapp.notice
โfeature.notice
)์ ๋ฐ๋ฅธ ๋ฆฌํฉํ ๋ง ํ์feature/signup/build.gradle.kts (1)
1-15
: ํ์๊ฐ์ ๋ชจ๋ ์ค์ ๊ฒํ๋ค๋ฅธ feature ๋ชจ๋๋ค๊ณผ ๋์ผํ ํจํด์ ๋ฐ๋ฅด๊ณ ์์ต๋๋ค. ํ์ธ์ฌํญ:
- ํ์๊ฐ์ ํ๋ก์ธ์ค์ ํ์ํ ํน์ ์ค์ ์ด๋ ์์กด์ฑ์ด ํ๋ฌ๊ทธ์ธ์์ ๋๋ฝ๋์ง ์์๋์ง ๊ฒํ
- ํจํค์ง๋ช ๋ณ๊ฒฝ์ผ๋ก ์ธํ ์ฐธ์กฐ ์ ๋ฐ์ดํธ ํ์
core/domain/build.gradle.kts (2)
4-4
: ์ปค์คํ ํ๋ฌ๊ทธ์ธ ์ ์ฉ์ด ์ ์ ํฉ๋๋ค.๊ธฐ์กด์ ํ๋ฌ๊ทธ์ธ ๋ณ์นญ ๋์ ์ปค์คํ ์ปจ๋ฒค์ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ๋น๋ ๊ตฌ์ฑ์ ํตํฉํ๋ ๊ฒ์ด ์ข์ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค.
8-8
: ๋ค์์คํ์ด์ค ์ค์ ๋ฐฉ์์ด ๊ฐ์ ๋์์ต๋๋ค.
setNamespace
ํ์ฅ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ๋ค์์คํ์ด์ค๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.build-logic/settings.gradle.kts (2)
1-2
: ํ์ ์์ ํ ํ๋ก์ ํธ ์ ๊ทผ์ ํ์ฑํ๊ฐ ์ ์ ํฉ๋๋ค.
TYPESAFE_PROJECT_ACCESSORS
๊ธฐ๋ฅ์ ํ์ฑํํ์ฌ ํ๋ก์ ํธ ๊ฐ ์์กด์ฑ ์ฐธ์กฐ์ ์์ ์ฑ์ ํฅ์์์ผฐ์ต๋๋ค.
8-11
: ๋ฒ์ ์นดํ๋ก๊ทธ ์ค์ ์ด ์ ์ ํฉ๋๋ค.๊ณตํต ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํด
libs.versions.toml
ํ์ผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. PR ๋ชฉํ์์ ์ธ๊ธ๋ ๋๋ก ์ ์ง์ ์ผ๋ก ๊ตฌ์ฑํด ๋๊ฐ๋ ๊ฒ์ด ํผ๋์ ์ค์ผ ์ ์์ต๋๋ค.build-logic/src/main/java/yapp.android.feature.gradle.kts (2)
1-4
: ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ์ด ์ ์ ํฉ๋๋ค.feature ๋ชจ๋์ ์ํ ๊ธฐ๋ณธ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ์ด ์ ๋์ด์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Compose ํ๋ฌ๊ทธ์ธ์ ํจ๊ป ์ ์ฉํ์ฌ UI ๊ตฌํ์ ํ์ํ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค.
14-19
: ํต์ฌ ๋ชจ๋ ์์กด์ฑ ๊ฒ์ฆ์ด ํ์ํฉ๋๋ค.feature ๋ชจ๋์ ๊ธฐ๋ณธ ์์กด์ฑ์ผ๋ก ์ค์ ๋ core ๋ชจ๋๋ค์ด ๋ชจ๋ feature์์ ์ค์ ๋ก ํ์ํ์ง ํ์ธ์ด ํ์ํฉ๋๋ค.
app/build.gradle.kts (1)
21-23
: ์์กด์ฑ ์ ๋ฆฌ ๊ณํ์ ๊ตฌ์ฒดํํด์ผ ํฉ๋๋ค.Compose ๋ฐ Android ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๊ฑฐ ๊ณํ์ด ์๋๋ฐ, ์ ๊ฑฐ ์์์ ์ํฅ๋๋ฅผ ๋ฏธ๋ฆฌ ๋ถ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
settings.gradle.kts (2)
2-2
: ๋น๋ ๋ก์ง ๋ชจ๋ ํฌํจ์ด ์ ์ ํฉ๋๋ค.์ปค์คํ ์ปจ๋ฒค์ ํ๋ฌ๊ทธ์ธ์ ์ํ
build-logic
๋ชจ๋ ํฌํจ์ด ์ ์ ํฉ๋๋ค. ๋น๋ ๊ตฌ์ฑ์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ํฅ์๋ ๊ฒ์ผ๋ก ๊ธฐ๋๋ฉ๋๋ค.
Line range hint
4-12
: ์ ์ฅ์ ํํฐ๋ง ๊ตฌ์ฑ์ด ์ ์ ํฉ๋๋ค.Google ์ ์ฅ์์ ์ฝํ ์ธ ํํฐ๋ง์ด ์ ์ค์ ๋์ด ์์ต๋๋ค. ํ์ํ ๊ทธ๋ฃน๋ง ํฌํจํ์ฌ ์์กด์ฑ ํด๊ฒฐ ๊ณผ์ ์ ํจ์จ์ฑ์ ๋์์ต๋๋ค.
gradle/libs.versions.toml (1)
16-19
: Gradle ํ๋ฌ๊ทธ์ธ ๋ฒ์ ์ ๊ทธ๋ ์ด๋ ๊ฒํ ํ์์ด์ ๋ฆฌ๋ทฐ์์ ๋ ผ์๋ ๊ฒ์ฒ๋ผ, ํ์ฌ ๋ฎ์ ๋ฒ์ ์ AGP๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋น๋ ์์ ์ฑ์ ์ํด ๋ค์ ์ฌํญ๋ค์ ๊ฒํ ํด์ฃผ์ธ์:
- AGP ๋ฒ์ ์ ๊ทธ๋ ์ด๋ ๊ฐ๋ฅ์ฑ
- Kotlin ๋ฒ์ ๊ณผ์ ํธํ์ฑ
- ๋ค๋ฅธ Gradle ํ๋ฌ๊ทธ์ธ๋ค๊ณผ์ ํธํ์ฑ
๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ ์ต์ ์์ ๋ฒ์ ๋ค์ ํ์ธํด๋ณด์ธ์:
#!/bin/bash # Description: Check latest stable versions of AGP and Kotlin echo "Latest AGP version:" curl -s https://maven.google.com/web/index.html | grep -o 'com.android.tools.build:gradle:[0-9]*\.[0-9]*\.[0-9]*' | sort -V | tail -n 1 echo -e "\nLatest Kotlin version:" curl -s https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/maven-metadata.xml | grep -o '<version>[0-9]*\.[0-9]*\.[0-9]*</version>' | sort -V | tail -n 1
dependencies { | ||
val bom = libs.findLibrary("androidx-compose-bom").get() | ||
add("implementation", platform(bom)) | ||
add("androidTestImplementation", platform(bom)) | ||
|
||
add("implementation", libs.findLibrary("androidx.material3").get()) | ||
add("implementation", libs.findLibrary("androidx.ui").get()) | ||
add("implementation", libs.findLibrary("androidx.ui.tooling.preview").get()) | ||
add("androidTestImplementation", libs.findLibrary("androidx.junit").get()) | ||
add("androidTestImplementation", libs.findLibrary("androidx.espresso.core").get()) | ||
add("androidTestImplementation", libs.findLibrary("androidx.ui.test.junit4").get()) | ||
add("debugImplementation", libs.findLibrary("androidx.ui.tooling").get()) | ||
add("debugImplementation", libs.findLibrary("androidx.ui.test.manifest").get()) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๐ ๏ธ Refactor suggestion
์์กด์ฑ ๊ฒ์ ์คํจ์ ๋ํ ์์ธ ์ฒ๋ฆฌ ํ์
findLibrary().get()
์ ์ง์ ํธ์ถํ๋ฉด ์์กด์ฑ์ ์ฐพ์ง ๋ชปํ์ ๋ ์์ธ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ์์ ํ๋ ๊ฒ์ ์ ์ํฉ๋๋ค:
dependencies {
- val bom = libs.findLibrary("androidx-compose-bom").get()
+ val bom = libs.findLibrary("androidx-compose-bom").getOrNull()
+ ?: error("androidx-compose-bom ์์กด์ฑ์ ์ฐพ์ ์ ์์ต๋๋ค. libs.versions.toml ํ์ผ์ ํ์ธํด์ฃผ์ธ์.")
add("implementation", platform(bom))
// ... ๋ค๋ฅธ ์์กด์ฑ๋ค์๋ ๋์ผํ ํจํด ์ ์ฉ
}
Committable suggestion skipped: line range outside the PR's diff.
val warningsAsErrors: String? by project | ||
allWarningsAsErrors.set(warningsAsErrors.toBoolean()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๐งน Nitpick (assertive)
warningsAsErrors ์์ฑ์ ๊ธฐ๋ณธ๊ฐ ์ค์ ํ์
warningsAsErrors
ํ๋ก์ ํธ ์์ฑ์ด ์์ ๊ฒฝ์ฐ์ ๊ธฐ๋ณธ๊ฐ ์ฒ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ์์ ํ๋ ๊ฒ์ ์ ์ํฉ๋๋ค:
- val warningsAsErrors: String? by project
- allWarningsAsErrors.set(warningsAsErrors.toBoolean())
+ val warningsAsErrors: String? by project
+ allWarningsAsErrors.set(warningsAsErrors?.toBoolean() ?: false)
๐ Committable suggestion
โผ๏ธ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
val warningsAsErrors: String? by project | |
allWarningsAsErrors.set(warningsAsErrors.toBoolean()) | |
val warningsAsErrors: String? by project | |
allWarningsAsErrors.set(warningsAsErrors?.toBoolean() ?: false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@coderabbitai ์์ฑ์ด ์์ ๊ฒฝ์ฐ๊ฐ ์์๊น .... ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ashwon12 ๋ค, ์์ฑ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์์ต๋๋ค. warningsAsErrors
์์ฑ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ค์ ๋ ์ ์์ต๋๋ค:
- gradle.properties ํ์ผ์์ ์ค์
- ๋ช
๋ น์ค ์ธ์๋ก ์ค์ (
-PwarningsAsErrors=true
) - ํ๊ฒฝ ๋ณ์๋ก ์ค์
์ด๋ฌํ ๋ฐฉ๋ฒ์ผ๋ก ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ ์์ฑ์ null์ด ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก warnings as errors๋ CI/CD ํ๊ฒฝ์ด๋ ํน์ ๋น๋ ์ค์ ์์๋ง ํ์ฑํํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ฏ๋ก, ๊ธฐ๋ณธ๊ฐ์ false๋ก ์ค์ ํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
โ๏ธ Learnings added
Learnt from: ashwon12
PR: YAPP-admin/yappu-world-android#9
File: build-logic/src/main/java/com/yapp/app/KotlinAndroid.kt:72-73
Timestamp: 2025-01-10T06:16:27.206Z
Learning: In Kotlin Android projects, the `warningsAsErrors` property controls whether compiler warnings should be treated as errors. This property is typically disabled by default and only enabled in specific environments like CI/CD.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
d1944f5
to
4f7d02e
Compare
๐ก Issue
๐ฑ Key changes
์ปค์คํ ์ปจ๋ฐด์ plugin์ ์ฉ์ผ๋ก ๊ณตํต ๋น๋ ์ฌํญ ํตํฉ
โ To Reviewers
์ปจ๋ฐด์ ๊ด๋ จ
libs.versions.toml
ํ์ผ์ ๊ฐ๋ฐํ๋ฉด์ ์ ๋ฆฌํด๊ฐ๋๊ฒ์ด ๋ ํท๊ฐ๋ฆด๊ฒ ๊ฐ์์ !!!๋ณ๊ฒฝ์ฌํญ
์ฒ์ ์ ์ฉํด ๋ณด๋ ๊ฑฐ๋ผ ๋๋ฝ๋๊ฑฐ๋ ์ ์ ํ์ง ์์ ์ฌ์ฉ์ด ์์ ๊ฒ ๊ฐ์์,, !!!!! ํ์ธ ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค
approve ๋๋ฉด ๋์์ธ์์คํ ๋จธ์ง ํ์ ๋ฆฌ๋ฒ ์ด์ค ๋จธ์งํ๋๋ก ํ๊ฒ ์ต๋๋ค
๋น๊ณ
์ฐธ๊ณ ํ๋ก์ ํธ : Now in Android , DroidKnightsApp
Summary by CodeRabbit
๋น๋ ๊ตฌ์ฑ ๋ณ๊ฒฝ
ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ณ๊ฒฝ
์์กด์ฑ ๊ด๋ฆฌ
๊ฐ๋ฐ ํ๊ฒฝ