Skip to content

Upgrade deps for Armeria 1.37.0#1274

Merged
jrhee17 merged 5 commits intoline:mainfrom
jrhee17:deps/0.81.0
Mar 11, 2026
Merged

Upgrade deps for Armeria 1.37.0#1274
jrhee17 merged 5 commits intoline:mainfrom
jrhee17:deps/0.81.0

Conversation

@jrhee17
Copy link
Contributor

@jrhee17 jrhee17 commented Mar 11, 2026

Modifications

  • localCluster is set only if the local cluster is set to avoid pgv validation exceptions

Dependencies

  • Armeria 1.36.0 → 1.37.0
  • gRPC Java 1.78.0 → 1.79.0
  • Jackson 2.21.0 → 2.21.1
  • Kubernetes Client 7.5.2 → 7.6.1
  • Micrometer 1.16.2 → 1.16.4
  • Nimbus JOSE + JWT 10.7 → 10.8
  • Spring Boot 4 4.0.2 → 4.0.3

Misc) timeout for e2e tests has been increased to handle failure: https://github.com/line/centraldogma/actions/runs/22931861466/job/66559027587

@jrhee17 jrhee17 added this to the 0.81.0 milestone Mar 11, 2026
@coderabbitai
Copy link

coderabbitai bot commented Mar 11, 2026

📝 Walkthrough

Walkthrough

Refactors XDS static resource construction to conditionally include the local cluster, bumps multiple dependency versions, upgrades the Gradle wrapper to 9.4.0 and switches wrapper invocation to JAR mode, and increases Playwright webServer timeouts.

Changes

Cohort / File(s) Summary
XDS Cluster Resource Optimization
client/java-armeria-xds/src/main/java/com/linecorp/centraldogma/client/armeria/xds/XdsCentralDogmaBuilder.java
Use a StaticResources.Builder that always adds bootstrapCluster() but only adds localCluster when it's not the default instance; replaces prior inline StaticResources construction.
Dependency Version Bumps
dependencies.toml
Bumped versions: armeria 1.36.0→1.37.0, grpc-java 1.78.0→1.79.0, jackson 2.21.0→2.21.1, kubernetes-client 7.5.2→7.6.1, micrometer 1.16.2→1.16.4, mockito 5.21.0→5.22.0, nimbus-jose-jwt 10.7→10.8, spring-boot4 4.0.2→4.0.3; updated micrometer javadoc refs.
Gradle Wrapper & Scripts
gradle/wrapper/gradle-wrapper.properties, gradlew, gradlew.bat
Upgraded Gradle distribution to 9.4.0, added zipStorePath, and switched wrapper invocation from classpath/GradleWrapperMain to -jar mode; added SPDX Apache-2.0 header and adjusted path handling.
Playwright Timeout Increase
webapp/playwright.config.ts
Added timeout: 120000 to both webServer entries to increase server startup wait for tests.

Sequence Diagram(s)

(Skipped — changes do not introduce a new multi-component sequential feature requiring visualization.)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • trustin
  • ikhoon
  • minwoox

Poem

🐰 I hopped through code with eager cheer,
Bootstrap stayed, local cluster near,
Gradle jars now hum and sing,
Versions lifted on spring's wing,
Tests wait longer — build delight!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Upgrade deps for Armeria 1.37.0' accurately summarizes the primary objective of the pull request, which is upgrading multiple dependencies with Armeria 1.37.0 as the main focus.
Description check ✅ Passed The pull request description clearly describes the changes made: modifications to localCluster handling, dependency version upgrades, and e2e test timeout adjustments.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
dependencies.toml (1)

80-80: ⚠️ Potential issue | 🟡 Minor

Snappy version mismatch with PR objectives.

