Skip to content

Fix breaking builds on Native due to depending on serialization #109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ infra {
}
publishing {
include(":kotlinx-datetime")
include(":kotlinx-datetime-serialization")
libraryRepoUrl = "https://github.com/Kotlin/kotlinx-datetime"
sonatype { }
}
Expand Down
1 change: 0 additions & 1 deletion core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,6 @@ kotlin {
commonMain {
dependencies {
api("org.jetbrains.kotlin:kotlin-stdlib-common")
compileOnly("org.jetbrains.kotlinx:kotlinx-serialization-core:$serializationVersion")
}
}

Expand Down
5 changes: 0 additions & 5 deletions core/common/src/DateTimePeriod.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,10 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.DatePeriodIso8601Serializer
import kotlinx.datetime.serializers.DateTimePeriodIso8601Serializer
import kotlin.math.*
import kotlin.time.Duration
import kotlin.time.ExperimentalTime
import kotlinx.serialization.Serializable

@Serializable(with = DateTimePeriodIso8601Serializer::class)
// TODO: could be error-prone without explicitly named params
public sealed class DateTimePeriod {
internal abstract val totalMonths: Int
Expand Down Expand Up @@ -237,7 +233,6 @@ public sealed class DateTimePeriod {

public fun String.toDateTimePeriod(): DateTimePeriod = DateTimePeriod.parse(this)

@Serializable(with = DatePeriodIso8601Serializer::class)
public class DatePeriod internal constructor(
internal override val totalMonths: Int,
override val days: Int,
Expand Down
7 changes: 0 additions & 7 deletions core/common/src/DateTimeUnit.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,12 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.*
import kotlinx.serialization.Serializable
import kotlin.time.*

@Serializable(with = DateTimeUnitSerializer::class)
public sealed class DateTimeUnit {

public abstract operator fun times(scalar: Int): DateTimeUnit

@Serializable(with = TimeBasedDateTimeUnitSerializer::class)
public class TimeBased(public val nanoseconds: Long) : DateTimeUnit() {
private val unitName: String
private val unitScale: Long
Expand Down Expand Up @@ -64,10 +60,8 @@ public sealed class DateTimeUnit {
override fun toString(): String = formatToString(unitScale, unitName)
}

@Serializable(with = DateBasedDateTimeUnitSerializer::class)
public sealed class DateBased : DateTimeUnit() {
// TODO: investigate how to move subclasses up to DateTimeUnit scope
@Serializable(with = DayBasedDateTimeUnitSerializer::class)
public class DayBased(public val days: Int) : DateBased() {
init {
require(days > 0) { "Unit duration must be positive, but was $days days." }
Expand All @@ -85,7 +79,6 @@ public sealed class DateTimeUnit {
else
formatToString(days, "DAY")
}
@Serializable(with = MonthBasedDateTimeUnitSerializer::class)
public class MonthBased(public val months: Int) : DateBased() {
init {
require(months > 0) { "Unit duration must be positive, but was $months months." }
Expand Down
3 changes: 0 additions & 3 deletions core/common/src/Instant.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,9 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.InstantIso8601Serializer
import kotlinx.serialization.Serializable
import kotlin.time.*

@OptIn(ExperimentalTime::class)
@Serializable(with = InstantIso8601Serializer::class)
public expect class Instant : Comparable<Instant> {

/**
Expand Down
4 changes: 0 additions & 4 deletions core/common/src/LocalDate.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.LocalDateIso8601Serializer
import kotlinx.serialization.Serializable

@Serializable(with = LocalDateIso8601Serializer::class)
public expect class LocalDate : Comparable<LocalDate> {
public companion object {
/**
Expand Down
4 changes: 0 additions & 4 deletions core/common/src/LocalDateTime.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.LocalDateTimeIso8601Serializer
import kotlinx.serialization.Serializable

@Serializable(with = LocalDateTimeIso8601Serializer::class)
public expect class LocalDateTime : Comparable<LocalDateTime> {
public companion object {

Expand Down
6 changes: 0 additions & 6 deletions core/common/src/TimeZone.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,6 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.TimeZoneSerializer
import kotlinx.datetime.serializers.ZoneOffsetSerializer
import kotlinx.serialization.Serializable

@Serializable(with = TimeZoneSerializer::class)
public expect open class TimeZone {
/**
* Returns the identifier string of the time zone.
Expand Down Expand Up @@ -85,7 +80,6 @@ public expect open class TimeZone {
public fun LocalDateTime.toInstant(): Instant
}

@Serializable(with = ZoneOffsetSerializer::class)
public expect class ZoneOffset : TimeZone {
public val totalSeconds: Int
}
Expand Down
3 changes: 0 additions & 3 deletions core/js/src/Instant.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,8 @@ import kotlinx.datetime.internal.JSJoda.OffsetDateTime as jtOffsetDateTime
import kotlinx.datetime.internal.JSJoda.Duration as jtDuration
import kotlinx.datetime.internal.JSJoda.Clock as jtClock
import kotlinx.datetime.internal.JSJoda.ChronoUnit
import kotlinx.datetime.serializers.InstantIso8601Serializer
import kotlinx.serialization.Serializable
import kotlin.math.truncate

@Serializable(with = InstantIso8601Serializer::class)
@OptIn(ExperimentalTime::class)
public actual class Instant internal constructor(internal val value: jtInstant) : Comparable<Instant> {

Expand Down
3 changes: 0 additions & 3 deletions core/js/src/LocalDate.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,8 @@
package kotlinx.datetime

import kotlinx.datetime.internal.JSJoda.ChronoUnit
import kotlinx.datetime.serializers.LocalDateIso8601Serializer
import kotlinx.serialization.Serializable
import kotlinx.datetime.internal.JSJoda.LocalDate as jtLocalDate

@Serializable(with = LocalDateIso8601Serializer::class)
public actual class LocalDate internal constructor(internal val value: jtLocalDate) : Comparable<LocalDate> {
public actual companion object {
public actual fun parse(isoString: String): LocalDate = try {
Expand Down
3 changes: 0 additions & 3 deletions core/js/src/LocalDateTime.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,8 @@
*/
package kotlinx.datetime

import kotlinx.datetime.serializers.LocalDateTimeIso8601Serializer
import kotlinx.serialization.Serializable
import kotlinx.datetime.internal.JSJoda.LocalDateTime as jtLocalDateTime

@Serializable(with = LocalDateTimeIso8601Serializer::class)
public actual class LocalDateTime internal constructor(internal val value: jtLocalDateTime) : Comparable<LocalDateTime> {

public actual constructor(year: Int, monthNumber: Int, dayOfMonth: Int, hour: Int, minute: Int, second: Int, nanosecond: Int) :
Expand Down
5 changes: 0 additions & 5 deletions core/js/src/TimeZone.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,8 @@
package kotlinx.datetime

import kotlinx.datetime.internal.JSJoda.ZoneId
import kotlinx.datetime.serializers.TimeZoneSerializer
import kotlinx.datetime.serializers.ZoneOffsetSerializer
import kotlinx.serialization.Serializable
import kotlinx.datetime.internal.JSJoda.ZoneOffset as jtZoneOffset

@Serializable(with = TimeZoneSerializer::class)
public actual open class TimeZone internal constructor(internal val zoneId: ZoneId) {
public actual val id: String get() = zoneId.id()

Expand Down Expand Up @@ -46,7 +42,6 @@ public actual open class TimeZone internal constructor(internal val zoneId: Zone
}
}

@Serializable(with = ZoneOffsetSerializer::class)
public actual class ZoneOffset internal constructor(zoneOffset: jtZoneOffset): TimeZone(zoneOffset) {
private val zoneOffset get() = zoneId as jtZoneOffset

Expand Down
3 changes: 0 additions & 3 deletions core/jvm/src/Instant.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.InstantIso8601Serializer
import kotlinx.serialization.Serializable
import java.time.DateTimeException
import java.time.format.DateTimeParseException
import java.time.temporal.ChronoUnit
Expand All @@ -16,7 +14,6 @@ import java.time.Instant as jtInstant
import java.time.OffsetDateTime as jtOffsetDateTime
import java.time.Clock as jtClock

@Serializable(with = InstantIso8601Serializer::class)
@OptIn(ExperimentalTime::class)
public actual class Instant internal constructor(internal val value: jtInstant) : Comparable<Instant> {

Expand Down
3 changes: 0 additions & 3 deletions core/jvm/src/LocalDate.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,11 @@
@file:JvmName("LocalDateJvmKt")
package kotlinx.datetime

import kotlinx.datetime.serializers.LocalDateIso8601Serializer
import kotlinx.serialization.Serializable
import java.time.DateTimeException
import java.time.format.DateTimeParseException
import java.time.temporal.ChronoUnit
import java.time.LocalDate as jtLocalDate

@Serializable(with = LocalDateIso8601Serializer::class)
public actual class LocalDate internal constructor(internal val value: jtLocalDate) : Comparable<LocalDate> {
public actual companion object {
public actual fun parse(isoString: String): LocalDate = try {
Expand Down
3 changes: 0 additions & 3 deletions core/jvm/src/LocalDateTime.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,13 @@
@file:JvmName("LocalDateTimeJvmKt")
package kotlinx.datetime

import kotlinx.datetime.serializers.LocalDateTimeIso8601Serializer
import kotlinx.serialization.Serializable
import java.time.DateTimeException
import java.time.format.DateTimeParseException
import java.time.LocalDateTime as jtLocalDateTime

public actual typealias Month = java.time.Month
public actual typealias DayOfWeek = java.time.DayOfWeek

@Serializable(with = LocalDateTimeIso8601Serializer::class)
public actual class LocalDateTime internal constructor(internal val value: jtLocalDateTime) : Comparable<LocalDateTime> {

public actual constructor(year: Int, monthNumber: Int, dayOfMonth: Int, hour: Int, minute: Int, second: Int, nanosecond: Int) :
Expand Down
5 changes: 0 additions & 5 deletions core/jvm/src/TimeZoneJvm.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,10 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.TimeZoneSerializer
import kotlinx.datetime.serializers.ZoneOffsetSerializer
import kotlinx.serialization.Serializable
import java.time.DateTimeException
import java.time.ZoneId
import java.time.ZoneOffset as jtZoneOffset

@Serializable(with = TimeZoneSerializer::class)
public actual open class TimeZone internal constructor(internal val zoneId: ZoneId) {
public actual val id: String get() = zoneId.id

Expand Down Expand Up @@ -51,7 +47,6 @@ public actual open class TimeZone internal constructor(internal val zoneId: Zone
}
}

@Serializable(with = ZoneOffsetSerializer::class)
public actual class ZoneOffset internal constructor(zoneOffset: jtZoneOffset): TimeZone(zoneOffset) {
internal val zoneOffset get() = zoneId as jtZoneOffset

Expand Down
3 changes: 0 additions & 3 deletions core/native/src/Instant.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.InstantIso8601Serializer
import kotlinx.serialization.Serializable
import kotlin.math.*
import kotlin.time.*

Expand Down Expand Up @@ -126,7 +124,6 @@ private fun isValidInstantSecond(second: Long) = second >= MIN_SECOND && second

internal expect fun currentTime(): Instant

@Serializable(with = InstantIso8601Serializer::class)
@OptIn(ExperimentalTime::class)
public actual class Instant internal constructor(public actual val epochSeconds: Long, public actual val nanosecondsOfSecond: Int) : Comparable<Instant> {

Expand Down
3 changes: 0 additions & 3 deletions core/native/src/LocalDate.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.LocalDateIso8601Serializer
import kotlinx.serialization.Serializable
import kotlin.math.*

// This is a function and not a value due to https://github.com/Kotlin/kotlinx-datetime/issues/5
Expand All @@ -36,7 +34,6 @@ internal const val YEAR_MAX = 999_999
private fun isValidYear(year: Int): Boolean =
year >= YEAR_MIN && year <= YEAR_MAX

@Serializable(with = LocalDateIso8601Serializer::class)
public actual class LocalDate actual constructor(public actual val year: Int, public actual val monthNumber: Int, public actual val dayOfMonth: Int) : Comparable<LocalDate> {

init {
Expand Down
4 changes: 0 additions & 4 deletions core/native/src/LocalDateTime.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.LocalDateTimeIso8601Serializer
import kotlinx.serialization.Serializable

// This is a function and not a value due to https://github.com/Kotlin/kotlinx-datetime/issues/5
// org.threeten.bp.format.DateTimeFormatter#ISO_LOCAL_DATE_TIME
internal val localDateTimeParser: Parser<LocalDateTime>
Expand All @@ -21,7 +18,6 @@ internal val localDateTimeParser: Parser<LocalDateTime>
LocalDateTime(date, time)
}

@Serializable(with = LocalDateTimeIso8601Serializer::class)
public actual class LocalDateTime internal constructor(
public actual val date: LocalDate, internal val time: LocalTime) : Comparable<LocalDateTime> {
public actual companion object {
Expand Down
5 changes: 0 additions & 5 deletions core/native/src/TimeZone.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,9 @@

package kotlinx.datetime

import kotlinx.datetime.serializers.TimeZoneSerializer
import kotlinx.datetime.serializers.ZoneOffsetSerializer
import kotlin.math.abs
import kotlin.native.concurrent.*
import kotlinx.serialization.Serializable

@Serializable(with = TimeZoneSerializer::class)
public actual open class TimeZone internal constructor(internal val value: TimeZoneImpl) {

public actual companion object {
Expand Down Expand Up @@ -83,7 +79,6 @@ public actual open class TimeZone internal constructor(internal val value: TimeZ
@ThreadLocal
private var zoneOffsetCache: MutableMap<Int, ZoneOffset> = mutableMapOf()

@Serializable(with = ZoneOffsetSerializer::class)
public actual class ZoneOffset internal constructor(internal val offset: ZoneOffsetImpl) : TimeZone(offset) {

public actual val totalSeconds: Int get() = offset.totalSeconds
Expand Down
2 changes: 2 additions & 0 deletions serialization/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import java.util.Locale
plugins {
id("kotlin-multiplatform")
kotlin("plugin.serialization")
`maven-publish`
}

val JDK_8: String by project
Expand Down Expand Up @@ -70,6 +71,7 @@ kotlin {
dependencies {
api(project(":kotlinx-datetime"))
api("org.jetbrains.kotlin:kotlin-stdlib-common")
api("org.jetbrains.kotlinx:kotlinx-serialization-core:$serializationVersion")
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
*/

package kotlinx.datetime.serializers
package kotlinx.datetime.serialization

import kotlinx.datetime.DatePeriod
import kotlinx.datetime.DateTimePeriod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
*/

package kotlinx.datetime.serializers
package kotlinx.datetime.serialization

import kotlinx.datetime.DateTimeUnit
import kotlinx.serialization.*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
*/

package kotlinx.datetime.serializers
package kotlinx.datetime.serialization

import kotlinx.datetime.DayOfWeek
import kotlinx.serialization.*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
*/

package kotlinx.datetime.serializers
package kotlinx.datetime.serialization

import kotlinx.datetime.Instant
import kotlinx.serialization.*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
*/

package kotlinx.datetime.serializers
package kotlinx.datetime.serialization

import kotlinx.datetime.LocalDate
import kotlinx.serialization.*
Expand Down
Loading