Releases: JetBrains/intellij-platform-gradle-plugin
2.0.0-RC1
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.Starterfor 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
targetCompatibilitywhen defining composed jar and distribution archive variants. testIdeUiis now dedicated to work withTestFrameworkType.Starter.- Extend
testImplementationconfiguration with dependencies fromintellijPlatformTestDependencies. - Move
composed-jaranddistributionartifacts definition to theorg.jetbrains.intellij.platform.moduleplugin.
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
buildnumber instead ofversion. - Exclude JUnit4 (
junit4.jar) from the IntelliJ Platform classpath - Use
Path.invariantSeparatorsPathStringinModuleDescriptorsValueSourceto collect modules for exclusion on Windows
Removed
- Removed
intellijPlatform.verifyPlugin.downloadDirectoryandintellijPlatform.verifyPlugin.homeDirectoryas 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
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: Booleanproperty tocreate(type, version)(and product-specific) dependency helpers to distinguish the type of artifacts;trueby default - Added
useInstaller: Booleanproperty to configuration when creating custom tasks withintelliJPlatformTesting;trueby default - Introduce
create(notation: String, useInstaller: Boolean)dependency helper for adding a dependency on the IntelliJ Platform using notation string, likeIU-2024.2 - Introduce
jetbrainsRuntimeLocal(localPath: String)dependency helper for adding a dependency on the local JetBrains Runtime instance - Introduce
GradlePropertieshelper class for handlingorg.jetbrains.intellij.platform.<propertyName>Gradle properties, accepting multiple input types intellijPlatformcomponent for accessing the composed Jar withcomponents["intellijPlatform"]
Changed
- Rename
jetBrainsCdn()repository helper tojetbrainsIdeInstallers() - Rename
binaryReleasesAndroidStudio()repository helper toandroidStudioInstallers() - Rewrite the latest/closest version resolution mechanism for performance reasons
- Rewrite the latest Gradle plugin check for performance reasons
- Enhance
PrintBundledPluginsTaskoutput - IntelliJPlatformTestingExtension: make the produced object
Buildableso it can be used fordependsOn()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 (javavscom.intellij.java)- Renamed
org.jetbrains.intellij.platform.buildFeature.<propertyName>Gradle properties toorg.jetbrains.intellij.platform.<propertyName> localPlugin(project(":submodule"))refers now to the distribution Zip archive
Fixed
testFramework()dependency helper must useDependencyVersion.Closestinstead fixedDependencyVersion.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
BundledPluginsListTransformerand in-advance bundled plugins resolving with JSON serialization - Remove
BuildFeature.USE_CLOSEST_VERSION_RESOLVING - Remove
BuildFeaturemechanism in favor ofGradleProperties
v2.0.0-beta8
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
intellijPlatformTestingtop-level extension for registering custom tasks- Resolving IntelliJ Platform artifacts from JetBrains CDN using common coordinates
jetBrainsCdn()repository helperDependencyVersionfor controlling how particular dependencies are resolved (latest/closest/match IntelliJ Platform/exact)- Added
-Didea.l10n.keys=onlyto thebuildSearchableOptionstask
Changed
- Custom tasks registering refactoring
testIdeUino longer runs IDE with Robot Server Plugin applieddefaultRepositories()repository helper executes nowjetBrainsCdn()instead ofbinaryReleases()
Fixed
- Fixed
Could not find bundled plugin with ID: 'org.jetbrains.kotlin' - Fixed
Cannot snapshot ../system/jcef_cache/SingletonSocket: not a regular fileissue when preparing sandbox - Optimized resolving the latest/closest dependency version from available Maven repositories
Removed
CustomRunIdeTask,CustomTestIdeTask,CustomTestIdePerformanceTask,CustomTestIdeUiTaskcustom task classesCustomIntelliJPlatformVersionAware,SandboxProducerAwaretask aware classbinaryReleases()repository helperorg.jetbrains.intellij.platform.buildFeature.useBinaryReleasesflag
v2.0.0-beta7
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.moduleplugin is only appliedTestIdeUiTask(testIdeUitask) +CustomTestIdeUiTaskimplementation- Dependencies extension:
platformDependency(groupId, artifactIt)andtestPlatformDependency(groupId, artifactIt)for adding dependencies on artifacts published to the IntelliJ Maven Repository TestFrameworkType.Metricsfor 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
checkPluginVersionandcreateCoroutinesJavaAgentFilemethods when in a.module - Rename
TestFrameworkType.Platform.JUnit4toTestFrameworkType.Platform - Rename
TestFrameworkType.Platform.JUnit5toTestFrameworkType.JUnit5 - Rename
TestFrameworkType.Platform.BundledtoTestFrameworkType.Bundled - Prevent from updating the
IvyModule.Info.publicationwith the current time as it breaks the configuration cache
Fixed
- Customizing the
sandboxDirectoryandsandboxSuffixwhen configuringSandboxAwaretasks - Fixed content exclusion when extracting DMG archives of IntelliJ Platform on macOS
- Could not find a field for name
metadata/modelVersion(Attribute) inMavenMetadata PluginArtifactoryShim: use only host when setting up proxy for custom plugin repositories
v1.17.4
Added
- Message about required migration to IntelliJ Platform Gradle Plugin 2.0 when targeting IntelliJ Platform 2024.2+ (242+).
v2.0.0-beta6
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=falseto tests system properties to avoid creatingclasspath.indexfile - Replace base archive file of the
Jartask withComposedJarTaskarchive 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
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
KotlinMetadataAwareinterface to provide metadata about the Kotlin setup
Fixed
- Regression: Cannot fingerprint input property
productInfo - Regression:
GenerateManifestTaskpropertykotlinStdlibBundleddoesn't have a configured value - Regression:
PrepareSandboxTaskdoesn't createsystemandlogsandbox directories - Revise creating custom tasks and IntelliJ Platform main dependency inheritance
v2.0.0-beta4
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.hasModulePluginto exclude modules usingorg.jetbrains.intellij.platform.modulesubplugin fromplugin.xmlchecks. - Better error handling in dependency helpers when missing values
- Introduce
GenerateManifestTaskfor generatingMANIFEST.MFfile - Introduce
ComposedJarTaskto 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
intellijPlatformextensions - Fixed custom tasks suffixing
- Fixed: Task
:testuses this output of task:prepareSandboxwithout declaring an explicit or implicit dependency #1609 - ExtractorTransformer: Exclude only
Applicationssymlink - 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
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 RepositoryjetbrainsRuntimeExplicit(explicitVersion)dependency helper for specifying an explicit JBR version if necessaryPrepareSandboxTask: introducesandboxDirectoriesExistenceproperty to ensure all sandbox directories existlocalPlugin()dependency helper for adding local plugins as project dependencies and extending customizable tasks- Emit warning when using the
bundledLibrarydependency helper.
Changed
- Update
PlatformJavaVersionsandPlatformKotlinVersions - Introduce a separated Sandbox for the Frontend part when running IDE in Split Mode
- Rename
SandboxAware.sandboxContainerDirectorytoSandboxAware.sandboxDirectoryto avoid confusion withintellijPlatform.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.layoutmodel yet. - Produce customized (suffixed) configuration only for
CustomIntelliJPlatformVersionAwaretasks
v2.0.0-beta2
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 therunIdeortestSomethingtasks, use theCustom*Taskclasses. See: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-custom-tasks.html - Better handling of missing dependencies/misconfiguration
- Bring back the
SetupDependenciesTaskto avoid failing build when migrating from1.x - Better
ClosestVersionResolvererror 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
TestFrameworkTypefromorg.jetbrains.intellij.platform.gradle.extensionstoorg.jetbrains.intellij.platform.gradle
Removed
- Dropped
testIdetask astestis now properly configured