Skip to content

Commit

Permalink
Switch to IJP 242 EAP
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
  • Loading branch information
rock3r committed Jul 2, 2024
1 parent e0cffd2 commit a86eff7
Show file tree
Hide file tree
Showing 17 changed files with 83 additions and 53 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,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 @@ -30,10 +30,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 @@ -25,7 +25,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17
java-version: 21
cache: gradle

- name: Setup Gradle
Expand Down
15 changes: 5 additions & 10 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,28 +44,23 @@ jobs:
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: manual
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality


# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3

# ℹ️ Command-line programs to run using the OS shell.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- run: |
echo "Run, Build Application using script"
./gradlew clean --no-daemon -S
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
Expand Down
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
31 changes: 17 additions & 14 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,6 +36,10 @@ dependencies {
}
}

intellijPlatform {
pluginConfiguration { name = "Jewel Demo" }
}

tasks {
// We don't have any settings in the demo plugin
buildSearchableOptions {
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 a86eff7

Please sign in to comment.