Announce of the workshop on kotlin jupyter plugin ...
# datascience
a
Announce of the workshop on kotlin jupyter plugin building: https://kotlinlang.slack.com/archives/C4W52CFEZ/p1621060869158800?thread_ts=1620221118.142100&cid=C4W52CFEZ cc @Ilya Muradyan
👍 2
h
Is it possible to put this into a blog (e.g. written format)? 🙂
a
It requires a lot more work, so not promising anything, but I will think about that.
h
I see. Makes sense, but I won't be able to make it as I'm working sorry. Will it be recorded at least?
a
Yes, everything will be recorded
👍 1
h
Awesome 😊
a
Here is a repository for simple integration: https://github.com/altavir/jupyter-jvm-plugin, the recording will be available later. Sadly, we did not properly discuss the communication thing and widgets, but I will create a sample repository later for it.
h
it! Thank you
m
Thank you @altavir I am trying to implement the variant with KMP and I am getting the same error about missing "jvm, target" as you did. This seems to be some issue with "jupyter.api" plugin, or combination, because commented out, I can build a common KMP module as usually. Of course I have tried multiple plugin versions
Copy code
An exception occurred applying plugin request [id: 'org.jetbrains.kotlin.jupyter.api', version: '0.10.0-25']
> Failed to apply plugin 'org.jetbrains.kotlin.jupyter.api'.
   > Single JVM target not found in a multiplatform project
a
It is a api library bug: https://github.com/Kotlin/kotlin-jupyter/issues/255. I do not have a problem in my libraries since I apply targets before jupyter plugin
I think it will be fixed very soon.
m
🙂 😇
a
Right now it could be probably avoided by applying the plugin after the
kotlin
block.
m
nope, almost all tasks are then missind
a
Ok, then we will have to work on that. Plugin interference is the hardest thing in gradle.
m
NP, no hurry
a
For those, who interested how to do it properly, you can look here: https://github.com/mipt-npm/gradle-tools/blob/dad49b0c665282ff1b64be4f8b7844c898ec[…]0060/src/main/kotlin/ru/mipt/npm/gradle/KScienceCommonPlugin.kt You do not expect a plugin to be loaded and configured, you react on when it is loaded. It is not always stright-forward thing to do. And even in this case some late configuration could be missed. 😢
The recording is finally uploaded:

https://youtu.be/gWEDnk6xeIs

. I did not manage to show the two-way communication because we found bug in the plugin, but we will do additional tutorial on that.
👍 2