Skip to content

Releases: JetBrains/intellij-platform-gradle-plugin

2.2.1

13 Dec 19:48
Compare
Choose a tag to compare

Added

  • Introduce LSP API Test Framework entry as TestFrameworkType.Plugin.LSP

Changed

  • Better resolve the plugin dependency path with nested directories in the plugin archive.

Fixed

  • Local IntelliJ Platform wasn't handled with the CollectorTransformer due to the missing attributes applied to the directory archive.
  • Plugin Verifier: suppress plugin problems for bundled or third-party plugins
  • Plugin Verifier: when creating an IDE, silently skip missing layout entries
  • Custom plugin repository adjustments

2.2.0

06 Dec 13:38
e4fc5d3
Compare
Choose a tag to compare

Added

  • Resolve common dependencies (instrumentation tools, Plugin Verifier, ZIP Signer) automatically without the need for adding helpers.
  • Introduce intellijPlatformClasspath configuration to allow retrieving the processed IntelliJ Platform and plugins dependencies.
  • Warn if trying to refer to a bundled plugin via intellijPlatform.plugins instead of required intellijPlatform.bundledPlugin.
  • Set ide.native.launcher=false for RunnableIdeAware tasks to prevent from showing the The IDE seems to be launched with a script launcher warning notification.
  • Add bundledPlugins with transitive dependencies to the tests runtime classpath.
  • Set intellij.testFramework.rethrow.logged.errors=true to make logged errors fails test immediately. #1828

Changed

  • Move localPlatformArtifacts() to the top of the defaultRepositories() list.
  • Make IntelliJ Platform dependencies available to testImplementation by default to avoid mutating tests classpath
  • For running testing, use test sandbox instead of compiled classes from build/classes directory
  • Updated the publishPlugin() task to use IDE Services’ new POST /api/plugins API when configured to publish to the IDE Services plugin repository, replacing the deprecated POST /api/ij-plugins/upload endpoint
  • Rewrite bundled plugins/modules resolution by using IntelliJ Structure library.
  • Update minimal supported Gradle version to 8.5

Fixed

  • Make the testRuntimeClasspath configuration request instrumented and composed jars of imported modules when running tests
  • Adjust local artifact definition in Ivy XML files to satisfy Gradle dependency locking. #1778
  • Add the missing org.jetbrains.kotlin.platform.type=jvm attribute to the intellijPlatformRuntimeClasspath configuration manually as it is not inherited from the runtimeClasspath.
  • Could not generate a decorated class for type PluginArtifactRepository. when creating a custom plugin repository.
  • Generation of duplicate files in .intellijPlatform/localPlatformArtifacts with different version numbers.
  • Gradle's api & compileOnlyApi configurations created by its java-library plugin don't work, and transitive implementation scope dependencies get exposed, when this plugin is used. #1799
  • Incorrect transitive dependencies calculation for bundled modules. #1791
  • Fixed IOOB exception while running tests from Gradle.
  • Building the searchable options: Unable to create shared archive file $IDE_CACHE_DIR/pycharm243.18137.19.jsa: (No such file or directory).
  • Compatibility with Gradle dependency verification. Previously it was failing with Failed to create MD5 hash for file.
  • Rework how the IDEs from Plugin Verification are resolved. #1784
  • Exclude kotlin-stdlib and kotlinx-coroutines transitive dependencies in various variants from IntelliJ Platform dependencies. #1817
  • Can't find performanceTesting.jar when building against Android Studio 242+. #1738
  • Custom runIde task do not find the right runtime, if useInstaller is false. #1827
  • PluginVerifier doesn't honor gradle offline mode. #1820
  • Make intellij.rider bundled module automatically available for Rider. #1774
  • Bump vulnerable com.squareup.okio:okio:1.17.2 to 1.17.6. #1795

2.1.0

25 Sep 13:49
6f087e2
Compare
Choose a tag to compare

Added

  • Added PrepareSandboxTask.pluginName for easier accessing of the plugin directory name
  • Allow for using non-installer IDEs for plugin verification #1715
  • Added bundledModule() dependency extension helpers
  • Detect and warn about the kotlinx-coroutines library in transitive dependencies
  • Introduce caching when creating dependencies

Changed

  • Add IntelliJ Platform v2 product modules to the test classpath
  • Invalidate local dependency artifacts XML files running

