@@ -19,7 +19,7 @@ pluginManagement {
1919fun Path.bufferedReader (
2020 charset : Charset = Charsets .UTF_8 ,
2121 bufferSize : Int = DEFAULT_BUFFER_SIZE ,
22- vararg options : OpenOption
22+ vararg options : OpenOption ,
2323): BufferedReader {
2424 return BufferedReader (
2525 InputStreamReader (
@@ -32,6 +32,7 @@ fun Path.bufferedReader(
3232
3333object SettingsConventions {
3434 const val KOTLIN_VERSION_ENV_VAR_NAME = " KOTLIN_VERSION"
35+ const val LIBRARY_VERSION_ENV_VAR_NAME = " LIBRARY_VERSION"
3536 const val EAP_VERSION_ENV_VAR_NAME = " EAP_VERSION"
3637
3738 const val KSP_VERSION_ALIAS = " ksp"
@@ -82,10 +83,18 @@ fun loadLookupTable(rootDir: Path, kotlinVersion: String): Pair<Map<String, Stri
8283 .split(" \n " )
8384 .takeIf { it.size >= 2 }
8485 ?.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+ }
8998 }
9099 }
91100 ?.takeIf { (keys, values) -> keys.size == values.size }
@@ -156,16 +165,22 @@ fun VersionCatalogBuilder.resolveKotlinVersion(versionCatalog: Map<String, Strin
156165 ? : error(" Expected to resolve '${SettingsConventions .KOTLIN_VERSION_ALIAS } ' version" )
157166}
158167
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
161170fun 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 ]
165173 ? : error(" Expected to resolve '${SettingsConventions .LIBRARY_CORE_VERSION_ALIAS } ' version" )
166- val libraryCoreVersion = libraryCatalogVersion + eapVersion
167174
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)
169184}
170185
171186fun String.kotlinVersionParsed (): KotlinVersion {
@@ -193,11 +208,13 @@ dependencyResolutionManagement {
193208 val isLatestKotlin = latestKotlin == kotlinVersion
194209
195210 extra[" kotlinVersion" ] = kotlinVersion.kotlinVersionParsed()
211+ extra[" kotlinVersionFull" ] = kotlinVersion
196212 extra[" isLatestKotlinVersion" ] = isLatestKotlin
197213
198214 gradle.rootProject {
199215 allprojects {
200216 this .extra[" kotlinVersion" ] = kotlinVersion.kotlinVersionParsed()
217+ this .extra[" kotlinVersionFull" ] = kotlinVersion
201218 this .extra[" isLatestKotlinVersion" ] = isLatestKotlin
202219 }
203220 }
0 commit comments