Kotlin 1.3.60 Early Access Preview

We are happy to announce the 1.3.60 Early Access Preview opening.

In this EAP we have some improvements in Kotlin/JS test infrastructure:

  • Browser test task is failed if there were some fails in launching of Karma KT-31663
  • Standard output (log, warn, error) of tests (browser and nodejs both) now captured to Gradle test output KT-32073
  • Filter tests for browser and nodejs via --tests CLI argument KT-32216
  • Support source maps for Gradle stack traces KT-31478

Also experimental stdlib function typeOf presented in 1.3.40 for Kotlin/JVM is supported for Kotlin/JS now.

In Kotlin/Native we’ve added support for XCode 11 and some new compilation targets (see changelog for additional information). Also there are some performance improvements.

In IDEA plugin there is new feature available: in-project scratch files, aka Worksheets.

Note that since 1.3.60 minimal supported gradle version is 4.9.

Other improvements and fixes beyond these highlights for the upcoming 1.3.60 release can be found in the full changelog and separately for Kotlin Native.

Please note that compatible Native libraries have not been shipped yet. We are aiming to release it soon.

How to get the EAP build

For IntelliJ IDEA

You can configure Early Access Preview channel in Tools -> Kotlin -> Configure Kotlin Plugin Updates. Change the update channel to ‘Early Access Preview 1.3.X’ and press Check for updates now.

For Maven or Gradle

Add the https://dl.bintray.com/kotlin/kotlin-eap repository URL to the list of project repositories, and set kotlin_version to 1.3.60-eap-143.
Here is how to do this in Gradle:

buildscript { 
  ext.kotlin_version = '1.3.60-eap-143' 
  repositories { 
    maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' } 
    mavenCentral() 
  } 
  dependencies { 
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 
   }
 } 
 apply plugin: "kotlin" 
 repositories { 
   maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' } 
   mavenCentral() 
 } 
 dependencies { 
   compile "org.jetbrains.kotlin:kotlin-stdlib" 
 } 

Please provide feedback and report issues to our issue tracker. Please don’t forget to specify your IDE/build system Kotlin versions.

4 Likes

Should I be able to use the serialization plugin with this? My build.gradle file works with 1.3.50, but if I change the plugin version, I get an error.

buildscript {
    ext.kotlin_version = "1.3.60-eap-76"
    // ext.kotlin_version = "1.3.50"
    repositories {
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath("org.jetbrains.kotlin:kotlin-serialization:$kotlin_version")
    }
}
plugins {
    id 'org.jetbrains.kotlin.multiplatform' version '1.3.50' 
    // id 'org.jetbrains.kotlin.plugin.serialization' version '1.3.50'
    id 'org.jetbrains.kotlin.plugin.serialization' version "1.3.60-eap-76"
}

Plugin [id: ‘org.jetbrains.kotlin.plugin.serialization’, version: ‘1.3.60-eap-76’] was not found in any of the following sources:

Not sure about this version, but in my experience it takes a bit longer for eap builds of the serialization library to be released, if there is a release for it at all.

The github page shows an EAP version (0.14.0-1.3.60-eap-76), but I’ve tried putting that string in various places in my build.gradle file and nothing works.

Use 0.14.0-1.3.60-eap-76 as the version for the serialization dependency. Since it’s still in alpha, it’s version might not be the same as the kotlin version.

Plugin [id: ‘org.jetbrains.kotlin.plugin.serialization’, version: ‘0.14.0-1.3.60-eap-76’] was not found in any of the following sources:

It seems like you need to add https://kotlin.bintray.com/kotlinx to your maven depository list. This is based on https://bintray.com/kotlin/kotlinx/kotlinx.serialization.runtime/0.14.0-1.3.60-eap-76, haven’t tested it.

I just added that to the buildscript section and the main section. Still get the error.

buildscript {
    ..
    repositories {
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
        maven { url 'https://kotlin.bintray.com/kotlinx' }
        jcenter()
    }

I’m using the eap while trying out the new Jetpack Compose android library. I’m having issues with I believe kapt and dagger 2 in the same project. Are there any known issues with kapt or any work around any has seen?

e: java.lang.IllegalStateException: Backend Internal error: Exception during code generation
File being compiled at position: file:///myfilepath
The root cause java.lang.AssertionError was thrown at: org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapType(KotlinTypeMapper.kt:261)

Hi,
Since you are using Gradle’s plugins block I believe that you need to add kotlin-eap bintray repository to Gradle plugin repositories. Version of plugin must be the same as compiler one, 1.3.40-eap-76, while version of runtime library is, indeed, 0.14.0-1.3.60-eap-76.

Kapt is currently not usable with Jetpack Compose, see https://youtrack.jetbrains.com/issue/KT-34583.

1 Like