Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/line/armeria --skill upgrade-deps명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | upgrade-deps |
| description | Upgrade Gradle dependencies and Gradle wrapper version |
| disable-model-invocation | true |
This skill performs a full Gradle dependency upgrade for the Armeria project step by step.
Armeria is a multi-module project with different minimum Java version requirements. Before upgrading a dependency, always verify that the new version supports the minimum Java version required by the modules that use it.
| Java Version | Modules |
|---|---|
| 8 | core, brave5, brave6, eureka, grpc, grpc-kotlin, graphql-protocol, jetty9, junit4, junit5, kafka, kotlin, logback, logback12, logback13, micrometer-context, oauth2, prometheus1, protobuf, reactor3, resteasy, retrofit2, rxjava2, rxjava3, sangria, scala*, spring:boot2-*, dropwizard2, thrift0.9–thrift0.17, tomcat8, tomcat9, xds, zookeeper3, saml, bucket4j, consul, nacos |
| 11 | athenz, graphql, jetty10, jetty11, kubernetes, logback14, thrift0.18–thrift0.22, tomcat10 |
| 17 | ai:mcp, jetty12, resilience4j2, spring:boot3-*, spring:spring6, spring:boot4-*, spring:spring7 |
When in doubt, check settings.gradle for the java, java11, or java17 flag on each subproject.
The table above lists published modules only. Integration-test (:it:*) and example (:examples:*)
modules carry their own flags in settings.gradle and are frequently java17 already. A dependency
consumed only by those modules is not held back by the Java 8 baseline at all — always resolve the
actual consumer before assuming a Java constraint applies.
./gradlew dependencyUpdates --no-parallel
The report is saved to build/dependencyUpdates/report.txt.
Read build/dependencyUpdates/report.txt to identify all outdated dependencies.
For each dependency, note the current version and the available latest version.
If a version looks ambiguous (unexpected format, major version bump, unusual naming), verify on Maven Central before proceeding: https://central.sonatype.com/artifact/{groupId}/{artifactId}
Before upgrading any dependency, check dependencies.toml for a comment directly above
its version entry. Many pinned versions have an explicit reason, for example:
# Don't upgrade Caffeine to 3.x that requires Java 11.
caffeine = "2.9.3"
# Upgrade once https://github.com/ronmamo/reflections/issues/279 is fixed.
reflections = "0.9.11"
# Ensure that we use the same ZooKeeper version as what Curator depends on.
zookeeper = "3.9.3"
A hold comment is a claim about this repository, and claims go stale. Never treat a comment as proof — re-derive its reason every upgrade. For each held entry:
[libraries.*] / [plugins] sections.libs.foo.bar for alias foo-bar):
git grep -n 'libs\.foo\.bar' -- '*.gradle' '*.gradle.kts'settings.gradle.java17.If the reason no longer holds, remove the comment and upgrade. If it still holds, keep both.
Two comments were found stale this way (dgs and graphql-kotlin, both consumed only by java17
modules), so treat this step as mandatory rather than a spot check.
When you add a comment, the reason must be something you confirmed, with the evidence to hand:
# Don't upgrade graphql-kotlin to 10.x that migrated to Jackson 3), not a vague "major upgrade deferred".git log -p -- dependencies.toml). Do not invent a sync rule: check whether the two versions have
ever actually moved independently before claiming they must move together.A plausible-sounding reason that nobody verified is worse than no comment, because the next upgrade will trust it.
If no comment exists, proceed with the Java version compatibility check:
dependencies.toml# X.Y requires Java 11)Edit the [versions] section in dependencies.toml to update the version strings.
The file is located at the root of the repository: dependencies.toml.
After editing dependencies.toml, re-read the full diff (git diff dependencies.toml) and
cross-check every changed entry against the dependencyUpdates report:
Check the latest stable Gradle release at https://gradle.org/releases/ and update
gradle/wrapper/gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-X.Y.Z-all.zip
Run the full build including tests to catch both compilation errors and runtime regressions:
./gradlew build --no-daemon
If there are compilation errors, API breaking changes, or test failures caused by the upgrade, fix them before proceeding.
Create a commit with the exact message format below. Follow it strictly — do not add extra sections, reorder bullets, or change the structure:
Update dependencies
- {library-name} {old-version} -> {new-version}
- {library-name} {old-version} -> {new-version}
- Build
- {library-name} {old-version} -> {new-version}
- {library-name} {old-version} -> {new-version}
Rules:
- {name} {old} -> {new}- Build bullet groups build-only dependencies (testImplementation, annotationProcessor,
relocated libs, non-transitive deps); nest them as sub-bullets with 3-space indentgRPC-Java, Jackson, Netty, Kotlin,
Reactor, Logback, Micrometer); otherwise use the key name as-is from dependencies.toml- Build section entirely- Unupdated section with the
reason. This helps reviewers know which upgrades were intentionally skipped.Example:
Update dependencies
- gRPC-Java 1.63.0 -> 1.64.0
- Jackson 2.17.0 -> 2.18.0
- Build
- checkstyle 10.14.0 -> 10.17.0
- ErrorProne 2.27.0 -> 2.28.0
- Unupdated
- Caffeine 2.9.3 -> 3.2.0 (requires Java 11)
- ZooKeeper 3.9.3 (pinned to Curator's version)
SOC 직업 분류 기준