The PR description states Snappy should be upgraded from 1.1.10.5 to 1.1.10.8, but this file still shows snappy = "1.1.10.5". Was this intentional due to Curator compatibility requirements (as noted in the comment on lines 78-79), or was this update missed?

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dependencies.toml` at line 80, The dependencies.toml still pins Snappy to
"1.1.10.5" while the PR states it should be upgraded to "1.1.10.8"; either
update the snappy line to snappy = "1.1.10.8" or add a clear comment next to the
snappy dependency explaining why "1.1.10.5" is intentionally retained for
Curator compatibility (referencing the existing Curator compatibility note), and
run dependency checks to ensure no compatibility breakage.
🧹 Nitpick comments (1)
client/java-armeria-xds/src/main/java/com/linecorp/centraldogma/client/armeria/xds/XdsCentralDogmaBuilder.java (1)

281-293: Consider conditionally setting localClusterName for consistency.

The change correctly avoids adding the default localCluster to static resources. However, on line 289, setLocalClusterName(localCluster.getName()) is still called unconditionally. When localCluster is the default instance, this sets an empty string as the local cluster name in ClusterManager.

If an empty local cluster name is semantically different from not setting it at all, you may want to make this conditional as well:

💡 Optional: Conditionally set local cluster name
+        final ClusterManager.Builder clusterManagerBuilder = ClusterManager.newBuilder();
+        if (localCluster != Cluster.getDefaultInstance()) {
+            clusterManagerBuilder.setLocalClusterName(localCluster.getName());
+        }
         final Bootstrap bootstrap =
                 Bootstrap.newBuilder()
-                         .setClusterManager(ClusterManager.newBuilder()
-                                                          .setLocalClusterName(localCluster.getName()))
+                         .setClusterManager(clusterManagerBuilder)
                          .setDynamicResources(dynamicResources)

If an empty string is acceptable and doesn't trigger pgv validation issues, the current implementation is fine.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@client/java-armeria-xds/src/main/java/com/linecorp/centraldogma/client/armeria/xds/XdsCentralDogmaBuilder.java`
around lines 281 - 293, The Bootstrap builder currently always calls
ClusterManager.newBuilder().setLocalClusterName(localCluster.getName()), which
will set an empty name when localCluster == Cluster.getDefaultInstance(); change
this to only call setLocalClusterName when localCluster is not
Cluster.getDefaultInstance() (i.e., guard the call that sets localClusterName
using the same condition used for adding to staticResourcesBuilder), so modify
the ClusterManager building logic in XdsCentralDogmaBuilder to conditionally
setLocalClusterName based on localCluster != Cluster.getDefaultInstance().
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@dependencies.toml`:
- Line 80: The dependencies.toml still pins Snappy to "1.1.10.5" while the PR
states it should be upgraded to "1.1.10.8"; either update the snappy line to
snappy = "1.1.10.8" or add a clear comment next to the snappy dependency
explaining why "1.1.10.5" is intentionally retained for Curator compatibility
(referencing the existing Curator compatibility note), and run dependency checks
to ensure no compatibility breakage.

---

Nitpick comments:
In
`@client/java-armeria-xds/src/main/java/com/linecorp/centraldogma/client/armeria/xds/XdsCentralDogmaBuilder.java`:
- Around line 281-293: The Bootstrap builder currently always calls
ClusterManager.newBuilder().setLocalClusterName(localCluster.getName()), which
will set an empty name when localCluster == Cluster.getDefaultInstance(); change
this to only call setLocalClusterName when localCluster is not
Cluster.getDefaultInstance() (i.e., guard the call that sets localClusterName
using the same condition used for adding to staticResourcesBuilder), so modify
the ClusterManager building logic in XdsCentralDogmaBuilder to conditionally
setLocalClusterName based on localCluster != Cluster.getDefaultInstance().

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 03ea4c03-5901-4a2a-a842-b30c828a7075

📥 Commits

Reviewing files that changed from the base of the PR and between 6dc6ac6 and 716904b.

⛔ Files ignored due to path filters (1)
  • gradle/wrapper/gradle-wrapper.jar is excluded by !**/*.jar
📒 Files selected for processing (5)
  • client/java-armeria-xds/src/main/java/com/linecorp/centraldogma/client/armeria/xds/XdsCentralDogmaBuilder.java
  • dependencies.toml
  • gradle/wrapper/gradle-wrapper.properties
  • gradlew
  • gradlew.bat

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
webapp/playwright.config.ts (1)

55-71: Hoist the shared web server timeout into a constant.

120 * 1000 is now duplicated across both server entries. Pulling it into one constant keeps future tuning in sync and makes the intent clearer.

♻️ Proposed refactor
+const webServerTimeout = 120 * 1000;
+
 export default defineConfig({
@@
   webServer: [
     {
       command: 'npm run backend',
       url: 'http://127.0.0.1:36462/monitor/l7check',
       reuseExistingServer: !process.env.CI,
-      timeout: 120 * 1000,
+      timeout: webServerTimeout,
       stdout: 'ignore',
       stderr: 'pipe',
     },
     {
       command: 'npm run develop',
       url: 'http://127.0.0.1:3000',
       reuseExistingServer: !process.env.CI,
-      timeout: 120 * 1000,
+      timeout: webServerTimeout,
       stdout: 'ignore',
       stderr: 'pipe',
     },
   ],
 });
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@webapp/playwright.config.ts` around lines 55 - 71, The duplicated numeric
timeout (120 * 1000) used in the webServer entries should be hoisted into a
single constant to avoid drift; create a top-level constant (e.g., const
WEB_SERVER_TIMEOUT = 120 * 1000) and replace both timeout: 120 * 1000
occurrences inside the webServer array with timeout: WEB_SERVER_TIMEOUT so
future tuning is centralized and intent is clear (refer to the webServer array
in playwright.config.ts).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@webapp/playwright.config.ts`:
- Around line 55-71: The duplicated numeric timeout (120 * 1000) used in the
webServer entries should be hoisted into a single constant to avoid drift;
create a top-level constant (e.g., const WEB_SERVER_TIMEOUT = 120 * 1000) and
replace both timeout: 120 * 1000 occurrences inside the webServer array with
timeout: WEB_SERVER_TIMEOUT so future tuning is centralized and intent is clear
(refer to the webServer array in playwright.config.ts).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 13b1f2db-7a72-4adb-a03b-6518d26f0638

📥 Commits

Reviewing files that changed from the base of the PR and between 716904b and b4f2dc7.

📒 Files selected for processing (1)
  • webapp/playwright.config.ts

@jrhee17 jrhee17 marked this pull request as ready for review March 11, 2026 02:52
Copy link
Contributor

@ikhoon ikhoon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍👍

Copy link
Contributor

@minwoox minwoox left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 👍 👍

@jrhee17 jrhee17 merged commit 3b17ec4 into line:main Mar 11, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants