From 0bdd06b280295066ff74a95140024bfaaa3f8aea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 17:36:30 -0400 Subject: [PATCH] Bump kotlin monorepo to v2 (major) (#408) * Bump kotlin monorepo to v2 * Bump kotlin monorepo to v2 * Bump kotlin monorepo to v2 * Fix Kotlin 2.0 support * Revert to Gradle 8.9 --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Erik Christensen <40830816+erikc5000@users.noreply.github.com> --- .gitignore | 1 + .../kotlin/io/islandtime/format/DateTimeTextProvider.kt | 4 +++- .../commonMain/kotlin/io/islandtime/zone/TimeZoneRules.kt | 6 +++++- .../kotlin/io/islandtime/format/DateTimeTextProvider.kt | 2 +- .../darwinMain/kotlin/io/islandtime/zone/TimeZoneRules.kt | 6 +++--- .../{DateTimeTextProvider.kt => JvmDateTimeTextProvider.kt} | 2 +- .../zone/{TimeZoneRules.kt => JvmTimeZoneRules.kt} | 6 +++--- gradle/libs.versions.toml | 2 +- 8 files changed, 18 insertions(+), 11 deletions(-) rename core/src/jvmMain/kotlin/io/islandtime/format/{DateTimeTextProvider.kt => JvmDateTimeTextProvider.kt} (99%) rename core/src/jvmMain/kotlin/io/islandtime/zone/{TimeZoneRules.kt => JvmTimeZoneRules.kt} (95%) diff --git a/.gitignore b/.gitignore index 60dceb206..fcaa0a87c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ !/.idea/codeStyleSettings.xml !/.idea/codeStyles .gradle/ +.kotlin/ build/ docs/api/ site/ diff --git a/core/src/commonMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt b/core/src/commonMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt index 80044543c..c1c47569e 100644 --- a/core/src/commonMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt +++ b/core/src/commonMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt @@ -138,4 +138,6 @@ interface DateTimeTextProvider { /** * The default provider of localized date-time text for the current platform. */ -expect object PlatformDateTimeTextProvider : DateTimeTextProvider +expect object PlatformDateTimeTextProvider : DateTimeTextProvider { + override fun parsableTextFor(field: DateTimeField, styles: Set, locale: Locale): ParsableTextList +} diff --git a/core/src/commonMain/kotlin/io/islandtime/zone/TimeZoneRules.kt b/core/src/commonMain/kotlin/io/islandtime/zone/TimeZoneRules.kt index 50f1311d8..503069f76 100644 --- a/core/src/commonMain/kotlin/io/islandtime/zone/TimeZoneRules.kt +++ b/core/src/commonMain/kotlin/io/islandtime/zone/TimeZoneRules.kt @@ -58,7 +58,11 @@ interface TimeZoneRulesProvider { /** * The default time zone rules provider implementation for the current platform. */ -expect object PlatformTimeZoneRulesProvider : TimeZoneRulesProvider +expect object PlatformTimeZoneRulesProvider : TimeZoneRulesProvider { + override val availableRegionIds: Set + override fun hasRulesFor(regionId: String): Boolean + override fun rulesFor(regionId: String): TimeZoneRules +} /** * A discontinuity in the local timeline, usually caused by daylight savings time changes. diff --git a/core/src/darwinMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt b/core/src/darwinMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt index 4789ff442..3b1c61fea 100644 --- a/core/src/darwinMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt +++ b/core/src/darwinMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt @@ -21,7 +21,7 @@ actual object PlatformDateTimeTextProvider : DateTimeTextProvider { val locale: Locale ) - override fun parsableTextFor(field: DateTimeField, styles: Set, locale: Locale): ParsableTextList { + actual override fun parsableTextFor(field: DateTimeField, styles: Set, locale: Locale): ParsableTextList { if (styles.isEmpty() || !supports(field)) { return emptyList() } diff --git a/core/src/darwinMain/kotlin/io/islandtime/zone/TimeZoneRules.kt b/core/src/darwinMain/kotlin/io/islandtime/zone/TimeZoneRules.kt index ec1532147..f5ffb88db 100644 --- a/core/src/darwinMain/kotlin/io/islandtime/zone/TimeZoneRules.kt +++ b/core/src/darwinMain/kotlin/io/islandtime/zone/TimeZoneRules.kt @@ -29,13 +29,13 @@ actual object PlatformTimeZoneRulesProvider : TimeZoneRulesProvider { private val cachedRegionIds = (NSTimeZone.knownTimeZoneNames as List).toSet() override val databaseVersion: String get() = NSTimeZone.timeZoneDataVersion - override val availableRegionIds: Set get() = cachedRegionIds + actual override val availableRegionIds: Set get() = cachedRegionIds - override fun hasRulesFor(regionId: String): Boolean { + actual override fun hasRulesFor(regionId: String): Boolean { return cachedRegionIds.contains(regionId) || NSTimeZone.timeZoneWithName(regionId) != null } - override fun rulesFor(regionId: String): TimeZoneRules { + actual override fun rulesFor(regionId: String): TimeZoneRules { return timeZoneRules.getOrPut(regionId) { DarwinTimeZoneRules( NSTimeZone.timeZoneWithName(regionId) diff --git a/core/src/jvmMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt b/core/src/jvmMain/kotlin/io/islandtime/format/JvmDateTimeTextProvider.kt similarity index 99% rename from core/src/jvmMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt rename to core/src/jvmMain/kotlin/io/islandtime/format/JvmDateTimeTextProvider.kt index 5181e0203..effe89d3c 100644 --- a/core/src/jvmMain/kotlin/io/islandtime/format/DateTimeTextProvider.kt +++ b/core/src/jvmMain/kotlin/io/islandtime/format/JvmDateTimeTextProvider.kt @@ -23,7 +23,7 @@ actual object PlatformDateTimeTextProvider : DateTimeTextProvider { val locale: Locale ) - override fun parsableTextFor( + actual override fun parsableTextFor( field: DateTimeField, styles: Set, locale: Locale diff --git a/core/src/jvmMain/kotlin/io/islandtime/zone/TimeZoneRules.kt b/core/src/jvmMain/kotlin/io/islandtime/zone/JvmTimeZoneRules.kt similarity index 95% rename from core/src/jvmMain/kotlin/io/islandtime/zone/TimeZoneRules.kt rename to core/src/jvmMain/kotlin/io/islandtime/zone/JvmTimeZoneRules.kt index b0e9b222b..8701d122a 100644 --- a/core/src/jvmMain/kotlin/io/islandtime/zone/TimeZoneRules.kt +++ b/core/src/jvmMain/kotlin/io/islandtime/zone/JvmTimeZoneRules.kt @@ -28,14 +28,14 @@ actual object PlatformTimeZoneRulesProvider : TimeZoneRulesProvider { throw TimeZoneRulesException(e.message, e) } - override val availableRegionIds: Set + actual override val availableRegionIds: Set get() = ZoneId.getAvailableZoneIds() - override fun hasRulesFor(regionId: String): Boolean { + actual override fun hasRulesFor(regionId: String): Boolean { return availableRegionIds.contains(regionId) } - override fun rulesFor(regionId: String): TimeZoneRules { + actual override fun rulesFor(regionId: String): TimeZoneRules { return try { JavaTimeZoneRules(ZoneId.of(regionId).rules) } catch (e: ZoneRulesException) { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9b97a2dc4..d3849105e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlin = "1.9.25" +kotlin = "2.0.10" dokka = "1.9.10" serialization = "1.6.3" atomicfu = "0.24.0"