diff --git a/build.gradle.kts b/build.gradle.kts index 7f73c38..03b4b1f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,7 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + plugins { // Apply the Java Gradle plugin development plugin to add support for developing Gradle plugins `java-gradle-plugin` @@ -62,6 +66,23 @@ val functionalTest by tasks.registering(Test::class) { gradlePlugin.testSourceSets.add(functionalTestSourceSet) +tasks.named("compileJava") { + targetCompatibility = JvmTarget.JVM_17.target +} + +tasks.named("compileKotlin") { + compilerOptions { + optIn = listOf("kotlin.io.path.ExperimentalPathApi") + + // See https://docs.gradle.org/current/userguide/compatibility.html#java_runtime. + jvmTarget = JvmTarget.JVM_17 + + // See https://docs.gradle.org/current/userguide/compatibility.html#kotlin. + languageVersion = @Suppress("DEPRECATION") KotlinVersion.KOTLIN_1_4 + apiVersion = @Suppress("DEPRECATION") KotlinVersion.KOTLIN_1_4 + } +} + tasks.named("check") { // Run the functional tests as part of `check` dependsOn(functionalTest) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 705fa7a..2ec54aa 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,10 +1,10 @@ [versions] -assertj = "3.27.2" +assertj = "3.27.3" git-semver-plugin = "0.16.1" jgit = "7.3.0.202506031305-r" -kotlin = "1.9.10" -plugin-publish = "1.2.1" -slf4j = "1.7.36" +kotlin = "2.0.0" +plugin-publish = "1.3.1" +slf4j = "2.0.17" [plugins] git-semver = { id = "com.github.jmongard.git-semver-plugin", version.ref = "git-semver-plugin" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b9..1b33c55 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index cea7a79..d4081da 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6..23d15a9 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9d21a21..db3a6ac 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/src/main/kotlin/git/semver/plugin/changelog/ChangeLogFormat.kt b/src/main/kotlin/git/semver/plugin/changelog/ChangeLogFormat.kt index 7a826e6..3efb6d4 100644 --- a/src/main/kotlin/git/semver/plugin/changelog/ChangeLogFormat.kt +++ b/src/main/kotlin/git/semver/plugin/changelog/ChangeLogFormat.kt @@ -21,7 +21,7 @@ object ChangeLogFormat { } // Fixes and then Features from typesOrder - withType(types = constants.typesOrder.toTypedArray()) { + withType(*constants.typesOrder.toTypedArray()) { filterEmptyHeader(constants.headerTexts[groupKey]) { appendLine(groupKey) formatChanges { @@ -75,7 +75,7 @@ object ChangeLogFormat { } appendLine() } - withType(types = constants.typesOrder.toTypedArray()) { + withType(*constants.typesOrder.toTypedArray()) { appendLine(constants.headerTexts[groupKey]) formatChanges { append("- ").append(scope()).appendLine(header()) diff --git a/src/main/kotlin/git/semver/plugin/semver/VersionFinder.kt b/src/main/kotlin/git/semver/plugin/semver/VersionFinder.kt index 0b8602b..6d78d91 100644 --- a/src/main/kotlin/git/semver/plugin/semver/VersionFinder.kt +++ b/src/main/kotlin/git/semver/plugin/semver/VersionFinder.kt @@ -143,7 +143,7 @@ class VersionFinder(private val settings: SemverSettings, private val tags: Map< return when { parentSemVersions.isEmpty() -> versionZero() parentSemVersions.size == 1 -> parentSemVersions[0] - else -> parentSemVersions.max().mergeChanges(parentSemVersions) + else -> checkNotNull(parentSemVersions.maxOrNull()).mergeChanges(parentSemVersions) } }