You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 9da6ae7
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+16-11Lines changed: 16 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -125,7 +125,7 @@ replaced with something a stranger can run.
125
125
| Changelog | Palantir changelog-app (`.changelog.yml`) | Release Drafter, changelog entry in the PR template |
126
126
| Version pinning |`gradle-consistent-versions` (`versions.props` / `versions.lock`) | Version catalog (`gradle/libs.versions.toml`) + Gradle dependency locking |
127
127
| Static analysis |`gradle-baseline`, `baseline-error-prone`, `suppressible-error-prone`, `baseline-null-away`, `.baseline/`|`net.ltgt.errorprone` + NullAway directly; vendor the checkstyle config (checkstyle is disabled in this build today anyway) |
128
-
| JDK provisioning |`gradle-jdks`, `gradle-jdks-latest`, `gradle-jdks-settings`, `gradle/jdks/**`, `palantir.jdk.setup.enabled`|Gradle toolchains + foojay resolver locally; `actions/setup-java`and`graalvm/setup-graalvm` in CI |
128
+
| JDK provisioning |~~`gradle-jdks`, `gradle-jdks-latest`, `gradle-jdks-settings`, `gradle/jdks/**`, `palantir.jdk.setup.enabled`, a patched `gradlew`~~|**Done** — Gradle toolchains resolved from JDKs that mise installs locally and `actions/setup-java`/`graalvm/setup-graalvm` install in CI |
129
129
| Version string |`gradle-git-version` + `CIRCLE_TAG`|`git describe` / `GITHUB_REF_NAME`|
130
130
| API compatibility |`gradle-revapi` (`.palantir/revapi.yml`) | japicmp, or revapi's own plugin |
131
131
| IntelliJ plugin publish |`com.palantir.external-publish-intellij`|`org.jetbrains.intellij.platform` + `publishPlugin` with a marketplace token |
@@ -165,18 +165,19 @@ point at.
165
165
| Gradle plugin | ✅ | — | — | — | — | — |
166
166
| IntelliJ plugin | ✅ | — | — | — | — | — |
167
167
| Eclipse plugin | ✅ | — | — | — | — | — |
168
-
| Native image |⚠️| ✅ | ✅ |❌| ❌ | ❌ |
168
+
| Native image |✅| ✅ | ✅ |✅| ❌ | ❌ |
169
169
170
-
✅ built and uploaded by [`ci.yml`](.github/workflows/ci.yml) · ⚠️ built, but as a side effect of
171
-
`assemble` rather than by a job of its own · ❌ missing · — not applicable
170
+
✅ built and uploaded by [`ci.yml`](.github/workflows/ci.yml) · ❌ missing · — not applicable
171
+
172
+
Every native image now comes from a job of its own, on a GraalVM installed by
173
+
`graalvm/setup-graalvm`, never as a side effect of `./gradlew build` — pass `-PnativeImage=true`
174
+
to wire it back into the lifecycle tasks.
172
175
173
176
Remaining gaps, each a self-contained PR:
174
177
175
-
-[ ] macOS x86-64 (`macos-13` runner)
176
178
-[ ] Windows x86-64 — the coordinate already exists in `NativeImageFormatProviderPlugin`, nothing
177
179
produces the binary
178
180
-[ ] linux musl / Alpine
179
-
-[ ] Give linux x86-64 its own `nativeCompile` job instead of relying on `build`
180
181
181
182
### Phase 2 — Republish under neutral coordinates
182
183
@@ -366,11 +367,15 @@ mise run format # format this repo with the formatter it builds
366
367
mise tasks # everything else
367
368
```
368
369
369
-
The Gradle build provisions its own JDKs — Amazon Corretto 21 for the daemon and GraalVM CE 23 for
370
-
`nativeCompile`, pinned in `gradle/jdks/**` — and ignores whatever is on `PATH`, because
371
-
`gradle.properties` sets `org.gradle.java.installations.auto-detect=false`. The first build
372
-
therefore downloads about 500 MB before it compiles anything. All of it comes from public vendor
373
-
URLs (corretto.aws, github.com/graalvm), not from any private mirror.
370
+
Nothing inside the build downloads a JDK. `mise.toml` pins all three the build uses — Temurin 17
371
+
(library target), Temurin 21 (daemon and runtime target) and GraalVM Community 23 (the native
372
+
image) — and Gradle resolves its toolchains from them; `org.gradle.java.installations.auto-download`
373
+
is off, so a missing JDK is an error you can read rather than a silent download. CI installs the
374
+
same three with `actions/setup-java` and `graalvm/setup-graalvm`.
375
+
376
+
GraalVM specifically has to come from outside Gradle: unpacking a JDK Gradle downloaded itself does
377
+
not preserve the symlink GraalVM ships at `bin/native-image`, and `nativeCompile` then fails on an
Copy file name to clipboardExpand all lines: gradle-palantir-java-format/src/test/java/com/palantir/javaformat/gradle/PalantirJavaFormatIdeaPluginTest.java
+30-36Lines changed: 30 additions & 36 deletions
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,6 @@
13
13
* See the License for the specific language governing permissions and
0 commit comments