Fixed

  • Fixed caching for IntelliJPlatformArgumentProvider.coroutinesJavaAgentFile.
  • intellijPlatform.pluginConfiguration.description appends content instead of replacing it #1744
  • The disabledPlugins.txt file is not updated when disabling bundled plugins #1745
  • Plugin sandbox created by IntelliJPlatformTestingExtension is not correct for localPlugin(org.gradle.api.artifacts.ProjectDependency) #1743
  • Better resolving the JVM variant of the io.github.pdvrieze.xmlutil dependency #1741
  • Remove the inclusion of all IntelliJ Platform v2 bundled modules to the classpath #1761
  • Duplicate bundled template error in tests #1755
  • Fixed IDE problem when submodule jars appear as External Libraries
  • Fixed java.util.ConcurrentModificationException on Gradle sync caused by the pluginVerification configuration #1714
  • Fixed Configuration Cache issues related to the intellijPlatform.buildSearchableOptions flag

2.0.1

08 Aug 21:03
6af3294
Compare
Choose a tag to compare

Changed

  • Don't register the testIdeUi task by default
  • Add DisableCachingByDefault to PrepareSandboxTask #1721
  • Make the prepareSandbox task always run whenever any of the sandbox directories is missing #1730

Fixed

  • Fixed "No IDE resolved for verification with the IntelliJ Plugin Verifier" when untilBuild is an empty string #1717
  • Dependency resolution fails if a repository with exclusiveContent rules is added twice – use content inclusive rule instead #1728
  • Apply composedJar library elements attribute to testRuntimeClasspath configuration
  • When adding new IDEs for Plugin Verifier, do not mutate existing intellijPluginVerifierIdes_X configurations if present
  • Respect the sandboxDirectory property when configuring custom tasks with intellijPlatformTesting extension #1723

2.0.0

30 Jul 17:14
ce19a14
Compare
Choose a tag to compare

IntelliJ Platform Gradle Plugin 2.0 is out!

Read the full blog post.

Version 2.0 of the IntelliJ Platform Gradle Plugin is now available! Previously called the Gradle IntelliJ Plugin, this updated plugin for the Gradle build system simplifies the configuration of environments for building, testing, verifying, and publishing plugins for IntelliJ-based IDEs. Redesigned and rewritten, it addresses community-reported issues and feature requests from previous versions.

To start using version 2.0 of the IntelliJ Platform Gradle Plugin, visit the documentation pages at IntelliJ Platform SDK | Tooling | IntelliJ Platform Gradle Plugin 2.x, where you will find a proper introduction to all of the new features and changes, a migration guide, and examples of various configurations you may be interested in.

For projects created with the IntelliJ Platform Plugin Template, we advise taking a look at the 2.0.0 pull request applied on top of the obsolete Gradle IntelliJ Plugin 1.x configuration: https://github.com/JetBrains/intellij-platform-plugin-template/pull/458/files

If you have any issues or requests, please submit them to our GitHub Issues page or the JetBrains Platform Slack.

To submit questions or suggestions related to the documentation, please use the feedback form at the bottom of the article.

2.0.0-rc2

26 Jul 20:26
73a95ec
Compare
Choose a tag to compare

The IntelliJ Platform Gradle Plugin 2.0.0-rc2 is a plugin for the Gradle build system to help configure environments for building, testing, verifying, and publishing plugins for IntelliJ-based IDEs. It is a successor of Gradle IntelliJ Plugin 1.x.

To read more about the upcoming 2.0.0 release, please visit the documentation and the Migration Guide from Gradle IntelliJ Plugin.

If you have any issues or requests, please submit them to the GitHub Issues.
To submit questions or suggestions in relation to the documentation, use the feedback form at the bottom of the article.

Added

  • Groovy support
  • Make plugin(id, version, group) dependency helper accept group in the format of: empty (use Marketplace groupId), @channel, or user-defined groupId
  • Introduce PrepareJarSearchableOptionsTask for performance purposes
  • Possibility for specifying configurationName when using testFramework, platformDependency, and testPlatformDependency dependency helpers

Fixed

  • Sandbox producer of a custom task shouldn't inherit sandboxDirectory from the base sandbox producer.
  • Use lenient configuration when resolving JetBrains Runtime (JBR) dependencies
  • Add exclusiveContent to the jetbrainsRuntime() repository definition to resolve only JBR artifacts
  • Avoid recalculating the IvyModule for bundled plugin/module if already written to Ivy XML file

2.0.0-RC1

19 Jul 14:47
4681a89
Compare
Choose a tag to compare

The IntelliJ Platform Gradle Plugin 2.0.0-rc1 is a plugin for the Gradle build system to help configure environments for building, testing, verifying, and publishing plugins for IntelliJ-based IDEs. It is a successor of Gradle IntelliJ Plugin 1.x.

To read more about the upcoming 2.0.0 release, please visit the documentation and the Migration Guide from Gradle IntelliJ Plugin.

If you have any issues or requests, please submit them to the GitHub Issues.
To submit questions or suggestions in relation to the documentation, use the feedback form at the bottom of the article.

Added

  • Introduce TestFrameworkType.Starter for adding dependencies on the Starter UI testing framework.

