Skip to content

Commit 07c1427

Browse files
committed
chore: configure Kotlin for explicit languageVersion, coreLibrariesVersion
1 parent 446bc66 commit 07c1427

File tree

11 files changed

+84
-37
lines changed

11 files changed

+84
-37
lines changed

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ About
55

66
This is a set of Gradle plugins to simplify release tasks
77

8+
Gradle version compatibilty
9+
===========================
10+
11+
* 3.x requires Gradle 7.2, Kotlin 1.5, Java 8
12+
* 2.x requires Gradle 4.1, Kotlin 1.4, Java 8
13+
* 1.x requires Gradle 4.1, Kotlin 1.4, Java 8
14+
815
Checksum Dependency Plugin
916
==========================
1017

buildSrc/build.gradle.kts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import org.gradle.kotlin.dsl.support.expectedKotlinDslPluginsVersion
22
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
3+
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
34
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
45

56
/*
@@ -62,8 +63,13 @@ fun Project.applyKotlinProjectConventions() {
6263
tasks.withType<JavaCompile>().configureEach {
6364
options.release.set(11)
6465
}
65-
tasks.withType<KotlinJvmCompile>().configureEach {
66+
kotlin {
67+
@Suppress("DEPRECATION")
68+
val targetKotlinVersion = KotlinVersion.KOTLIN_1_5
69+
6670
compilerOptions {
71+
apiVersion.set(targetKotlinVersion)
72+
languageVersion.set(targetKotlinVersion)
6773
jvmTarget = JvmTarget.JVM_11
6874
freeCompilerArgs.add("-Xjdk-release=11")
6975
}

buildSrc/src/main/kotlin/build.kotlin-conventions.gradle.kts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,23 @@
1717

1818
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
1919
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
20-
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
2120

2221
plugins {
2322
id("build.java-conventions")
2423
id("com.github.autostyle")
2524
kotlin("jvm")
2625
}
2726

28-
tasks.withType<KotlinJvmCompile>().configureEach {
27+
kotlin {
28+
@Suppress("DEPRECATION")
29+
val targetKotlinVersion = KotlinVersion.KOTLIN_1_5
30+
31+
coreLibrariesVersion = "1.5.31"
2932
compilerOptions {
30-
freeCompilerArgs.add("-Xjdk-release=8")
31-
@Suppress("DEPRECATION")
32-
apiVersion.set(KotlinVersion.KOTLIN_1_4)
3333
jvmTarget = JvmTarget.JVM_1_8
34+
freeCompilerArgs.add("-Xjdk-release=8")
35+
apiVersion.set(targetKotlinVersion)
36+
languageVersion.set(targetKotlinVersion)
3437
}
3538
}
3639

plugins/gettext-plugin/src/main/kotlin/com/github/vlsi/gradle/gettext/BaseGettextEditTask.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ abstract class BaseGettextEditTask @Inject constructor(
5555
searchBytes.withIndex().all { (j, v) -> v == potBytes[i + j] }
5656
} ?: return
5757
val headerEnd =
58-
(headerStart..potBytes.size).find { potBytes[it] == '"'.toByte() } ?: return
58+
(headerStart..potBytes.size).find { potBytes[it] == '"'.code.toByte() } ?: return
5959

6060
outputStream().use {
6161
it.write(potBytes, 0, headerStart)

plugins/gradle-extensions-plugin/src/main/kotlin/com/github/vlsi/gradle/publishing/dsl/PublicationContainerExtensions.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,16 @@ import org.gradle.api.publish.PublishingExtension
2121
import org.gradle.api.publish.maven.MavenPublication
2222
import org.gradle.kotlin.dsl.configure
2323
import org.gradle.kotlin.dsl.named
24+
import java.util.Locale
2425

2526
fun Project.extraMavenPublications() = extraMavenPublications("Maven", name)
2627

2728
fun Project.extraMavenPublications(configurationName: String, publicationName: String) {
28-
val configuration = configurations.create("extra${configurationName.capitalize()}Publications") {
29+
val configuration = configurations.create("extra${
30+
configurationName.replaceFirstChar {
31+
if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString()
32+
}
33+
}Publications") {
2934
isVisible = false
3035
isCanBeResolved = false
3136
isCanBeConsumed = false

plugins/license-gather-plugin/src/main/kotlin/com/github/vlsi/gradle/license/TfIdf.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class TfIdfBuilder<Document> {
6969
.associateTo(mutableMapOf()) { (index, term) ->
7070
index to termCount.getValue(term) * idf.getValue(term)
7171
}
72-
val k = 1 / sqrt(terms.values.sumByDouble { it * it })
72+
val k = 1 / sqrt(terms.values.sumOf { it * it })
7373
terms.replaceAll { _, value -> value * k }
7474
docVec[document] = terms
7575
}
@@ -236,7 +236,7 @@ class Tokenizer {
236236
fun getTokens(input: String): List<Term> {
237237
val text = input
238238
.replace(SPDX_TAG, " ")
239-
.toLowerCase()
239+
.lowercase()
240240
.replace(COPYRIGHT, "copyright ")
241241

242242
val words = WHITESPACE.split(text)
@@ -276,7 +276,7 @@ class Predictor<Document>(
276276
)
277277
}
278278

279-
val norm = 1 / sqrt(testVec.values.sumByDouble { it * it })
279+
val norm = 1 / sqrt(testVec.values.sumOf { it * it })
280280
testVec.replaceAll { _, value -> value * norm }
281281

282282
return docVec.mapValues { (_, docTerms) -> cross(testVec, docTerms) }

plugins/license-gather-plugin/src/main/kotlin/com/github/vlsi/gradle/license/api/LicenseExpressionParser.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class LicenseExpressionParser(private val titleParser: LicenseParser = DefaultLi
5757
.map {
5858
Token(
5959
position = it.range, value = it.value,
60-
type = when (it.value.toUpperCase()) {
60+
type = when (it.value.uppercase()) {
6161
"(" -> TokenType.LBRACE
6262
")" -> TokenType.RBRACE
6363
"+" -> TokenType.PLUS

plugins/stage-vote-release-plugin/src/main/kotlin/com/github/vlsi/gradle/release/ReleaseExtension.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import org.gradle.api.tasks.TaskProvider
3232
import org.gradle.api.tasks.bundling.AbstractArchiveTask
3333
import org.gradle.kotlin.dsl.*
3434
import java.time.Duration
35+
import java.util.Locale
3536

3637
/**
3738
* Setting up local release environment:
@@ -296,7 +297,7 @@ open class GitConfig @Inject constructor(
296297
val pushRepositoryProvider = objects.property<GitPushRepositoryProvider>()
297298
.convention(ext.prefixForProperties.map { prefix ->
298299
project.stringProperty("$prefix.git.pushRepositoryProvider")
299-
?.let { GitPushRepositoryProvider.valueOf(it.toUpperCase()) }
300+
?.let { GitPushRepositoryProvider.valueOf(it.uppercase()) }
300301
?: GitPushRepositoryProvider.GITHUB
301302
})
302303

@@ -313,7 +314,9 @@ open class GitConfig @Inject constructor(
313314

314315
val branch = objects.property<String>()
315316

316-
val credentials = objects.newInstance<Credentials>("Git" + name.capitalize(), ext)
317+
val credentials = objects.newInstance<Credentials>("Git" + name.replaceFirstChar {
318+
if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString()
319+
}, ext)
317320

318321
override fun toString() = "${urls.get().pushUrl}, branch: ${branch.get()}"
319322
}
@@ -349,7 +352,7 @@ open class Credentials @Inject constructor(
349352
private val kebabDelimeters = Regex("""(\p{Lower})\s*(\p{Upper})""")
350353
private fun String.toKebabCase() =
351354
replace(kebabDelimeters) { "${it.groupValues[1]}-${it.groupValues[2]}" }
352-
.toLowerCase()
355+
.lowercase()
353356

354357
class ReleaseArtifact(
355358
val name: String,
@@ -375,7 +378,7 @@ class ReleaseParams(
375378
get() = gitSha.subSequence(0, 10)
376379

377380
val tlpUrl
378-
get() = tlp.toLowerCase()
381+
get() = tlp.lowercase()
379382
}
380383

381384
internal fun Project.validate(credentials: () -> Credentials) = listOf(

plugins/stage-vote-release-plugin/src/main/kotlin/com/github/vlsi/gradle/release/StageVoteReleasePlugin.kt

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ import java.io.File
6262
import java.net.URI
6363
import java.nio.charset.StandardCharsets
6464
import java.time.Duration
65+
import java.util.Locale
6566
import javax.inject.Inject
6667

6768
class StageVoteReleasePlugin @Inject constructor(
@@ -155,8 +156,16 @@ class StageVoteReleasePlugin @Inject constructor(
155156
hideMavenPublishTasks()
156157

157158
// Tasks from NexusStagingPlugin
158-
val closeRepository = tasks.named("close${REPOSITORY_NAME.capitalize()}StagingRepository")
159-
val releaseRepository = tasks.named("release${REPOSITORY_NAME.capitalize()}StagingRepository")
159+
val closeRepository = tasks.named("close${
160+
REPOSITORY_NAME.replaceFirstChar {
161+
if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString()
162+
}
163+
}StagingRepository")
164+
val releaseRepository = tasks.named("release${
165+
REPOSITORY_NAME.replaceFirstChar {
166+
if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString()
167+
}
168+
}StagingRepository")
160169

161170
val pushRcTag = createPushRcTag(releaseExt, validateRcIndexSpecified, validateBeforeBuildingReleaseArtifacts, closeRepository)
162171
val pushReleaseTag = createPushReleaseTag(releaseExt, validateRcIndexSpecified, releaseRepository)
@@ -204,7 +213,11 @@ class StageVoteReleasePlugin @Inject constructor(
204213
}
205214
closeRepository.hide()
206215
releaseRepository.hide()
207-
tasks.named("closeAndRelease${REPOSITORY_NAME.capitalize()}StagingRepository").hide()
216+
tasks.named("closeAndRelease${
217+
REPOSITORY_NAME.replaceFirstChar {
218+
if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString()
219+
}
220+
}StagingRepository").hide()
208221

209222
releaseRepository {
210223
// Note: publishSvnDist might fail, and it is easier to rollback than "rollback Nexus"
@@ -231,7 +244,11 @@ class StageVoteReleasePlugin @Inject constructor(
231244
allprojects {
232245
plugins.withType<MavenPublishPlugin> {
233246
stageDist {
234-
dependsOn(tasks.named("publishAllPublicationsTo${REPOSITORY_NAME.capitalize()}Repository"))
247+
dependsOn(tasks.named("publishAllPublicationsTo${
248+
REPOSITORY_NAME.replaceFirstChar {
249+
if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString()
250+
}
251+
}Repository"))
235252
}
236253
}
237254
}
@@ -400,7 +417,11 @@ class StageVoteReleasePlugin @Inject constructor(
400417
tasks.withType<PublishToMavenRepository>().hide()
401418
tasks.withType<PublishToMavenLocal>().hide()
402419
tasks.withType<GenerateModuleMetadata>().hide()
403-
tasks.named("publishAllPublicationsTo${REPOSITORY_NAME.capitalize()}Repository").hide()
420+
tasks.named("publishAllPublicationsTo${
421+
REPOSITORY_NAME.replaceFirstChar {
422+
if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString()
423+
}
424+
}Repository").hide()
404425
val generatePomTasks = tasks.withType<GenerateMavenPom>()
405426
generatePomTasks.hide()
406427
tasks.register("generatePom") {
@@ -577,16 +598,28 @@ class StageVoteReleasePlugin @Inject constructor(
577598
}
578599
})
579600

580-
tasks.named<ReleaseNexusStagingRepository>("release${REPOSITORY_NAME.capitalize()}StagingRepository") {
601+
tasks.named<ReleaseNexusStagingRepository>("release${
602+
REPOSITORY_NAME.replaceFirstChar {
603+
if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString()
604+
}
605+
}StagingRepository") {
581606
stagingRepositoryId.set(project.provider { releaseExt.repositoryIdStore.getOrLoad(REPOSITORY_NAME) })
582607
}
583-
tasks.named<InitializeNexusStagingRepository>("initialize${repo.name.capitalize()}StagingRepository") {
608+
tasks.named<InitializeNexusStagingRepository>("initialize${
609+
repo.name.replaceFirstChar {
610+
if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString()
611+
}
612+
}StagingRepository") {
584613
dependsOn(validateBeforeBuildingReleaseArtifacts)
585614
dependsOn(validateNexusCredentials)
586615
doLast {
587616
val repoName = repository.get().name
588617
val closeRepoTask =
589-
rootProject.tasks.named<CloseNexusStagingRepository>("close${repoName.capitalize()}StagingRepository")
618+
rootProject.tasks.named<CloseNexusStagingRepository>("close${
619+
repoName.replaceFirstChar {
620+
if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString()
621+
}
622+
}StagingRepository")
590623
val stagingRepositoryId =
591624
closeRepoTask.get().stagingRepositoryId.get()
592625
releaseExt.repositoryIdStore[repoName] = stagingRepositoryId

plugins/stage-vote-release-plugin/src/main/kotlin/com/github/vlsi/gradle/release/svn/Svn.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import java.io.ByteArrayOutputStream
2525
import java.net.URI
2626
import java.time.OffsetDateTime
2727
import org.gradle.api.GradleException
28-
import org.gradle.api.Project
2928
import org.gradle.api.logging.Logger
3029
import org.gradle.process.ExecOperations
3130
import java.io.File
@@ -46,7 +45,7 @@ class Svn(val execOperations: ExecOperations, val logger: Logger, val projectDir
4645
// </entry>
4746
// ...
4847
private fun GPathResult.toSvnEntry(path: String) = SvnEntry(
49-
kind = attr("kind").let { EntryKind.valueOf(it.toUpperCase()) },
48+
kind = attr("kind").let { EntryKind.valueOf(it.uppercase()) },
5049
path = path,
5150
name = get("name").text(),
5251
size = get("size").text().ifBlank { null }?.toLong(),
@@ -106,7 +105,7 @@ class Svn(val execOperations: ExecOperations, val logger: Logger, val projectDir
106105
val stderr = ByteArrayOutputStream()
107106
val result = execOperations.exec {
108107
workingDir = projectDir
109-
commandLine("svn", "ls", "--xml", "--depth", opts.depth.name.toLowerCase())
108+
commandLine("svn", "ls", "--xml", "--depth", opts.depth.name.lowercase())
110109
for (folder in opts.folders) {
111110
args("$uri/$folder/")
112111
}

0 commit comments

Comments
 (0)