dependabot[bot] opened a new pull request, #421: URL: https://github.com/apache/grails-intellij-plugin/pull/421
Bumps [org.jetbrains.intellij.platform:intellij-platform-gradle-plugin](https://github.com/JetBrains/intellij-platform-gradle-plugin) from 2.18.1 to 2.19.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/JetBrains/intellij-platform-gradle-plugin/releases">org.jetbrains.intellij.platform:intellij-platform-gradle-plugin's releases</a>.</em></p> <blockquote> <h2>2.19.0</h2> <h3>Added</h3> <ul> <li>Add the incubating <code>subscriptionKey</code> file property to the <code>intellijPlatform</code> extension and <code>PrepareSandboxTask</code>. It copies the key to <code>config/idea.key</code> and enables the Ultimate module in the prepared sandbox. The <code>org.jetbrains.intellij.platform.subscriptionKey</code> Gradle property configures the project default.</li> <li>Add per-plugin bundled-library exclusions with <code>plugin(...) { excludeBundledLibrary("*foo-.jar") }</code>, applied consistently to project classpaths and sandbox installations <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/587">JetBrains/intellij-platform-gradle-plugin#587</a></li> <li>Add <code>intellijPlatform.nativeVariants</code> DSL and <code>buildPluginVariants</code> tasks for creating Linux, macOS, and Windows plugin distributions targeting <code>x86_64</code> and <code>arm64</code> architectures. Native variant compatibility must start at IntelliJ Platform 2026.1 (<code>since-build</code> 261).</li> <li>Add <code>testFrameworks()</code> dependency helpers for configuring multiple <code>TestFrameworkType</code> values in one call <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2194">JetBrains/intellij-platform-gradle-plugin#2194</a></li> <li>Expand <code>TestFrameworkType.Plugin</code> with IJent, ML completion, navigation bar, Python, RD client, Rider, and statistics test frameworks.</li> <li>Add <code>TestFrameworkType.JUnit5CodeInsight</code> for the <code>com.jetbrains.intellij.platform:test-framework-junit5-code-insight</code> library, which provides the JUnit 5 code-insight fixtures <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2239">JetBrains/intellij-platform-gradle-plugin#2239</a></li> <li>Add sandbox-specific runtime classpath configurations for applying dependency exclusions to every <code>PrepareSandboxTask</code> without changing project compile or test classpaths <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2177">JetBrains/intellij-platform-gradle-plugin#2177</a></li> <li>Add <code>org.jetbrains.intellij.platform.testIdeBundledPluginsClasspathEnabled</code> property to control whether bundled plugins declared in <code>product-info.json</code> are added to test classpaths. It defaults to <code>true</code>; set it to <code>false</code> to opt out.</li> <li>Add <code>DumpProductsReleasesTask</code> to support dumping IntelliJ Platform product releases for Plugin DevKit plugin purposes</li> <li>Print a lifecycle-level <code>IDE logs: <sandbox>/log/idea.log</code> line when launching <code>runIde</code>, <code>runIdeBackend</code>, <code>runIdeFrontend</code>, and <code>runIdeSplitMode</code> (one line per process, with backend and frontend paths in Split Mode), so the sandbox IDE log path is visible at the default Gradle log level</li> <li>Support <code>latest</code> and <code>Constraints.LATEST_VERSION</code> as the version of installer-based IntelliJ Platform dependencies and custom testing configurations, resolving the newest release across all channels for the requested platform type <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/1628">JetBrains/intellij-platform-gradle-plugin#1628</a></li> </ul> <h3>Changed</h3> <ul> <li>Organize plugin tasks into dedicated Gradle task groups instead of a single <code>intellij platform</code> group: keep build/run/publishing tasks (<code>buildPlugin</code>, <code>buildPluginVariants</code>, <code>signPlugin</code>, <code>publishPlugin</code>, <code>runIde</code>, <code>testIde</code>, <code>testIdeUi</code>, …) in <code>intellij platform</code>, move verification tasks (<code>verifyPlugin</code>, <code>verifyPluginProjectConfiguration</code>, <code>verifyPluginSignature</code>, <code>verifyPluginStructure</code>, <code>testIdePerformance</code>) to <code>intellij platform verification</code>, move informational tasks (<code>printBundledPlugins</code>, <code>printBundledModules</code>, <code>printProductsReleases</code>) to <code>intellij platform info</code>, and hide internal/plumbing tasks (e.g. <code>composedJar</code>, <code>instrumentCode</code>, <code>generateManifest</code>, <code>patchPluginXml</code>, <code>prepareSandbox</code>, <code>buildSearchab leOptions</code>, and the per-target <code>buildPluginVariants_<os>_<arch></code> tasks) from the task list <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/1886">JetBrains/intellij-platform-gradle-plugin#1886</a></li> <li>Fully honor Gradle's <code>--offline</code> mode across the plugin's custom, out-of-band network paths. When the build runs offline, the plugin no longer fetches product releases listings, installer/IDE download URLs, <code>latest</code>/<code>LATEST-EAP-SNAPSHOT</code> resolution, JetBrains Marketplace listings via the localhost shim, or <code>maven-metadata.xml</code>; it reuses already-cached artifacts and fails fast with a clear, actionable message naming the missing artifact instead of hanging or throwing an opaque network error. The offline flag is captured at configuration time from <code>StartParameter.isOffline</code> and threaded into each path as a tracked input to keep configuration cache correct.</li> <li>Avoid bundling dependencies already provided by the IntelliJ Platform: exclude Kotlin stdlib and Kotlin Coroutines dependencies from sandbox runtime classpaths by default, and default <code>kotlin.stdlib.default.dependency</code> to <code>false</code> for projects using the IntelliJ Platform settings plugin while preserving an explicitly configured value. Set <code>org.jetbrains.intellij.platform.useDefaultSandboxExclusions=false</code> to opt out of the sandbox exclusions <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2177">JetBrains/intellij-platform-gradle-plugin#2177</a></li> <li>Run the IntelliJ Plugin Verifier against each verified IDE's own bundled JetBrains Runtime (JBR) instead of the runtime used to build the plugin, so plugin classes are resolved against the correct runtime per IDE. The <code>verifyPlugin</code> task no longer passes <code>-runtime-dir</code> by default; the resolved runtime is exposed via <code>JAVA_HOME</code> and used only as a fallback for IDEs without a bundled JBR. Set <code>intellijPlatform { pluginVerification { useBundledRuntime = false } }</code> (or the <code>verifyPlugin</code> task's <code>useBundledRuntime</code> property) to restore the previous behavior of forcing the build runtime for all IDEs <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/1611">JetBrains/intellij-platform-gradle-plugin#1611</a></li> </ul> <h3>Removed</h3> <ul> <li>Removed the deprecated <code>setupDependencies</code> task (<code>SetupDependenciesTask</code>), a legacy leftover from the <code>1.x</code>→<code>2.x</code> migration. The IntelliJ Platform dependency is now declared directly in Gradle dependencies, so the task is no longer needed. Remove any references to <code>setupDependencies</code> (including "After Sync" Gradle triggers). This is a breaking change and updates the plugin's public API.</li> </ul> <h3>Fixed</h3> <ul> <li>Respect <code>kotlin.stdlib.default.dependency</code> values declared in subproject <code>gradle.properties</code> files when checking for a Kotlin stdlib dependency conflict <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/1789">JetBrains/intellij-platform-gradle-plugin#1789</a></li> <li>Honor an explicitly configured Java version when computing the <code>org.gradle.jvm.version</code> attribute of the published <code>intellijPlatformComposedJar</code> and <code>intellijPlatformDistribution</code> variants (and the corresponding compilation). The target IntelliJ Platform Java version is now applied only through the Java toolchain, so Gradle natively derives <code>sourceCompatibility</code>/<code>targetCompatibility</code> and every supported way of configuring the Java level is respected — <code>java { sourceCompatibility / targetCompatibility }</code>, <code>java { toolchain { languageVersion } }</code>, <code>tasks.compileJava { options.release }</code>, and <code>tasks.withType<JavaCompile> { targetCompatibility }</code>. As part of this change, the plugin no longer sets an implicit <code>options.release</code> convention on <code>JavaCompile</code> tasks; <code>compileJava.options.release</code> is now <code>null</code> unless configured explicitly (the default bytecode target is unchanged and still follows the target platform via the toolchain) <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/1772">JetBrains/intellij-platform-gradle-plugin#1772</a></li> <li>Fail the <code>verifyPlugin</code> task based on the IntelliJ Plugin Verifier report files instead of parsing its console output, so verification problems matching the configured <code>failureLevel</code> fail the build even when <code>teamCityOutputFormat</code> is enabled. The task now fails closed when the verifier produces no verdict (e.g. an unparseable plugin artifact, detected from both plain and TeamCity output), and rejects combining the <code>NOT_DYNAMIC</code> failure level with <code>teamCityOutputFormat</code> (including via <code>FailureLevel.ALL</code>, which contains <code>NOT_DYNAMIC</code>) since that status is neither persisted nor emitted as a TeamCity message <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/1739">JetBrains/intellij-platform-gradle-plugin#1739</a></li> <li>Keep test dependencies that differ only by a classifier on the classpath. Since <code>2.2.0</code> the plugin forced the <code>composed-jar</code> library-elements attribute on the whole compile, test-compile, and test-runtime classpaths, so an external module pulled both plain and through a transitive <code>:tests</code> classifier collapsed to a single <code>composed-jar</code> node and its classifier artifact was dropped, which broke <code>compileTestJava</code>/<code>compileTestKotlin</code>. The attribute is now requested per project dependency, so the project's own instrumented and composed modules still resolve through <code>composed-jar</code> while third-party modules use standard Gradle variant selection <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/1889">JetBrains/intellij-platform-gradle-plugin#1889</a></li> <li>Resolve MPS installer download URLs using the release revision directory.</li> <li>Map the DataGrip product releases catalog code <code>DG</code> to the <code>DB</code> platform code so DataGrip installer download URLs resolve correctly <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2210">JetBrains/intellij-platform-gradle-plugin#2210</a></li> <li>Parse <code>hdiutil info</code> property-list output when detaching stale DMG images, avoiding partition-type GUIDs being passed to <code>hdiutil detach</code> <a href="https://youtrack.jetbrains.com/issue/IJPL-253360">IJPL-253360</a></li> <li>Serialize code instrumentation tasks within each project to prevent concurrent access to Gradle's shared Ant builder <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2193">JetBrains/intellij-platform-gradle-plugin#2193</a></li> <li>Regression. Include unified IntelliJ IDEA 2025.3+ releases in the default Plugin Verifier IDE selection when targeting IntelliJ IDEA Community.</li> <li>Change duplicates strategy in PrepareSandboxTask to <code>WARN</code> <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2191">JetBrains/intellij-platform-gradle-plugin#2191</a></li> <li>Restore GrammarKit generator tasks as source-set directories for exclusively owned output roots while preserving precise output tracking for shared roots <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2186">JetBrains/intellij-platform-gradle-plugin#2186</a></li> <li>Resolve the <code>testFramework(...)</code> dependency declared inside a custom <code>intellijPlatformTesting.testIde</code> block against that task's own target IntelliJ Platform build number instead of the base project platform, so a custom task targeting a different <code>type</code>, <code>version</code>, or <code>localPath</code> no longer resolves the test framework for the wrong build <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/1993">JetBrains/intellij-platform-gradle-plugin#1993</a></li> <li>Fix <code>verifyPluginSignature</code> failing with <code>Invalid argument: -----BEGIN CERTIFICATE-----</code> when the certificate chain is provided as content, such as via the <code>CERTIFICATE_CHAIN</code> environment variable. The verify task passed the raw certificate content as an extra CLI argument on top of the <code>-cert</code> temporary file path; it now passes only the file path, matching the <code>certificateChainFile</code> case <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2008">JetBrains/intellij-platform-gradle-plugin#2008</a></li> <li>Write local Ivy descriptors for platform artifacts atomically and guard them with a cross-process file lock, so a shared <code>localPlatformArtifacts</code> cache no longer produces truncated/empty descriptors (<code>unexpected end of file</code>, <code>Could not resolve bundledPlugin:…</code>) when multiple Gradle worker processes write concurrently with IntelliJ's parallel Gradle model fetching enabled. On Windows the atomic replace is retried with a short backoff when a concurrent reader still holds the descriptor open, avoiding sharing-violation failures without ever exposing a half-written file <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2068">JetBrains/intellij-platform-gradle-plugin#2068</a></li> <li>Resolve the <code>PY</code> product code to the unified <code>PyCharm</code> (installer <code>python/pycharm</code>) for 2025.3+ so that PyCharm targets requested via <code>platformType = PY</code> no longer fail with <code>Couldn't resolve PyCharmProfessional download URL for version</code>. Two enum entries share <code>code = "PY"</code>, and <code>associateBy</code> kept the last one, so <code>PY</code> always resolved to <code>PyCharmProfessional</code>, making the version-based downgrade unreachable. The unified <code>PyCharm</code> entry is now declared after <code>PyCharmProfessional</code> (mirroring how <code>IntellijIdea</code> follows <code>IntellijIdeaUltimate</code>), so <code>PY</code> resolves to <code>PyCharm</code> for 2025.3+ and downgrades to <code>PyCharmProfessional</code> only for earlier versions <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2218">JetBrains/intellij-platform-gradle-plugin#2218</a></li> <li>Store the serialized IDE layout index under the IDEs cache (honoring <code>org.jetbrains.intellij.platform.intellijPlatformIdesCache</code>) instead of the per-project <code>.intellijPlatform/layoutIndex</code>, so it lives beside the extracted IDEs and survives workspace cleaning; any index under the old path is orphaned and rebuilt once <a href="https://redirect.github.com/JetBrains/intellij-platform-gradle-plugin/issues/2199">JetBrains/intellij-platform-gradle-plugin#2199</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/JetBrains/intellij-platform-gradle-plugin/compare/2.18.1...2.19.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
