Skip to content

Commit

Permalink
Switch to IJP 242 EAP (#391)
Browse files Browse the repository at this point in the history
This in turn requires:
1. Updating the IJP Gradle plugin to 2.0 (beta)
2. Reworking the IDE sample build.gradle.kts in the new 2.0 syntax
3. Bumping the JBR version to 21
4. Removing CodeQL (we're not using it, it's slow, and it won't pick up
   a JDK 21 no matter how much you want it to)
  • Loading branch information
rock3r committed Jul 2, 2024
1 parent e863548 commit 4ef7ad2
Show file tree
Hide file tree
Showing 17 changed files with 79 additions and 121 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 21
distribution: zulu
cache: gradle

Expand All @@ -32,10 +32,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 21
distribution: zulu
cache: gradle

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check-ide-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17
java-version: 21
cache: gradle

- name: Setup Gradle
Expand Down
73 changes: 0 additions & 73 deletions .github/workflows/codeql.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17
java-version: 21
cache: gradle

- name: Setup Gradle
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -94,5 +94,10 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk

### Misc

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Ignore IJP temp folder
/.intellijPlatform
1 change: 1 addition & 0 deletions buildSrc/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ rootProject.name = "buildSrc"
dependencyResolutionManagement {
repositories {
google()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
gradlePluginPortal()
mavenCentral()
}
Expand Down
4 changes: 2 additions & 2 deletions buildSrc/src/main/kotlin/jewel.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ version = when {
java {
toolchain {
vendor = JvmVendorSpec.JETBRAINS
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(21)
}
}

kotlin {
jvmToolchain {
vendor = JvmVendorSpec.JETBRAINS
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(21)
}

target {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.sun.jna.NativeLong
* Could be an address in memory (if pointer to a class or method) or a
* value (like 0 or 1)
*/
@Suppress("OVERRIDE_DEPRECATION") // Copied code
internal class ID : NativeLong {
constructor()
constructor(peer: Long) : super(peer)
Expand Down
4 changes: 3 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,7 @@ kotlin.stdlib.default.dependency=false
# See https://jb.gg/intellij-platform-kotlin-oom
kotlin.incremental.useClasspathSnapshot=false

ijp.target=241
org.jetbrains.intellij.platform.buildFeature.useBinaryReleases=false

ijp.target=242
jewel.release.version=0.19.7
14 changes: 4 additions & 10 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ commonmark = "0.22.0"
composeDesktop = "1.7.0-dev1703"
detekt = "1.23.6"
dokka = "1.9.20"
idea = "241.17890.1"
ideaGradlePlugin = "1.17.3"
idea = "242.19533.56-EAP-SNAPSHOT"
ideaPlugin = "2.0.0-beta8"
jna = "5.14.0"
kotlin = "1.9.24"
kotlinSarif = "0.5.0"
Expand All @@ -24,10 +24,6 @@ kotlinSarif = { module = "io.github.detekt.sarif4k:sarif4k", version.ref = "kotl
kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" }
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerialization" }

ij-platform-ide-core = { module = "com.jetbrains.intellij.platform:ide-core", version.ref = "idea" }
ij-platform-ide-impl = { module = "com.jetbrains.intellij.platform:ide-impl", version.ref = "idea" }
ij-platform-core-ui = { module = "com.jetbrains.intellij.platform:core-ui", version.ref = "idea" }

jna-core = { module = "net.java.dev.jna:jna", version.ref = "jna" }

# Plugin libraries for build-logic's convention plugins to use to resolve the types/tasks coming from these plugins
Expand All @@ -39,14 +35,12 @@ kotlinter-gradlePlugin = { module = "org.jmailen.gradle:kotlinter-gradle", versi
kotlinx-binaryCompatValidator-gradlePlugin = { module = "org.jetbrains.kotlinx:binary-compatibility-validator", version.ref = "kotlinxBinaryCompat" }
poko-gradlePlugin = { module = "dev.drewhamilton.poko:poko-gradle-plugin", version.ref = "poko" }

[bundles]
idea = ["ij-platform-ide-core", "ij-platform-ide-impl", "ij-platform-core-ui"]

[plugins]
composeDesktop = { id = "org.jetbrains.compose", version.ref = "composeDesktop" }
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
ideaGradlePlugin = { id = "org.jetbrains.intellij", version.ref = "ideaGradlePlugin" }
ideaPlugin = { id = "org.jetbrains.intellij.platform", version.ref = "ideaPlugin" }
ideaPluginModule = { id = "org.jetbrains.intellij.platform.base", version.ref = "ideaPlugin" }
kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlinx-binaryCompatValidator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "kotlinxBinaryCompat" }
kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
Expand Down
17 changes: 16 additions & 1 deletion ide-laf-bridge/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,29 @@ plugins {
`jewel-check-public-api`
`ide-version-checker`
alias(libs.plugins.composeDesktop)
alias(libs.plugins.ideaPluginModule)
}

// Because we need to define IJP dependencies, the dependencyResolutionManagement
// from settings.gradle.kts is overridden and we have to redeclare everything here.
repositories {
google()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
mavenCentral()

intellijPlatform {
defaultRepositories()
}
}

dependencies {
api(projects.ui) {
exclude(group = "org.jetbrains.kotlinx")
}

compileOnly(libs.bundles.idea)
intellijPlatform {
intellijIdeaCommunity(libs.versions.idea)
}

testImplementation(compose.desktop.uiTestJUnit4)
testImplementation(compose.desktop.currentOs) {
Expand Down
18 changes: 17 additions & 1 deletion markdown/ide-laf-bridge-styling/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,29 @@ plugins {
`jewel-publish`
`jewel-check-public-api`
alias(libs.plugins.composeDesktop)
alias(libs.plugins.ideaPluginModule)
}

// Because we need to define IJP dependencies, the dependencyResolutionManagement
// from settings.gradle.kts is overridden and we have to redeclare everything here.
repositories {
google()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
mavenCentral()

intellijPlatform {
defaultRepositories()
}
}

dependencies {
api(projects.markdown.core)
api(projects.ideLafBridge)
compileOnly(projects.markdown.extension.gfmAlerts)
compileOnly(libs.bundles.idea)

intellijPlatform {
intellijIdeaCommunity(libs.versions.idea)
}

testImplementation(compose.desktop.uiTestJUnit4)
}
Expand Down
37 changes: 18 additions & 19 deletions samples/ide-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
plugins {
jewel
alias(libs.plugins.composeDesktop)
alias(libs.plugins.ideaGradlePlugin)
alias(libs.plugins.ideaPlugin)
`android-studio-releases-generator`
}

intellij {
pluginName = "Jewel Demo"
plugins = listOf("org.jetbrains.kotlin")
version = libs.versions.idea.get()
}

// TODO remove this once the IJ Gradle plugin fixes their repositories bug
// See https://github.com/JetBrains/gradle-intellij-plugin/issues/776
// Because we need to define IJP dependencies, the dependencyResolutionManagement
// from settings.gradle.kts is overridden and we have to redeclare everything here.
repositories {
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven("https://www.jetbrains.com/intellij-repository/releases")
maven("https://cache-redirector.jetbrains.com/intellij-dependencies")
google()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
mavenCentral()


intellijPlatform {
defaultRepositories()
}
}

dependencies {
intellijPlatform {
intellijIdeaCommunity(libs.versions.idea)
instrumentationTools()
}

implementation(projects.ideLafBridge) {
exclude(group = "org.jetbrains.kotlinx")
}
Expand All @@ -37,12 +36,12 @@ dependencies {
}
}

tasks {
// We don't have any settings in the demo plugin
buildSearchableOptions {
enabled = false
}
intellijPlatform {
pluginConfiguration { name = "Jewel Demo" }
buildSearchableOptions = false
}

tasks {
runIde {
systemProperties["org.jetbrains.jewel.debug"] = "true"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@ import com.intellij.ui.components.JBScrollPane
import com.intellij.ui.dsl.builder.BottomGap
import com.intellij.ui.dsl.builder.Panel
import com.intellij.ui.dsl.builder.panel
import com.intellij.ui.scale.JBUIScale.scale
import com.intellij.ui.util.maximumHeight
import com.intellij.util.ImageLoader
import com.intellij.util.ui.ComponentWithEmptyText
import com.intellij.util.ui.ImageUtil
import com.intellij.util.ui.JBDimension
import com.intellij.util.ui.JBFont
import com.intellij.util.ui.JBUI
import com.intellij.util.ui.components.BorderLayoutPanel
Expand Down Expand Up @@ -49,7 +48,7 @@ private class ItemDetailsPanel(
if (bufferedImage != null) {
val imageContainer =
ImageComponent(scope).apply {
maximumHeight = scale(200)
maximumSize = JBDimension(Int.MAX_VALUE, 200)
image = bufferedImage
}

Expand Down
2 changes: 1 addition & 1 deletion samples/standalone/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ tasks {
// register the task in the afterEvaluate block
afterEvaluate {
javaLauncher = project.javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(21)
vendor = JvmVendorSpec.JETBRAINS
}
setExecutable(javaLauncher.map { it.executablePath.asFile.absolutePath }.get())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ internal fun findViews(packageName: String): List<ViewInfo> {
val kFunc = it.kotlinFunction ?: return@mapNotNull null
if (kFunc.parameters.isNotEmpty() || kFunc.returnType.classifier != Unit::class) return@mapNotNull null

@Suppress("UNCHECKED_CAST")
ViewInfo(
title = annotation.title,
position = annotation.position,
Expand Down
6 changes: 2 additions & 4 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ rootProject.name = "jewel"

pluginManagement {
repositories {
gradlePluginPortal()
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/")
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven("https://oss.sonatype.org/content/repositories/snapshots/")
gradlePluginPortal()
mavenCentral()
}
}
Expand All @@ -17,9 +18,6 @@ dependencyResolutionManagement {
repositories {
google()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven("https://www.jetbrains.com/intellij-repository/releases")
maven("https://www.jetbrains.com/intellij-repository/snapshots")
maven("https://cache-redirector.jetbrains.com/intellij-dependencies")
mavenCentral()
}
}
Expand Down

0 comments on commit 4ef7ad2

Please sign in to comment.