User: kyle wood
Date: 05 Nov 25 01:40
Revision: 2bc5f847cfe913a140eb6c7c14c1190a0ec98d10
Summary:
Merge branch '2025.1' into 2025.2
TeamCity URL: http://ci.mcdev.io:80/viewModification.html?tab=vcsModificationFiles&modId=10218&personal=false
Index: build.gradle.kts
===================================================================
--- build.gradle.kts (revision 3f914457e1a535024dc2eb9fb0d94ae75141755c)
+++ build.gradle.kts (revision 2bc5f847cfe913a140eb6c7c14c1190a0ec98d10)
@@ -18,7 +18,8 @@
* along with this program. If not, see .
*/
-import org.gradle.internal.jvm.Jvm
+import io.sentry.android.gradle.extensions.SentryPluginExtension
+import org.gradle.kotlin.dsl.configure
import org.jetbrains.changelog.Changelog
import org.jetbrains.gradle.ext.settings
import org.jetbrains.gradle.ext.taskTriggers
@@ -32,6 +33,7 @@
`mcdev-core`
`mcdev-parsing`
`mcdev-publishing`
+ alias(libs.plugins.sentry) apply (System.getenv("CI") == "true" && System.getenv("NO_SENTRY") != "true")
}
val coreVersion: String by project
@@ -43,32 +45,32 @@
group = "com.demonwav.mcdev"
-val gradleToolingExtensionSourceSet: SourceSet = sourceSets.create("gradle-tooling-extension") {
+val gradleToolingExtensionSourceSet: SourceSet = sourceSets.create("gradle-tooling-extension", Action {
configurations.named(compileOnlyConfigurationName) {
extendsFrom(gradleToolingExtension)
}
-}
+})
val gradleToolingExtensionJar = tasks.register(gradleToolingExtensionSourceSet.jarTaskName) {
from(gradleToolingExtensionSourceSet.output)
archiveClassifier.set("gradle-tooling-extension")
exclude("META-INF/plugin.xml")
}
-val templatesSourceSet: SourceSet = sourceSets.create("templates") {
+val templatesSourceSet: SourceSet = sourceSets.create("templates", Action {
resources {
srcDir("templates")
compileClasspath += sourceSets.main.get().output
}
-}
+})
val templateSourceSets: List = (file("templates").listFiles() ?: emptyArray()).mapNotNull { file ->
if (file.isDirectory() && (file.listFiles() ?: emptyArray()).any { it.name.endsWith(".mcdev.template.json") }) {
- sourceSets.create("templates-${file.name}") {
+ sourceSets.create("templates-${file.name}", Action {
resources {
srcDir(file)
compileClasspath += sourceSets.main.get().output
}
- }
+ })
} else {
null
}
@@ -81,9 +83,6 @@
}
dependencies {
- // Add tools.jar for the JDI API
- implementation(files(Jvm.current().toolsJar))
-
implementation(files(gradleToolingExtensionJar))
implementation(libs.mixinExtras.expressions) {
@@ -99,6 +98,9 @@
exclude(group = "org.jetbrains.kotlin")
exclude(group = "org.jetbrains.kotlinx")
}
+ implementation(libs.sentry) {
+ exclude(group = "org.slf4j")
+ }
intellijPlatform {
intellijIdeaCommunity(libs.versions.intellij.ide, useInstaller = false)
@@ -171,20 +173,17 @@
changeNotes = changelog.render(Changelog.OutputType.HTML)
}
-// Compile classes to be loaded into the Gradle VM to Java 5 to match Groovy
+// Compile classes to be loaded into the Gradle VM to Java 8
// This is for maximum compatibility, these classes will be loaded into every Gradle import on all
// projects (not just Minecraft), so we don't want to break that with an incompatible class version.
tasks.named(gradleToolingExtensionSourceSet.compileJavaTaskName, JavaCompile::class) {
- val java7Compiler = javaToolchains.compilerFor { languageVersion.set(JavaLanguageVersion.of(11)) }
- javaCompiler.set(java7Compiler)
- options.release.set(6)
- options.bootstrapClasspath = files(java7Compiler.map { it.metadata.installationPath.file("jre/lib/rt.jar") })
+ options.release = 8
options.compilerArgs = listOf("-Xlint:-options")
}
tasks.withType().configureEach {
options.compilerArgs = listOf("-proc:none")
- sourceCompatibility = "1.5"
- targetCompatibility = "1.5"
+ sourceCompatibility = "1.8"
+ targetCompatibility = "1.8"
}
tasks.processResources {
@@ -221,6 +220,7 @@
license {
val endings = listOf("java", "kt", "kts", "groovy", "gradle.kts", "xml", "properties", "html", "flex", "bnf")
exclude("META-INF/plugin.xml") // https://youtrack.jetbrains.com/issue/IDEA-345026
+ exclude("sentry-debug-meta.properties", "sentry-external-modules.txt")
include(endings.map { "**/*.$it" })
val projectDir = layout.projectDirectory.asFile
@@ -267,8 +267,8 @@
val generateAtLexer by lexer("AtLexer", "com/demonwav/mcdev/platform/mcp/at/gen")
val generateAtParser by parser("AtParser", "com/demonwav/mcdev/platform/mcp/at/gen")
-val generateAwLexer by lexer("AwLexer", "com/demonwav/mcdev/platform/mcp/aw/gen")
-val generateAwParser by parser("AwParser", "com/demonwav/mcdev/platform/mcp/aw/gen")
+val generateCtLexer by lexer("CtLexer", "com/demonwav/mcdev/platform/mcp/ct/gen")
+val generateCtParser by parser("CtParser", "com/demonwav/mcdev/platform/mcp/ct/gen")
val generateNbttLexer by lexer("NbttLexer", "com/demonwav/mcdev/nbt/lang/gen")
val generateNbttParser by parser("NbttParser", "com/demonwav/mcdev/nbt/lang/gen")
@@ -291,8 +291,8 @@
dependsOn(
generateAtLexer,
generateAtParser,
- generateAwLexer,
- generateAwParser,
+ generateCtLexer,
+ generateCtParser,
generateNbttLexer,
generateNbttParser,
generateLangLexer,
@@ -337,3 +337,29 @@
// systemProperty("user.language", "fr")
// systemProperty("user.country", "FR")
}
+
+if (System.getenv("CI") == "true" && System.getenv("NO_SENTRY") != "true") {
+ configure {
+ includeSourceContext = true
+ includeDependenciesReport = true
+ autoInstallation {
+ enabled = false
+ }
+
+ url = "https://sentry.mcdev.io/"
+ org = "mcdev"
+ projectName = "mcdev"
+ authToken = providers.gradleProperty("mcdev.sentry.token")
+ }
+
+ // Wire together some tasks to make Gradle happy
+ tasks.named("generateSentryBundleIdJava") {
+ dependsOn(generate)
+ }
+ tasks.named("sentryCollectSourcesJava") {
+ dependsOn(generate)
+ }
+ tasks.checkLicenseMain {
+ dependsOn(tasks.named("generateSentryDebugMetaPropertiesjava"), tasks.named("collectExternalDependenciesForSentry"))
+ }
+}
Index: buildSrc/src/main/kotlin/mcdev-core.gradle.kts
===================================================================
--- buildSrc/src/main/kotlin/mcdev-core.gradle.kts (revision 3f914457e1a535024dc2eb9fb0d94ae75141755c)
+++ buildSrc/src/main/kotlin/mcdev-core.gradle.kts (revision 2bc5f847cfe913a140eb6c7c14c1190a0ec98d10)
@@ -20,16 +20,17 @@
import org.cadixdev.gradle.licenser.header.HeaderStyle
import org.gradle.accessors.dm.LibrariesForLibs
+import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+import org.jetbrains.kotlin.gradle.tasks.CompileUsingKotlinDaemon
plugins {
java
idea
id("org.jetbrains.kotlin.jvm")
id("org.jetbrains.intellij.platform")
- id("org.cadixdev.licenser")
+ id("net.neoforged.licenser")
}
val ideaVersionName: String by project
@@ -40,7 +41,7 @@
// Build numbers are used for nightlies
if (buildNumber != null) {
- version = "$version-$buildNumber"
+ version = "$version-nightly+$buildNumber"
}
java {
@@ -59,27 +60,29 @@
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
-}
-
-tasks.withType().configureEach {
compilerOptions {
jvmTarget = JvmTarget.JVM_21
- languageVersion = KotlinVersion.KOTLIN_2_0
- freeCompilerArgs = listOf("-Xjvm-default=all", "-Xjdk-release=21")
+ languageVersion = KotlinVersion.KOTLIN_2_2
+ jvmDefault = JvmDefaultMode.NO_COMPATIBILITY
+ freeCompilerArgs = listOf("-Xjdk-release=21")
optIn.add("kotlin.contracts.ExperimentalContracts")
}
+}
+tasks.withType().configureEach {
kotlinDaemonJvmArguments.add("-Xmx2G")
}
repositories {
- maven("https://repo.denwav.dev/repository/maven-public/")
+ intellijPlatform {
+ defaultRepositories()
+ }
+
maven("https://maven.fabricmc.net/") {
content {
includeModule("net.fabricmc", "mapping-io")
includeModule("net.fabricmc", "fabric-loader")
}
}
- mavenCentral()
maven("https://repo.spongepowered.org/maven/") {
content {
includeGroup("org.spongepowered")
@@ -96,10 +99,9 @@
}
}
- intellijPlatform {
- defaultRepositories()
+ mavenCentral()
+ maven("https://repo.denwav.dev/repository/maven-public/")
- }
+}
-}
val libs = the()
dependencies {
Index: gradle.properties
===================================================================
--- gradle.properties (revision 3f914457e1a535024dc2eb9fb0d94ae75141755c)
+++ gradle.properties (revision 2bc5f847cfe913a140eb6c7c14c1190a0ec98d10)
@@ -23,7 +23,7 @@
ideaVersionName = 2025.2
-coreVersion = 1.8.6
+coreVersion = 1.8.7
# Silences a build-time warning because we are bundling our own kotlin library
kotlin.stdlib.default.dependency = false
Index: gradle/libs.versions.toml
===================================================================
--- gradle/libs.versions.toml (revision 3f914457e1a535024dc2eb9fb0d94ae75141755c)
+++ gradle/libs.versions.toml (revision 2bc5f847cfe913a140eb6c7c14c1190a0ec98d10)
@@ -1,11 +1,11 @@
[versions]
-kotlin = "2.1.21"
+kotlin = "2.2.20"
coroutines = "1.10.2"
junit = "5.10.2"
junit-platform = "1.10.2"
asm = "9.6"
fuel = "2.3.1"
-licenser = "0.6.1"
+licenser = "0.7.5"
changelog = "2.2.0"
intellij-plugin = "2.6.0"
intellij-plugin-repository-rest-client = "2.0.46"
@@ -17,8 +17,9 @@
kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
intellij-platform = { id = "org.jetbrains.intellij.platform", version.ref = "intellij-plugin" }
idea-ext = { id = "org.jetbrains.gradle.plugin.idea-ext", version.ref = "idea-ext" }
-licenser = { id = "org.cadixdev.licenser", version.ref = "licenser" }
+licenser = { id = "net.neoforged.licenser", version.ref = "licenser" }
changelog = { id = "org.jetbrains.changelog", version.ref = "changelog" }
+sentry = "io.sentry.jvm.gradle:5.12.2"
[libraries]
intellij-plugin-repository-rest-client = { module = "org.jetbrains.intellij:plugin-repository-rest-client", version.ref = "intellij-plugin-repository-rest-client" }
@@ -28,7 +29,7 @@
kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" }
intellij-plugin = { module = "org.jetbrains.intellij.platform:org.jetbrains.intellij.platform.gradle.plugin", version.ref = "intellij-plugin" }
-licenser-plugin = { module = "org.cadixdev.licenser:org.cadixdev.licenser.gradle.plugin", version.ref = "licenser" }
+licenser-plugin = { module = "net.neoforged.licenser:net.neoforged.licenser.gradle.plugin", version.ref = "licenser" }
changelog-plugin = { module = "org.jetbrains.changelog:org.jetbrains.changelog.gradle.plugin", version.ref = "changelog" }
coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "coroutines" }
@@ -57,6 +58,8 @@
fuel = { module = "com.github.kittinunf.fuel:fuel", version.ref = "fuel" }
fuel-coroutines = { module = "com.github.kittinunf.fuel:fuel-coroutines", version.ref = "fuel" }
+sentry = "io.sentry:sentry:8.22.0"
+
# Testing
test-mixin = "org.spongepowered:mixin:0.8.5"
test-spigotapi = "org.spigotmc:spigot-api:1.21-R0.1-SNAPSHOT"