From 79c5653d457bc456e5fe6ee78015d16abe1bea1f Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Mon, 7 Sep 2026 14:24:36 +0200 Subject: [PATCH 1/3] build: use Palantir Java Format --- build.gradle.kts | 2 +- buildSrc/call-site-instrumentation-plugin/build.gradle.kts | 2 +- buildSrc/modifiable-config-agent/build.gradle.kts | 2 +- gradle/libs.versions.toml | 2 +- gradle/spotless.gradle | 2 +- test-published-dependencies/build.gradle.kts | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0bb5a4caee6..4679f23800c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -41,7 +41,7 @@ with(extensions["spotlessPredeclare"] as SpotlessExtension) { removeUnusedImports() forbidWildcardImports() - googleJavaFormat(libs.versions.google.java.format.get()) + palantirJavaFormat(libs.versions.palantir.java.format.get()) tableTestFormatter(libs.versions.tabletest.formatter.get()) } groovyGradle { diff --git a/buildSrc/call-site-instrumentation-plugin/build.gradle.kts b/buildSrc/call-site-instrumentation-plugin/build.gradle.kts index 542a4d1ca99..4ea721eaa96 100644 --- a/buildSrc/call-site-instrumentation-plugin/build.gradle.kts +++ b/buildSrc/call-site-instrumentation-plugin/build.gradle.kts @@ -22,7 +22,7 @@ spotless { targetExclude("src/test/resources/**") removeUnusedImports() forbidWildcardImports() - googleJavaFormat(libs.versions.google.java.format.get()) + palantirJavaFormat(libs.versions.palantir.java.format.get()) } } diff --git a/buildSrc/modifiable-config-agent/build.gradle.kts b/buildSrc/modifiable-config-agent/build.gradle.kts index 838800eff6b..1462f1ad75c 100644 --- a/buildSrc/modifiable-config-agent/build.gradle.kts +++ b/buildSrc/modifiable-config-agent/build.gradle.kts @@ -18,7 +18,7 @@ spotless { targetExclude("src/test/resources/**") removeUnusedImports() forbidWildcardImports() - googleJavaFormat(libs.versions.google.java.format.get()) + palantirJavaFormat(libs.versions.palantir.java.format.get()) } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e79e1561762..e74ed0da0b2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ shadow = "9.4.2" spotbugs_annotations = "4.10.3" # Source code formatters -google-java-format = "1.36.1" +palantir-java-format = "2.97.0" greclipse = "4.27" # Pinned. See: https://github.com/diffplug/spotless/issues/3013 ktlint = "1.8.0" scalafmt = "3.11.5" diff --git a/gradle/spotless.gradle b/gradle/spotless.gradle index cb7aaa4d3f8..ab46bf4c4c3 100644 --- a/gradle/spotless.gradle +++ b/gradle/spotless.gradle @@ -49,7 +49,7 @@ spotless { targetExclude('src/test/resources/**', buildDirectory) removeUnusedImports() forbidWildcardImports() - googleJavaFormat(libs.versions.google.java.format.get()) + palantirJavaFormat(libs.versions.palantir.java.format.get()) tableTestFormatter(libs.versions.tabletest.formatter.get()) } } diff --git a/test-published-dependencies/build.gradle.kts b/test-published-dependencies/build.gradle.kts index 20b93d82241..273002ccc5f 100644 --- a/test-published-dependencies/build.gradle.kts +++ b/test-published-dependencies/build.gradle.kts @@ -37,7 +37,7 @@ allprojects { target("src/**/*.java") removeUnusedImports() forbidWildcardImports() - googleJavaFormat(libs.versions.google.java.format.get()) + palantirJavaFormat(libs.versions.palantir.java.format.get()) } } } From 7e70daf97c552c5af73e0428d257055c3203fffe Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Mon, 7 Sep 2026 14:56:55 +0200 Subject: [PATCH 2/3] docs: update Palantir formatting guidance --- AGENTS.md | 4 ++-- CONTRIBUTING.md | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 9aa2409f4e8..cf1270ce904 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -51,13 +51,13 @@ docs/ Developer documentation (see below) ./gradlew :dd-java-agent:shadowJar # Build agent jar only (dd-java-agent/build/libs/) ./gradlew :path:to:module:test # Run tests for a specific module ./gradlew :path:to:module:test -PtestJvm=11 # Test on a specific JVM version -./gradlew spotlessApply # Auto-format code (google-java-format) +./gradlew spotlessApply # Auto-format code (Palantir Java Format) ./gradlew spotlessCheck # Verify formatting ``` ## Code conventions -- **Formatting**: google-java-format enforced via Spotless. Run `./gradlew spotlessApply` before committing. +- **Formatting**: Palantir Java Format enforced via Spotless. Run `./gradlew spotlessApply` before committing. - **Static imports**: Prefer static imports over class-qualified calls for call-style helpers, in both test (Assertions.assertEquals, Mockito.mock) and production code (Collections.emptyList). Wildcard imports disallowed — see CONTRIBUTING.md. - **Documentation**: Use concise Javadoc comments (`/** ... */`) for class, method, and field documentation. - **Instrumentation layout**: `dd-java-agent/instrumentation/{framework}/{framework}-{minVersion}/` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c023a09af5e..07568416274 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,6 +34,9 @@ We have automatic code formatting enabled in Gradle configuration using [Spotles Our main goal is to avoid extensive reformatting caused by different IDEs with different opinions about how things should be formatted by establishing a single _point of truth_. +Java sources use [Palantir Java Format](https://github.com/palantir/palantir-java-format) with its default `PALANTIR` +style: four-space indentation and a 120-character line width. + To reformat all the files that need reformatting: ```bash @@ -55,13 +58,14 @@ For IntelliJ IDEA, we suggest the following settings and plugin. * `Use single class import`: checked * `Class count to use import with '*'`: `9999` (some number sufficiently large that is unlikely to matter) * `Names count to use static import with '*'`: `9999` - * Use the following import layout to ensure consistency with google-java-format: + * Use the following import layout: ![import layout](https://user-images.githubusercontent.com/734411/43430811-28442636-94ae-11e8-86f1-f270ddcba023.png) * top right Settings icon -> `Settings...` ->`Editor` > `Code Style` > `Groovy` > `Imports` * `Class count to use import with '*'`: `9999` (some number sufficiently large that is unlikely to matter) * `Names count to use static import with '*'`: `9999` * To run test in a specific JDK use the `testJvm` property, e.g. `-PtestJvm=11` -* Install the [Google Java Format](https://plugins.jetbrains.com/plugin/8527-google-java-format) plugin +* Install the [Palantir Java Format](https://plugins.jetbrains.com/plugin/13180-palantir-java-format) plugin + * In IntelliJ IDEA settings, search for `palantir-java-format` and enable it for the current project ### Static imports From b2e1ea37d4b15f4ce11e80e2665de2fbe1ff4f7e Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Mon, 7 Sep 2026 15:14:51 +0200 Subject: [PATCH 3/3] build: use Google style with Palantir --- AGENTS.md | 4 ++-- CONTRIBUTING.md | 9 +++++---- build.gradle.kts | 2 +- .../call-site-instrumentation-plugin/build.gradle.kts | 2 +- buildSrc/modifiable-config-agent/build.gradle.kts | 2 +- gradle/spotless.gradle | 2 +- test-published-dependencies/build.gradle.kts | 2 +- 7 files changed, 12 insertions(+), 11 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index cf1270ce904..786295681ed 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -51,13 +51,13 @@ docs/ Developer documentation (see below) ./gradlew :dd-java-agent:shadowJar # Build agent jar only (dd-java-agent/build/libs/) ./gradlew :path:to:module:test # Run tests for a specific module ./gradlew :path:to:module:test -PtestJvm=11 # Test on a specific JVM version -./gradlew spotlessApply # Auto-format code (Palantir Java Format) +./gradlew spotlessApply # Auto-format code (Palantir Java Format, GOOGLE style) ./gradlew spotlessCheck # Verify formatting ``` ## Code conventions -- **Formatting**: Palantir Java Format enforced via Spotless. Run `./gradlew spotlessApply` before committing. +- **Formatting**: Palantir Java Format with `GOOGLE` style enforced via Spotless. Run `./gradlew spotlessApply` before committing. - **Static imports**: Prefer static imports over class-qualified calls for call-style helpers, in both test (Assertions.assertEquals, Mockito.mock) and production code (Collections.emptyList). Wildcard imports disallowed — see CONTRIBUTING.md. - **Documentation**: Use concise Javadoc comments (`/** ... */`) for class, method, and field documentation. - **Instrumentation layout**: `dd-java-agent/instrumentation/{framework}/{framework}-{minVersion}/` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 07568416274..d3ddac90b0c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,8 +34,8 @@ We have automatic code formatting enabled in Gradle configuration using [Spotles Our main goal is to avoid extensive reformatting caused by different IDEs with different opinions about how things should be formatted by establishing a single _point of truth_. -Java sources use [Palantir Java Format](https://github.com/palantir/palantir-java-format) with its default `PALANTIR` -style: four-space indentation and a 120-character line width. +Java sources use [Palantir Java Format](https://github.com/palantir/palantir-java-format) with its `GOOGLE` style: +two-space indentation and a 100-character line width. To reformat all the files that need reformatting: @@ -64,8 +64,9 @@ For IntelliJ IDEA, we suggest the following settings and plugin. * `Class count to use import with '*'`: `9999` (some number sufficiently large that is unlikely to matter) * `Names count to use static import with '*'`: `9999` * To run test in a specific JDK use the `testJvm` property, e.g. `-PtestJvm=11` -* Install the [Palantir Java Format](https://plugins.jetbrains.com/plugin/13180-palantir-java-format) plugin - * In IntelliJ IDEA settings, search for `palantir-java-format` and enable it for the current project +* Format Java sources with the Spotless Gradle tasks above. Do not enable the + [Palantir Java Format](https://plugins.jetbrains.com/plugin/13180-palantir-java-format) plugin for this project: it + currently exposes only the default `PALANTIR` style, while this project uses `GOOGLE`. ### Static imports diff --git a/build.gradle.kts b/build.gradle.kts index 4679f23800c..f8b3fad4b98 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -41,7 +41,7 @@ with(extensions["spotlessPredeclare"] as SpotlessExtension) { removeUnusedImports() forbidWildcardImports() - palantirJavaFormat(libs.versions.palantir.java.format.get()) + palantirJavaFormat(libs.versions.palantir.java.format.get()).style("GOOGLE") tableTestFormatter(libs.versions.tabletest.formatter.get()) } groovyGradle { diff --git a/buildSrc/call-site-instrumentation-plugin/build.gradle.kts b/buildSrc/call-site-instrumentation-plugin/build.gradle.kts index 4ea721eaa96..b362761d25c 100644 --- a/buildSrc/call-site-instrumentation-plugin/build.gradle.kts +++ b/buildSrc/call-site-instrumentation-plugin/build.gradle.kts @@ -22,7 +22,7 @@ spotless { targetExclude("src/test/resources/**") removeUnusedImports() forbidWildcardImports() - palantirJavaFormat(libs.versions.palantir.java.format.get()) + palantirJavaFormat(libs.versions.palantir.java.format.get()).style("GOOGLE") } } diff --git a/buildSrc/modifiable-config-agent/build.gradle.kts b/buildSrc/modifiable-config-agent/build.gradle.kts index 1462f1ad75c..ea4288ec57d 100644 --- a/buildSrc/modifiable-config-agent/build.gradle.kts +++ b/buildSrc/modifiable-config-agent/build.gradle.kts @@ -18,7 +18,7 @@ spotless { targetExclude("src/test/resources/**") removeUnusedImports() forbidWildcardImports() - palantirJavaFormat(libs.versions.palantir.java.format.get()) + palantirJavaFormat(libs.versions.palantir.java.format.get()).style("GOOGLE") } } diff --git a/gradle/spotless.gradle b/gradle/spotless.gradle index ab46bf4c4c3..e9cb67f7326 100644 --- a/gradle/spotless.gradle +++ b/gradle/spotless.gradle @@ -49,7 +49,7 @@ spotless { targetExclude('src/test/resources/**', buildDirectory) removeUnusedImports() forbidWildcardImports() - palantirJavaFormat(libs.versions.palantir.java.format.get()) + palantirJavaFormat(libs.versions.palantir.java.format.get()).style("GOOGLE") tableTestFormatter(libs.versions.tabletest.formatter.get()) } } diff --git a/test-published-dependencies/build.gradle.kts b/test-published-dependencies/build.gradle.kts index 273002ccc5f..6cac599d8af 100644 --- a/test-published-dependencies/build.gradle.kts +++ b/test-published-dependencies/build.gradle.kts @@ -37,7 +37,7 @@ allprojects { target("src/**/*.java") removeUnusedImports() forbidWildcardImports() - palantirJavaFormat(libs.versions.palantir.java.format.get()) + palantirJavaFormat(libs.versions.palantir.java.format.get()).style("GOOGLE") } } }