Changed

  • JUnit4 is no longer provided via IntelliJ Platform — it is necessary to add it to the project with testImplementation.
  • Use the actual JVM targetCompatibility when defining composed jar and distribution archive variants.
  • testIdeUi is now dedicated to work with TestFrameworkType.Starter.
  • Extend testImplementation configuration with dependencies from intellijPlatformTestDependencies.
  • Move composed-jar and distribution artifacts definition to the org.jetbrains.intellij.platform.module plugin.

Fixed

  • Fixed the broken resolution of the dependency on a local IntelliJ Platform.
  • Fixed renaming files with the same name when preparing the sandbox.
  • Fixed the resolving of the IDEs list for verifyPlugin.
  • ProductReleasesValueSource: pick the IDE with the highest build number instead of version.
  • Exclude JUnit4 (junit4.jar) from the IntelliJ Platform classpath
  • Use Path.invariantSeparatorsPathString in ModuleDescriptorsValueSource to collect modules for exclusion on Windows

Removed

  • Removed intellijPlatform.verifyPlugin.downloadDirectory and intellijPlatform.verifyPlugin.homeDirectory as IDEs cache for Plugin Verifier is now managed with Gradle.

Breaking change

  • If you have tests defined in your plugin, the JUnit library is now excluded from the classpath (as it was present due to the bug). To add it, use: testImplementation("junit:junit:4.13.2")

P.S.:

  • 1️⃣ Due to the persisting issue related to multiple IntelliJ Platform copies in the Gradle Cache, I wrote this Kotlin Script that helps clean it up: https://gist.github.com/hsz/0fc45e1a6fc9ef73d4e4f5960058bded
  • 2️⃣ Docs are still in progress, but I expect to get them in sync with the code base next week.
  • 3️⃣ Please start the migration if you haven’t yet, as the 2.0 release is required when you plan to use IntelliJ Platform 2024 as a target platform for building the plugin.
  • 4️⃣ Any issues with the latest release please submit directly to GitHub Issues.
  • 5️⃣ If you have five minutes, I’ll gladly receive pull requests to docs or at least highlight weak points. You can use the form at the bottom of each documentation page -> https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin.html

❤️ Thank you, folks, for the patience and all the feedback, and good luck with migration!

v2.0.0-beta9

12 Jul 11:22
63cd4ed
Compare
Choose a tag to compare

The IntelliJ Platform Gradle Plugin 2.0.0-beta9 is a plugin for the Gradle build system to help configure environments for building, testing, verifying, and publishing plugins for IntelliJ-based IDEs. It is a successor of Gradle IntelliJ Plugin 1.x.

To read more about the upcoming 2.0.0 release, please visit the documentation and the Migration Guide from Gradle IntelliJ Plugin.

If you have any issues or requests, please submit them to the GitHub Issues.
To submit questions or suggestions in relation to the documentation, use the feedback form at the bottom of the article.

Added

  • Added useInstaller: Boolean property to create(type, version) (and product-specific) dependency helpers to distinguish the type of artifacts; true by default
  • Added useInstaller: Boolean property to configuration when creating custom tasks with intelliJPlatformTesting; true by default
  • Introduce create(notation: String, useInstaller: Boolean) dependency helper for adding a dependency on the IntelliJ Platform using notation string, like IU-2024.2
  • Introduce jetbrainsRuntimeLocal(localPath: String) dependency helper for adding a dependency on the local JetBrains Runtime instance
  • Introduce GradleProperties helper class for handling org.jetbrains.intellij.platform.<propertyName> Gradle properties, accepting multiple input types
  • intellijPlatform component for accessing the composed Jar with components["intellijPlatform"]

Changed

  • Rename jetBrainsCdn() repository helper to jetbrainsIdeInstallers()
  • Rename binaryReleasesAndroidStudio() repository helper to androidStudioInstallers()
  • Rewrite the latest/closest version resolution mechanism for performance reasons
  • Rewrite the latest Gradle plugin check for performance reasons
  • Enhance PrintBundledPluginsTask output
  • IntelliJPlatformTestingExtension: make the produced object Buildable so it can be used for dependsOn() purposes
  • Rewrite the local Ivy dependencies management
  • Review the bundled plugins resolution
  • bundledPlugin(): provide a helpful message when specifying a well-known plugin path (valid in 1.x) instead of real plugin ID (java vs com.intellij.java)
  • Renamed org.jetbrains.intellij.platform.buildFeature.<propertyName> Gradle properties to org.jetbrains.intellij.platform.<propertyName>
  • localPlugin(project(":submodule")) refers now to the distribution Zip archive

