@@ -19,7 +19,7 @@ pluginManagement {
19
19
fun Path.bufferedReader (
20
20
charset : Charset = Charsets .UTF_8 ,
21
21
bufferSize : Int = DEFAULT_BUFFER_SIZE ,
22
- vararg options : OpenOption
22
+ vararg options : OpenOption ,
23
23
): BufferedReader {
24
24
return BufferedReader (
25
25
InputStreamReader (
@@ -32,6 +32,7 @@ fun Path.bufferedReader(
32
32
33
33
object SettingsConventions {
34
34
const val KOTLIN_VERSION_ENV_VAR_NAME = " KOTLIN_VERSION"
35
+ const val LIBRARY_VERSION_ENV_VAR_NAME = " LIBRARY_VERSION"
35
36
const val EAP_VERSION_ENV_VAR_NAME = " EAP_VERSION"
36
37
37
38
const val KSP_VERSION_ALIAS = " ksp"
@@ -82,10 +83,18 @@ fun loadLookupTable(rootDir: Path, kotlinVersion: String): Pair<Map<String, Stri
82
83
.split(" \n " )
83
84
.takeIf { it.size >= 2 }
84
85
?.run {
85
- latest = get(1 ).substringBefore(' ,' )
86
- when (val versionsRow = singleOrNull { it.startsWith(kotlinVersion) }) {
87
- null -> null
88
- else -> first().asCsvValues() to versionsRow.asCsvValues()
86
+ first().asCsvValues() to when (val versionsRow = singleOrNull { it.startsWith(kotlinVersion) }) {
87
+ // resolve latest for an unknown version
88
+ // considers that unknown versions are too new and not yet added
89
+ null -> {
90
+ latest = kotlinVersion
91
+ get(1 ).asCsvValues()
92
+ }
93
+
94
+ else -> {
95
+ latest = get(1 ).substringBefore(' ,' )
96
+ versionsRow.asCsvValues()
97
+ }
89
98
}
90
99
}
91
100
?.takeIf { (keys, values) -> keys.size == values.size }
@@ -156,16 +165,22 @@ fun VersionCatalogBuilder.resolveKotlinVersion(versionCatalog: Map<String, Strin
156
165
? : error(" Expected to resolve '${SettingsConventions .KOTLIN_VERSION_ALIAS } ' version" )
157
166
}
158
167
159
- // Resolves core kotlinx.rpc version (without Kotlin version prefix) from Versions Catalog.
160
- // Updates it with EAP_VERSION suffix of present.
168
+ // Resolves a core kotlinx.rpc version (without a Kotlin version prefix) from the Version Catalog.
169
+ // Uses LIBRARY_VERSION_ENV_VAR_NAME instead if present
161
170
fun VersionCatalogBuilder.resolveLibraryVersion (versionCatalog : Map <String , String >) {
162
- val eapVersion: String = System .getenv(SettingsConventions .EAP_VERSION_ENV_VAR_NAME )
163
- ?.let { " -eap-$it " } ? : " "
164
- val libraryCatalogVersion = versionCatalog[SettingsConventions .LIBRARY_CORE_VERSION_ALIAS ]
171
+ val libraryCoreVersion: String = System .getenv(SettingsConventions .LIBRARY_VERSION_ENV_VAR_NAME )
172
+ ? : versionCatalog[SettingsConventions .LIBRARY_CORE_VERSION_ALIAS ]
165
173
? : error(" Expected to resolve '${SettingsConventions .LIBRARY_CORE_VERSION_ALIAS } ' version" )
166
- val libraryCoreVersion = libraryCatalogVersion + eapVersion
167
174
168
- version(SettingsConventions .LIBRARY_CORE_VERSION_ALIAS , libraryCoreVersion)
175
+ val eapVersion: String = System .getenv(SettingsConventions .EAP_VERSION_ENV_VAR_NAME )
176
+ ?.let {
177
+ when (it){
178
+ " SNAPSHOT" -> " -$it "
179
+ else -> " -eap-$it "
180
+ }
181
+ } ? : " "
182
+
183
+ version(SettingsConventions .LIBRARY_CORE_VERSION_ALIAS , libraryCoreVersion + eapVersion)
169
184
}
170
185
171
186
fun String.kotlinVersionParsed (): KotlinVersion {
@@ -193,11 +208,13 @@ dependencyResolutionManagement {
193
208
val isLatestKotlin = latestKotlin == kotlinVersion
194
209
195
210
extra[" kotlinVersion" ] = kotlinVersion.kotlinVersionParsed()
211
+ extra[" kotlinVersionFull" ] = kotlinVersion
196
212
extra[" isLatestKotlinVersion" ] = isLatestKotlin
197
213
198
214
gradle.rootProject {
199
215
allprojects {
200
216
this .extra[" kotlinVersion" ] = kotlinVersion.kotlinVersionParsed()
217
+ this .extra[" kotlinVersionFull" ] = kotlinVersion
201
218
this .extra[" isLatestKotlinVersion" ] = isLatestKotlin
202
219
}
203
220
}
0 commit comments