From 0f571079ec6bf3bf146eb4a1d701391360d87c6c Mon Sep 17 00:00:00 2001
From: Werner Dietl
Date: Tue, 13 Oct 2026 23:14:11 -0400
Subject: [PATCH 1/2] Do not show the deprecation warnings of the Gradle
eclipse tasks in CI
Gradle 9.8 deprecates the tasks that generate Eclipse files (eclipse,
eclipseProject, cleanEclipse, ...). test-misc.sh runs them with
--warning-mode=all, which prints one deprecation warning per task.
The tasks are still the documented setup for VS Code and Eclipse, so keep
running them, but without the warnings, and note the deprecation in the
Developer Manual.
Co-Authored-By: Claude Sonnet 5.5
---
checker/bin-devel/test-misc.sh | 6 ++++--
docs/developer/developer-manual.html | 3 +++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/checker/bin-devel/test-misc.sh b/checker/bin-devel/test-misc.sh
index d8f66592a821..7d10155b1c67 100755
--- a/checker/bin-devel/test-misc.sh
+++ b/checker/bin-devel/test-misc.sh
@@ -59,8 +59,10 @@ git diff --exit-code docs/manual/contributors.tex \
# Checker Framework into IDEs like IntelliJ works.
./gradlew tasks --all --warning-mode=all
-# Check Eclipse and IDE project configuration generation
-./gradlew cleanEclipse eclipse --warning-mode=all
+# Check Eclipse and IDE project configuration generation.
+# Gradle 9.8 deprecates the tasks that generate Eclipse files, so do not show their deprecation
+# warnings. They are still needed for VS Code and Eclipse; see the Developer Manual.
+./gradlew cleanEclipse eclipse
# Check that modern APIs are used
./gradlew modernizer
diff --git a/docs/developer/developer-manual.html b/docs/developer/developer-manual.html
index f0c97892874e..cc2f86f335f2 100644
--- a/docs/developer/developer-manual.html
+++ b/docs/developer/developer-manual.html
@@ -289,6 +289,9 @@ IDE configuration
This ensures generated files are not put in the standard ../bin/ directories.
If you switch branches or update Gradle dependencies, run
./gradlew cleanEclipse eclipse to reset and regenerate the IDE configuration.
+Gradle deprecates these tasks and will remove them in Gradle 10, because IDEs can import Gradle
+projects directly; the customizations in build.gradle (eclipse.classpath)
+still apply to that import.
From 2c7b357a39231d7560a2d4783356c0e6d806170c Mon Sep 17 00:00:00 2001
From: Werner Dietl
Date: Wed, 14 Oct 2026 00:18:36 -0400
Subject: [PATCH 2/2] Remove the Gradle eclipse plugin
Gradle deprecates the tasks that generate IDE files, since IDEs import
Gradle projects directly. Remove the plugin, its eclipse.classpath
customization, the CI step that ran the tasks, and the Developer Manual
instructions to run them.
Co-Authored-By: Claude Sonnet 5.5
---
build.gradle | 23 -----------------------
checker/bin-devel/test-misc.sh | 5 -----
docs/developer/developer-manual.html | 11 -----------
3 files changed, 39 deletions(-)
diff --git a/build.gradle b/build.gradle
index a6d160889d0b..105b562bdba8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -12,8 +12,6 @@ plugins {
id("java")
// https://github.com/tbroyer/gradle-errorprone-plugin
alias(libs.plugins.net.ltgt.errorprone)
- // https://docs.gradle.org/current/userguide/eclipse_plugin.html
- id("eclipse")
// To show task list as a tree, run: ./gradlew taskTree
alias(libs.plugins.com.dorongold.task.tree)
// This is a locally built "plugin" that contains the spotless configuration. It is in
@@ -149,7 +147,6 @@ allprojects { currentProj ->
group = "io.github.eisop"
apply plugin: "java"
- apply plugin: "eclipse"
apply plugin: "com.gradleup.shadow"
apply plugin: "de.undercouch.download"
apply plugin: "net.ltgt.errorprone"
@@ -216,26 +213,6 @@ allprojects { currentProj ->
subprojects.each { sp -> allProjects project(sp.path) }
}
- eclipse.classpath {
- defaultOutputDir = file("build/default")
- file.whenMerged { cp ->
- // Remove bare "src/main" source folder entries that cause Eclipse nesting errors.
- // See https://github.com/eisop/checker-framework/issues/2130 for a permanent cleanup.
- cp.entries.removeAll { e ->
- e instanceof org.gradle.plugins.ide.eclipse.model.SourceFolder && e.path == "src/main"
- }
-
- cp.entries.forEach { cpe ->
- if (cpe instanceof org.gradle.plugins.ide.eclipse.model.SourceFolder) {
- cpe.output = cpe.output.replace "bin/", "build/classes/java/"
- }
- if (cpe instanceof org.gradle.plugins.ide.eclipse.model.Output) {
- cpe.path = cpe.path.replace "bin/", "build/"
- }
- }
- }
- }
-
ext {
// The add-export and add-open arguments for compiling and for running the Checker Framework.
// Keep these lists in sync with the lists in CheckerMain#getExecArguments,
diff --git a/checker/bin-devel/test-misc.sh b/checker/bin-devel/test-misc.sh
index 7d10155b1c67..e54217b5a5d1 100755
--- a/checker/bin-devel/test-misc.sh
+++ b/checker/bin-devel/test-misc.sh
@@ -59,11 +59,6 @@ git diff --exit-code docs/manual/contributors.tex \
# Checker Framework into IDEs like IntelliJ works.
./gradlew tasks --all --warning-mode=all
-# Check Eclipse and IDE project configuration generation.
-# Gradle 9.8 deprecates the tasks that generate Eclipse files, so do not show their deprecation
-# warnings. They are still needed for VS Code and Eclipse; see the Developer Manual.
-./gradlew cleanEclipse eclipse
-
# Check that modern APIs are used
./gradlew modernizer
diff --git a/docs/developer/developer-manual.html b/docs/developer/developer-manual.html
index cc2f86f335f2..05f9b0856abe 100644
--- a/docs/developer/developer-manual.html
+++ b/docs/developer/developer-manual.html
@@ -283,17 +283,6 @@ IDE configuration
If your IDE cannot find com.sun.source.* packages, try changing the project JDK to JDK 11 or JDK 17.
-
-For VS Code and Eclipse, run ./gradlew eclipse before running
-the IDE for the first time.
-This ensures generated files are not put in the standard ../bin/ directories.
-If you switch branches or update Gradle dependencies, run
-./gradlew cleanEclipse eclipse to reset and regenerate the IDE configuration.
-Gradle deprecates these tasks and will remove them in Gradle 10, because IDEs can import Gradle
-projects directly; the customizations in build.gradle (eclipse.classpath)
-still apply to that import.
-
-
For VS Code users, install the recommended "Extension Pack for Java"
(vscjava.vscode-java-pack). Recommended workspace settings and extension