Fixed

  • testFramework() dependency helper must use DependencyVersion.Closest instead fixed DependencyVersion.IntelliJPlatform
  • Fixed Task ... uses output .intellijPlatform/coroutines-javaagent.jar of task ... without declaring dependency
  • Fixed the wrong Android Studio installer architecture on x86
  • Fixed InvalidPathException: Illegal char <:> exception on Windows when resolving IntelliJ Platform system properties
  • Fixed missing custom plugins in the sandbox when running a custom task

Removed

  • Resolving IntelliJ Platform artifacts from JetBrains CDN using common coordinates
  • Remove BundledPluginsListTransformer and in-advance bundled plugins resolving with JSON serialization
  • Remove BuildFeature.USE_CLOSEST_VERSION_RESOLVING
  • Remove BuildFeature mechanism in favor of GradleProperties

v2.0.0-beta8

01 Jul 16:03
0164cb7
Compare
Choose a tag to compare

The IntelliJ Platform Gradle Plugin 2.0.0-beta8 is a plugin for the Gradle build system to help configure environments for building, testing, verifying, and publishing plugins for IntelliJ-based IDEs. It is a successor of Gradle IntelliJ Plugin 1.x.

To read more about the upcoming 2.0.0 release, please visit the documentation and the Migration Guide from Gradle IntelliJ Plugin.

If you have any issues or requests, please submit them to the GitHub Issues.
To submit questions or suggestions in relation to the documentation, use the feedback form at the bottom of the article.

Added

  • intellijPlatformTesting top-level extension for registering custom tasks
  • Resolving IntelliJ Platform artifacts from JetBrains CDN using common coordinates
  • jetBrainsCdn() repository helper
  • DependencyVersion for controlling how particular dependencies are resolved (latest/closest/match IntelliJ Platform/exact)
  • Added -Didea.l10n.keys=only to the buildSearchableOptions task

Changed

  • Custom tasks registering refactoring
  • testIdeUi no longer runs IDE with Robot Server Plugin applied
  • defaultRepositories() repository helper executes now jetBrainsCdn() instead of binaryReleases()

Fixed

  • Fixed Could not find bundled plugin with ID: 'org.jetbrains.kotlin'
  • Fixed Cannot snapshot ../system/jcef_cache/SingletonSocket: not a regular file issue when preparing sandbox
  • Optimized resolving the latest/closest dependency version from available Maven repositories

Removed

  • CustomRunIdeTask, CustomTestIdeTask, CustomTestIdePerformanceTask, CustomTestIdeUiTask custom task classes
  • CustomIntelliJPlatformVersionAware, SandboxProducerAware task aware class
  • binaryReleases() repository helper
  • org.jetbrains.intellij.platform.buildFeature.useBinaryReleases flag

v2.0.0-beta7

14 Jun 18:25
@hsz hsz
445bb95
Compare
Choose a tag to compare

The IntelliJ Platform Gradle Plugin 2.0.0-beta7 is a plugin for the Gradle build system to help configure environments for building, testing, verifying, and publishing plugins for IntelliJ-based IDEs. It is a successor of Gradle IntelliJ Plugin 1.x.

To read more about the upcoming 2.0.0 release, please visit the documentation and the Migration Guide from Gradle IntelliJ Plugin.

If you have any issues or requests, please submit them to the GitHub Issues.
To submit questions or suggestions in relation to the documentation, use the feedback form at the bottom of the article.

Added

  • VerifyPluginProjectConfigurationTask: limit specific checks when .module plugin is only applied
  • TestIdeUiTask (testIdeUi task) + CustomTestIdeUiTask implementation
  • Dependencies extension: platformDependency(groupId, artifactIt) and testPlatformDependency(groupId, artifactIt) for adding dependencies on artifacts published to the IntelliJ Maven Repository
  • TestFrameworkType.Metrics for adding metrics and benchmarking tools for Test Framework

Changed

  • Publish instrumented and composed artifact with variants instead of replacing the default artifact
  • Check the latest plugin version against Gradle Plugin Portal
  • Avoid calling checkPluginVersion and createCoroutinesJavaAgentFile methods when in a .module
  • Rename TestFrameworkType.Platform.JUnit4 to TestFrameworkType.Platform
  • Rename TestFrameworkType.Platform.JUnit5 to TestFrameworkType.JUnit5
  • Rename TestFrameworkType.Platform.Bundled to TestFrameworkType.Bundled
  • Prevent from updating the IvyModule.Info.publication with the current time as it breaks the configuration cache

Fixed

  • Customizing the sandboxDirectory and sandboxSuffix when configuring SandboxAware tasks
  • Fixed content exclusion when extracting DMG archives of IntelliJ Platform on macOS
  • Could not find a field for name metadata/modelVersion (Attribute) in MavenMetadata
  • PluginArtifactoryShim: use only host when setting up proxy for custom plugin repositories