spek icon indicating copy to clipboard operation
spek copied to clipboard

Incompatible with IntelliJ IDEA 2022.1

Open FWDekker opened this issue 3 years ago • 25 comments

Launching IntelliJ IDEA 2021.3 with the latest Spek version results in the following error when launching the IDE:

Plugin 'Spek Framework' (version '2.0.17-IJ2021.2') is not compatible with the current version of the IDE, because it requires build 212.* or older but the current build is IU-213.5744.223

As a result, none of the plugin's features are available. The plugin should be updated to support the latest IDE version.

Additionally, because this is not the first time that the plugin is incompatible with the latest version (cf. #829, #834, #889, #939, #954, #980), I think it might be worthwhile to stop restricting the until version supported by the plugin, so that the plugin is considered compatible with all future versions by default. I admit I'm not intimately familiar with Spek's architecture, but it's not clear to me why a different release is created for each IDE version.

FWDekker avatar Dec 10 '21 10:12 FWDekker

I am considering moving away from spek due to this problem because it basically pops up with every update. Any plans to address this problem?

robstoll avatar Jan 11 '22 08:01 robstoll

I think being unable to fix the inability to actually run spek tests for months at a time is a big reason that we are also starting to migrate everything away from Spek. As nice as it is, the inability to keep it maintained is causing major impact on our product development and this being a continual problem that isn't getting resolved in a few days or a week is terrible.

There should be some way to know and/or validate this stuff before major releases as the IntelliJ release schedule is pretty well known in advance with public access to the upcoming releases as well. But even failing that, it shouldn't be taking several months before being able to work again every few releases.

sepatel avatar Feb 07 '22 17:02 sepatel

Just merged #991, 2021.3 plugin is available in the dev channel for now: https://plugins.jetbrains.com/plugin/10915-spek-framework/versions/dev/157940. Appreciate it if you can test it out, I'll trigger a full release after that.

raniejade avatar Feb 13 '22 00:02 raniejade

Just merged #991, 2021.3 plugin is available in the dev channel for now: https://plugins.jetbrains.com/plugin/10915-spek-framework/versions/dev/157940. Appreciate it if you can test it out, I'll trigger a full release after that.

I just tested it and didn't find any issues with any of the tests for the main project we have.

sepatel avatar Feb 13 '22 02:02 sepatel

Thanks @sepatel, I'll trigger a release tonight.

raniejade avatar Feb 13 '22 22:02 raniejade

Thanks @raniejade.

Just tested I do unfortunately get this error using the dev channel plugin:

Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
	at org.spekframework.ide.ConsoleKt.main(console.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	... 1 more

Using JDK 17 and Kotlin 1.6.10

openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12)
OpenJDK 64-Bit Server VM (build 17.0.1+12, mixed mode)

Kotlin version 1.6.10-release-923 (JRE 17.0.1+12)

jurriaan avatar Feb 14 '22 09:02 jurriaan

@jurriaan That usually happens when you have multiple kotlin versions in your classpath. Can you look at your dependencies?

raniejade avatar Feb 14 '22 09:02 raniejade

All kotlin dependencies of this project are currently on 1.6.10 (except for https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-bom, but that's probably unrelated, 1.6.0 is the latest version).

jurriaan avatar Feb 14 '22 09:02 jurriaan

Can you try listing down the dependencies via gradle? (https://docs.gradle.org/current/userguide/viewing_debugging_dependencies.html) - there is most likely a conflict with the kotlin versions.

raniejade avatar Feb 14 '22 10:02 raniejade

@raniejade That's indeed how I checked it:

$ ./gradlew dependencies|grep kotlin|grep -v 1.6.10| grep -v coroutines
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (n)
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
kotlinCompilerClasspath
kotlinCompilerPluginClasspath
kotlinCompilerPluginClasspathMain - Kotlin compiler plugins for compilation 'main' (target  (jvm))
kotlinCompilerPluginClasspathTest - Kotlin compiler plugins for compilation 'test' (target  (jvm))
kotlinKlibCommonizerClasspath
kotlinNativeCompilerPluginClasspath
kotlinScriptDef - Script filename extensions discovery classpath configuration
kotlinScriptDefExtensions
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1

All kotlin related dependencies:

$ ./gradlew dependencies|grep kotlin
+--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
+--- org.jetbrains.kotlin:kotlin-reflect:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0 (c)
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0
|    |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0
|    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10
|    |         |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
|    |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    +--- org.jetbrains.kotlin:kotlin-reflect:1.5.30 -> 1.6.10 (*)
          +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
          \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
+--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (n)
+--- org.jetbrains.kotlin:kotlin-reflect:1.6.10 (n)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (n)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 (n)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor (n)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (n)
+--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
+--- org.jetbrains.kotlin:kotlin-reflect:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (c)
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10
|         +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
|              \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    +--- org.jetbrains.kotlin:kotlin-reflect:1.5.30 -> 1.6.10 (*)
     \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
kotlinCompilerClasspath
\--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.6.10
     +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
     |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
     +--- org.jetbrains.kotlin:kotlin-script-runtime:1.6.10
     +--- org.jetbrains.kotlin:kotlin-reflect:1.6.10
     |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
     +--- org.jetbrains.kotlin:kotlin-daemon-embeddable:1.6.10
kotlinCompilerPluginClasspath
kotlinCompilerPluginClasspathMain - Kotlin compiler plugins for compilation 'main' (target  (jvm))
+--- org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.6.10
|    +--- org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.6.10
|    |    +--- org.jetbrains.kotlin:kotlin-scripting-common:1.6.10
|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
|    |    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
|    |    +--- org.jetbrains.kotlin:kotlin-scripting-jvm:1.6.10
|    |    |    +--- org.jetbrains.kotlin:kotlin-script-runtime:1.6.10
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |    |    \--- org.jetbrains.kotlin:kotlin-scripting-common:1.6.10 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
+--- org.jetbrains.kotlin:kotlin-allopen:1.6.10
|    +--- org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.6.10
|    |    +--- org.jetbrains.kotlin:kotlin-native-utils:1.6.10
|    |    |    \--- org.jetbrains.kotlin:kotlin-util-io:1.6.10
|    |    \--- org.jetbrains.kotlin:kotlin-project-model:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.6.10
\--- org.jetbrains.kotlin:kotlin-noarg:1.6.10
     +--- org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.6.10 (*)
     \--- org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.6.10
kotlinCompilerPluginClasspathTest - Kotlin compiler plugins for compilation 'test' (target  (jvm))
+--- org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.6.10
|    +--- org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.6.10
|    |    +--- org.jetbrains.kotlin:kotlin-scripting-common:1.6.10
|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
|    |    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
|    |    +--- org.jetbrains.kotlin:kotlin-scripting-jvm:1.6.10
|    |    |    +--- org.jetbrains.kotlin:kotlin-script-runtime:1.6.10
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |    |    \--- org.jetbrains.kotlin:kotlin-scripting-common:1.6.10 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
+--- org.jetbrains.kotlin:kotlin-allopen:1.6.10
|    +--- org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.6.10
|    |    +--- org.jetbrains.kotlin:kotlin-native-utils:1.6.10
|    |    |    \--- org.jetbrains.kotlin:kotlin-util-io:1.6.10
|    |    \--- org.jetbrains.kotlin:kotlin-project-model:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.6.10
\--- org.jetbrains.kotlin:kotlin-noarg:1.6.10
     +--- org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.6.10 (*)
     \--- org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.6.10
kotlinKlibCommonizerClasspath
\--- org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.6.10
     +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
     |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
     \--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.6.10
          +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
          +--- org.jetbrains.kotlin:kotlin-script-runtime:1.6.10
          +--- org.jetbrains.kotlin:kotlin-reflect:1.6.10
          |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
          +--- org.jetbrains.kotlin:kotlin-daemon-embeddable:1.6.10
kotlinNativeCompilerPluginClasspath
kotlinScriptDef - Script filename extensions discovery classpath configuration
kotlinScriptDefExtensions
+--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
+--- org.jetbrains.kotlin:kotlin-reflect:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0 (c)
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0
|    |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0
|    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10
|    |         |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
|    |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.10 (*)
|         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.6.10
|         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.10 (*)
|         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.6.10
|         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.6.10
|         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.10 (*)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    +--- org.jetbrains.kotlin:kotlin-reflect:1.5.30 -> 1.6.10 (*)
|         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
+--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
+--- org.jetbrains.kotlin:kotlin-reflect:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0 (c)
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0
|    |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0
|    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10
|    |         |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
|    |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.10 (*)
|         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.6.10
|         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.10 (*)
|         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.6.10
|         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.6.10
|         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.10 (*)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    +--- org.jetbrains.kotlin:kotlin-reflect:1.5.30 -> 1.6.10 (*)
|         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
+--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
+--- org.jetbrains.kotlin:kotlin-reflect:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.6.0 (c)
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0
|    |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0
|    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10
|    |         |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
|    |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    +--- org.jetbrains.kotlin:kotlin-reflect:1.5.30 -> 1.6.10 (*)
|         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
+--- org.jetbrains.kotlin:kotlin-test-junit5:1.6.10
|    +--- org.jetbrains.kotlin:kotlin-test:1.6.10
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.6.0
|         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
|         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
+--- org.jetbrains.kotlin:kotlin-test-junit5:1.6.10 (n)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0 (n)
+--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
+--- org.jetbrains.kotlin:kotlin-reflect:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (c)
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10
|         +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
|              \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    +--- org.jetbrains.kotlin:kotlin-reflect:1.5.30 -> 1.6.10 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
+--- org.jetbrains.kotlin:kotlin-test-junit5:1.6.10
|    +--- org.jetbrains.kotlin:kotlin-test:1.6.10
|    |    +--- org.jetbrains.kotlin:kotlin-test-common:1.6.10
|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
|    |    \--- org.jetbrains.kotlin:kotlin-test-annotations-common:1.6.10
|    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
+--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
+--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
+--- org.jetbrains.kotlin:kotlin-reflect:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |    |    |         +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0 (c)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.6.0 (c)
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0
|    |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0
|    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10
|    |         |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
|    |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
|    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-reactor -> 1.6.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.0
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.10 (*)
|         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.6.10
|         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.10 (*)
|         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.6.10
|         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.6.10
|         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.10 (*)
+--- com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1
|    +--- org.jetbrains.kotlin:kotlin-reflect:1.5.30 -> 1.6.10 (*)
|         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 -> 1.6.10 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 -> 1.6.10 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-reflect:1.3.72 -> 1.6.10 (*)
|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 -> 1.6.10 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlin:kotlin-reflect:1.3.72 -> 1.6.10 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 -> 1.6.10 (*)
|    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 -> 1.6.10 (*)
|         +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 -> 1.6.10 (*)
|         +--- org.jetbrains.kotlin:kotlin-reflect:1.3.72 -> 1.6.10 (*)
+--- org.jetbrains.kotlin:kotlin-test-junit5:1.6.10
|    +--- org.jetbrains.kotlin:kotlin-test:1.6.10
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.6.0
|         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 (*)
|         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.6.10
|         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0 (*)
|         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.32 -> 1.6.10
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlin:kotlin-reflect:1.4.32 -> 1.6.10 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3 -> 1.6.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.32 -> 1.6.10
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
+--- org.jetbrains.kotlin:kotlin-reflect:1.6.10 (n)
+--- org.jetbrains.kotlin:kotlin-reflect:1.6.10
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
|         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10

jurriaan avatar Feb 14 '22 11:02 jurriaan

Thanks @jurriaan! Are you able to share your project so I can attempt to replicate it?

raniejade avatar Feb 14 '22 13:02 raniejade

@raniejade Sorry for the late response, I've tried a lot of things (clearing caches, rebuilding the project etc.) which didn't work. But after removing my .idea and .gradle folders it works again :tada:

Tested successfully on IntelliJ IDEA 2021.3.2 (Community Edition)

jurriaan avatar Feb 28 '22 15:02 jurriaan

@raniejade any chance you're ready to trigger a full release now?

lnhrdt avatar Mar 10 '22 23:03 lnhrdt

Apologies, triggering it now.

raniejade avatar Mar 10 '22 23:03 raniejade

It should be out by now, again apologies for the delay.

raniejade avatar Mar 11 '22 00:03 raniejade

Thank you @raniejade! The new 2.0.18 version of the plugin is working for us in IntellijJ 2021.3.2.

We appreciate you maintaining this for us!

Do you have any opinion on @FWDekker's suggestion:

I think it might be worthwhile to stop restricting the until version supported by the plugin, so that the plugin is considered compatible with all future versions by default.

Would you consider this approach? Or is it a better practice to keep this manual process for supporting new versions of IntelliJ after they come out?

lnhrdt avatar Mar 12 '22 19:03 lnhrdt

We have tried unbounding the until version of the IJ specific built of the plugin way back and it caused issues with Android Studio (it was trying to use the plugin built for IJ - note that we have two different builds for IJ and AS because of this: https://github.com/spekframework/spek/blob/2.x/spek-ide-plugin-android-studio/src/main/kotlin/org/spekframework/intellij/SpekAndroidConfigurationType.kt#L7 - AS devs loves to hardcode stuff and make things harder to extend, filed a ticket about it but it was totally ignored). The real problem here is how the IJ platform itself handle versioning, you can't just tag a plugin that will only work for specific products (i.e AS, pycharm, etc ...) - you have to be careful on how to version your plugin if you are going to support multiple products (IJ, AS, etc ...)

So the versioning scheme that we ended up with is similar to Jetbrain's own Kotlin plugin.

raniejade avatar Mar 13 '22 10:03 raniejade

FWIW, the same problem now exists for IDEA 2022.1.

Plugin 'Spek Framework' (version '2.0.18-IJ2021.3') is not compatible with the current version of the IDE, because it requires build 213.* or older but the current build is IU-221.5080.210

nlwillia avatar Apr 18 '22 19:04 nlwillia

@raniejade I see, I was unaware of those API issues in AS. While I have no experience with this, I imagine it might be possible to create two versions of the plugin, one that is unbounded in version and supports all IDEs except AS, and a bounded version specifically for AS. I think this should be possible by making the former use <incompatible-with>com.intellij.modules.androidstudio</incompatible-with> and the latter <depends>com.intellij.modules.androidstudio</depends>. At this point the real issue becomes how you declare these so that you build two separate plugins, other than doing this manually for each release :-/

FWDekker avatar Apr 19 '22 08:04 FWDekker

@FWDekker interesting, I'm not familiar with: <incompatible-with>com.intellij.modules.androidstudio</incompatible-with> but let me try it out, thanks! We are already building the plugins separately (and they have their own plugin.xml file), so it should be possible.

raniejade avatar Apr 19 '22 09:04 raniejade

Hey folks.

Just wondering if there's any ETA with a 2022.1 compatible release?

martypitt avatar Apr 27 '22 07:04 martypitt

Hey @martypitt, not anytime soon sorry - I'm currently moving. I can start taking a look maybe two weeks from now.

raniejade avatar Apr 27 '22 08:04 raniejade

No worries. Thanks for the update.

martypitt avatar Apr 27 '22 10:04 martypitt

I just merged a new PR (#994) which should include the incompatible-with changes. Additionally, it bumps the until-build to 223.*. It should be published in the dev channel of the plugin - would be great if you can test it. I'll do an actual release after that.

raniejade avatar May 21 '22 10:05 raniejade

@raniejade Thanks! It works great with 2022.1 :)

jurriaan avatar May 24 '22 10:05 jurriaan