Skip to content

Releases: JetBrains/intellij-platform-gradle-plugin

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

v1.17.4

14 Jun 20:50
73c06eb
Compare
Choose a tag to compare

Added

  • Message about required migration to IntelliJ Platform Gradle Plugin 2.0 when targeting IntelliJ Platform 2024.2+ (242+).

v2.0.0-beta6

06 Jun 06:38
2eadeac
Compare
Choose a tag to compare

The IntelliJ Platform Gradle Plugin 2.0.0-beta6 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

  • Custom plugin repositories with authorization headers support

Changed

  • Resolve Plugin Verifier IDEs using regular IntelliJ Platform dependency resolution

Fixed

  • Add idea.classpath.index.enabled=false to tests system properties to avoid creating classpath.index file
  • Replace base archive file of the Jar task with ComposedJarTask archive file in all configuration artifact sets
  • Redundant whitespace when parsing plugin dependency IDs
  • Plugin Verifier: introduce partial configuration for resolving IntelliJ Platform dependencies with same coordinates but different versions

v2.0.0-beta5

30 May 08:15
774699c
Compare
Choose a tag to compare

The IntelliJ Platform Gradle Plugin 2.0.0-beta5 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 KotlinMetadataAware interface to provide metadata about the Kotlin setup

Fixed

  • Regression: Cannot fingerprint input property productInfo
  • Regression: GenerateManifestTask property kotlinStdlibBundled doesn't have a configured value
  • Regression: PrepareSandboxTask doesn't create system and log sandbox directories
  • Revise creating custom tasks and IntelliJ Platform main dependency inheritance

v2.0.0-beta4

27 May 20:13
2c6753d
Compare
Choose a tag to compare

The IntelliJ Platform Gradle Plugin 2.0.0-beta4 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

  • Support for Android Studio DMG archives
  • Introduce VerifyPluginProjectConfigurationTask.hasModulePlugin to exclude modules using org.jetbrains.intellij.platform.module subplugin from plugin.xml checks.
  • Better error handling in dependency helpers when missing values
  • Introduce GenerateManifestTask for generating MANIFEST.MF file
  • Introduce ComposedJarTask to compose and pick the final jar archive
  • Introduce intellijPlatform.pluginModule(Dependency) dependency helper to compose a single jar combined of multiple modules

Fixed

  • Avoid leaking internal properties from intellijPlatform extensions
  • Fixed custom tasks suffixing
  • Fixed: Task :test uses this output of task :prepareSandbox without declaring an explicit or implicit dependency #1609
  • ExtractorTransformer: Exclude only Applications symlink
  • SandboxAware: inherit sandbox directory from producer
  • Add IntelliJ Platform path-based hash to Ivy files to better deal with cache (temporary workaround)

v2.0.0-beta3

18 May 12:40
1444da9
Compare
Choose a tag to compare

The IntelliJ Platform Gradle Plugin 2.0.0-beta3 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

  • jetbrainsRuntime() dependency helper for resolving a suitable JBR version for IntelliJ Platform fetched from IntelliJ Maven Repository
  • jetbrainsRuntimeExplicit(explicitVersion) dependency helper for specifying an explicit JBR version if necessary
  • PrepareSandboxTask: introduce sandboxDirectoriesExistence property to ensure all sandbox directories exist
  • localPlugin() dependency helper for adding local plugins as project dependencies and extending customizable tasks
  • Emit warning when using the bundledLibrary dependency helper.

Changed

  • Update PlatformJavaVersions and PlatformKotlinVersions
  • Introduce a separated Sandbox for the Frontend part when running IDE in Split Mode
  • Rename SandboxAware.sandboxContainerDirectory to SandboxAware.sandboxDirectory to avoid confusion with intellijPlatform.sandboxContainer
  • Use custom task name as a suffix for dynamically created configuration and tasks instead of UUID.randomUUID()

Fixed

  • Fixed transitive dependencies of bundled plugin dependencies when IntelliJ Platform doesn't contain ProductInfo.layout model yet.
  • Produce customized (suffixed) configuration only for CustomIntelliJPlatformVersionAware tasks

v2.0.0-beta2

13 May 17:55
@hsz hsz
8423958
Compare
Choose a tag to compare

The IntelliJ Platform Gradle Plugin 2.0.0-beta2 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

  • Use IntelliJ Platform distribution from download.jetbrains.com by default. To switch back to IntelliJ Maven Repository artifacts, use org.jetbrains.intellij.platform.buildFeature.useBinaryReleases=false
  • Introduced Custom* tasks. if you want to extend the runIde or testSomething tasks, use the Custom*Task classes. See: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-custom-tasks.html
  • Better handling of missing dependencies/misconfiguration
  • Bring back the SetupDependenciesTask to avoid failing build when migrating from 1.x
  • Better ClosestVersionResolver error messages
  • When running IDE in Split Mode, it’s possible to specify splitModeTarget (BACKEND, FRONTEND, BACKEND_AND_FRONTEND)

Fixed

  • Fixed including transitive modules/bundled plugins dependencies of declared plugin dependencies
  • Fixed JetBrains Runtime (JBR) resolving
  • move TestFrameworkType from org.jetbrains.intellij.platform.gradle.extensions to org.jetbrains.intellij.platform.gradle

Removed

  • Dropped testIde task as test is now properly configured