diff --git a/.github/workflows/pulsar-ci-flaky.yaml b/.github/workflows/pulsar-ci-flaky.yaml index 94a375dd50c49..6e18be2060cb2 100644 --- a/.github/workflows/pulsar-ci-flaky.yaml +++ b/.github/workflows/pulsar-ci-flaky.yaml @@ -44,6 +44,7 @@ on: options: - '25' - '21' + - '26' default: '25' trace_test_resource_cleanup: description: 'Collect thread & heap information before exiting a test JVM. When set to "on", thread dump and heap histogram will be collected. When set to "full", a heap dump will also be collected.' diff --git a/.github/workflows/pulsar-ci.yaml b/.github/workflows/pulsar-ci.yaml index b6fd17d166aef..6e0c0e2335172 100644 --- a/.github/workflows/pulsar-ci.yaml +++ b/.github/workflows/pulsar-ci.yaml @@ -39,6 +39,7 @@ on: options: - '25' - '21' + - '26' default: '25' trace_test_resource_cleanup: description: 'Collect thread & heap information before exiting a test JVM. When set to "on", thread dump and heap histogram will be collected. When set to "full", a heap dump will also be collected.' diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 62e4f6891f30c..c5d4d6f77987c 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -92,7 +92,7 @@ concurrency model. ## Build infrastructure Apache Pulsar uses a **Gradle** build (migrated from Maven via PIP-463; some older tooling and docs -elsewhere still reference Maven). The wrapper `./gradlew` requires **JDK 21 or 25** (bytecode targets +elsewhere still reference Maven). The wrapper `./gradlew` requires **JDK 21, 25 or 26** (bytecode targets Java 17). See [`CONTRIBUTING.md` → Building](CONTRIBUTING.md#building) for the build and lint commands. - `settings.gradle.kts` — all modules, organized in dependency tiers (Tier 0 has no internal deps, diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 88b0cfa844708..d207b8dd9703d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,7 +29,7 @@ workflow (build, test, PR, CI). For the big-picture module map and the Gradle bu ## Building -**JDK 21 or 25** is required to build `master` (bytecode targets Java 17; `-PskipJavaVersionCheck` +**JDK 21, 25 or 26** is required to build `master` (bytecode targets Java 17; `-PskipJavaVersionCheck` bypasses the check); `zip` is also needed. Use the bundled wrapper `./gradlew` (Linux/macOS) or `gradlew.bat` (Windows) — no separate Gradle install. See the [build-tooling setup guide](https://pulsar.apache.org/contribute/setup-buildtools/) and the diff --git a/README.md b/README.md index 4f2b142d1ee42..a504571e284a9 100644 --- a/README.md +++ b/README.md @@ -172,7 +172,7 @@ for the Gradle build infrastructure and how to change build files. | Pulsar Version | JDK Version | |------------------|:--------------------------------------------------------------------------------:| - | master | [JDK 21](https://adoptium.net/en-GB/temurin/releases?version=21&os=any&arch=any) or [JDK 25](https://adoptium.net/en-GB/temurin/releases?version=25&os=any&arch=any) | + | master | [JDK 21](https://adoptium.net/en-GB/temurin/releases?version=21&os=any&arch=any), [JDK 25](https://adoptium.net/en-GB/temurin/releases?version=25&os=any&arch=any) or [JDK 26](https://adoptium.net/en-GB/temurin/releases?version=26&os=any&arch=any) | | 4.0+ | [JDK 21](https://adoptium.net/en-GB/temurin/releases?version=21&os=any&arch=any) | | 2.11 + | [JDK 17](https://adoptium.net/en-GB/temurin/releases?version=17&os=any&arch=any) | | 2.8 / 2.9 / 2.10 | [JDK 11](https://adoptium.net/en-GB/temurin/releases?version=11&os=any&arch=any) | diff --git a/settings.gradle.kts b/settings.gradle.kts index 28be05724f712..daa0472fce45c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -37,7 +37,7 @@ dependencyResolutionManagement { } } - // override docker-jdk version with -PdockerJavaVersion=21|25 + // override docker-jdk version with -PdockerJavaVersion=21|25|26 val overrideDockerJavaVersion = settings.providers.gradleProperty("dockerJavaVersion") if (overrideDockerJavaVersion.isPresent) { versionCatalogs { @@ -50,11 +50,13 @@ dependencyResolutionManagement { rootProject.name = "pulsar" -// Running this build requires Java 21 or 25. Version check can be skipped with -PskipJavaVersionCheck parameter. +// Running this build requires Java 21, 25 or 26. Version check can be skipped with -PskipJavaVersionCheck parameter. val javaVersion = providers.provider { JavaVersion.current() } -val statisfiedJavaVersion = javaVersion.map { it == JavaVersion.VERSION_21 || it == JavaVersion.VERSION_25 } +val statisfiedJavaVersion = javaVersion.map { + it == JavaVersion.VERSION_21 || it == JavaVersion.VERSION_25 || it == JavaVersion.VERSION_26 +} require(providers.gradleProperty("skipJavaVersionCheck").isPresent || statisfiedJavaVersion.get()) { - "This build requires Java 21 or 25, but is running on Java ${javaVersion.get()}. Pass -PskipJavaVersionCheck to skip this check." + "This build requires Java 21, 25 or 26, but is running on Java ${javaVersion.get()}. Pass -PskipJavaVersionCheck to skip this check." } // ──────────────────────────────────────────────────────────────────────────────