Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot use EAP snapshots in 2.0.0-beta5 #1638

Open
rybak opened this issue May 30, 2024 · 6 comments
Open

Cannot use EAP snapshots in 2.0.0-beta5 #1638

rybak opened this issue May 30, 2024 · 6 comments
Labels

Comments

@rybak
Copy link

rybak commented May 30, 2024

What happened?

Timeline for context

  1. My plugin failed compatibility verification for IntelliJ build 242.10180.25
  2. I got very confused, but eventually figured out that I need to migrate from "Gradle IntelliJ Plugin 1.14.1" to the "IntelliJ Platform Gradle Plugin".
  3. I started the migration with 2.0.0-beta4 and then switched to 2.0.0-beta5.
  4. Eventually I managed to build my plugin against IntelliJ IDEA Community 2024.1.2.

Problem

I'm trying to ensure that my plugin will be compatible with IntelliJ 2024.2 (which hasn't been released yet), but using EAP builds with the new plugin (2.0.0-beta5) fails.

Relevant log output or stack trace

* What went wrong:
Could not determine the dependencies of task ':buildSearchableOptions'.
> Failed to query the value of task ':buildSearchableOptions' property 'runtimeDirectory'.
   > No IntelliJ Platform dependency found.
     Please ensure there is a single IntelliJ Platform dependency defined in your project and that the necessary repositories, where it can be located, are added.
     See: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html

Steps to reproduce

  1. Specify 242.12881.66-EAP-SNAPSHOT (built on 2024-05-29 06:22:58 UTC, see snapshot repository), as a platform dependency in the Gradle build script:

    repositories {
    	mavenCentral()
    	intellijPlatform {
    		defaultRepositories()
    	}
    }
    dependencies {
    	intellijPlatform {
    		create("IC", "242.12881.66-EAP-SNAPSHOT")
    		...
    	}
    }
    
  2. Run ./gradlew --refresh-dependencies clean buildPlugin

Gradle IntelliJ Plugin version

2.0.0-beta5

Gradle version

8.7

Operating System

Linux

Link to build, i.e. failing GitHub Action job

No response

@PawelLipski
Copy link

FWIW, you can check my PRs VirtusLab/git-machete-intellij-plugin#1846, VirtusLab/git-machete-intellij-plugin#1859. Still, I haven't got verifyPlugin to work as it did in 1.x yet (#1637).

@hsz
Copy link
Member

hsz commented May 31, 2024

In the changelog of beta2, it was noted that we're switching to CDN as a primary source of IntelliJ Platform archives.
To switch back to IJ Maven repository, use the following Gradle property:

org.jetbrains.intellij.platform.buildFeature.useBinaryReleases=false

This mechanism is still under development and looking at the feedback, I have to make more transparent.

@rybak
Copy link
Author

rybak commented May 31, 2024

Thank you! Adding the property to the command:

$ ./gradlew -Porg.jetbrains.intellij.platform.buildFeature.useBinaryReleases=false buildPlugin

fixes the build for me!

@ahus1
Copy link

ahus1 commented Jun 1, 2024

I tried the option org.jetbrains.intellij.platform.buildFeature.useBinaryReleases to get the EAP working, but once I do that, the plugin doesn't use the JetBrains runtime any more when running ./gradlew clean runIde

Instead, it starts the IDE with the JDK I'm using to build the plugin.
Due to that, JCEF isn't present, which I need for my developing parts of my plugin.

Reproducible in the template project on the 2.0.0 branch which is currently on 2.0.0-beta5 by running

./gradlew -Porg.jetbrains.intellij.platform.buildFeature.useBinaryReleases=false clean runIde

Is there a way to use the EAP build with the JBR and JCEF?

@hsz
Copy link
Member

hsz commented Jun 6, 2024

You need to add a dependency on JCEF explicitly.

dependencies {
  intellijPlatform {
    ...
    jetbrainsRuntime()
  }
}

@ahus1
Copy link

ahus1 commented Jun 6, 2024

Thank you @hsz for the answer. After adding it also to the repository, it now works for me as expected. With the keyword from your answer I also found the matching docs page.

I'm still a little surprised I need to specify JBR manually instead of using it manually, as I wouldn't know which other runtime I would use as a plugin developer when running a plugin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants