Skip to content

Commit

Permalink
Merge branch 'main' into feat/entitlements
Browse files Browse the repository at this point in the history
  • Loading branch information
viztea authored Jul 11, 2024
2 parents 9cea72f + 0e4c537 commit c68f2cd
Show file tree
Hide file tree
Showing 134 changed files with 33,762 additions and 2,171 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/gradle-wrapper-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v2
uses: gradle/actions/wrapper-validation@v3
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
.gradle/
.idea/*
!.idea/icon.png
out/
.kotlin/

**/build/*
!**/build/generated/
Expand Down
56 changes: 56 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,59 @@
# 0.14.0

## Additions

* Support other `SerialFormat`s in `LongOrStringSerializer` (#937)

## Changes

* Bump `DeprecationLevel`s after 0.13.0 (#908)
* Rewrite `Event.DeserializationStrategy` (#923)
* Deprecate application command events (#927)
* Rewrite `VoiceEvent.DeserializationStrategy` (#925)
* Switch to OkHttp as http client on jvm (by @DRSchlaubi in #928)

## Fixes

* `DiscordVoiceState.member` uses incorrect serial name (by @viztea in #914)
* Use actual zero width space in `EmbedBuilder` (by @matytyma in #917)
* Fix some cache links (#934)

## Dependencies

Updated in #920, #929 and #943

* Gradle 8.5 -> 8.7
* Kotlin 1.9.21 -> 1.9.24
* Ktor 2.3.7 -> 2.3.11
* kotlinx.coroutines 1.7.3 -> 1.8.1
* kotlinx.serialization 1.6.2 -> 1.6.3
* kotlinx-datetime 0.5.0 -> 0.6.0
* kotlin-logging 6.0.1 -> 6.0.9
* SLF4J 2.0.9 -> 2.0.13
* kotlin-node 18.16.12-pre.619 -> 20.11.5-pre.751
* kotlin-multiplatform-bignum 0.3.8 -> 0.3.9
* Stately 2.0.6 -> 2.0.7
* KSP 1.9.21-1.0.16 -> 1.9.24-1.0.20
* KotlinPoet 1.15.3 -> 1.16.0
* JUnit Jupiter 5.10.1 -> 5.10.2
* MockK 1.13.8 -> 1.13.11
* Dokka 1.9.10 -> 1.9.20
* AtomicFU 0.23.1 -> 0.24.0
* Binary compatibility validator 0.13.2 -> 0.15.0-Beta.2
* gradle-buildconfig-plugin 5.1.0 -> 5.3.5
* Foojay Toolchains Plugin 0.7.0 -> 0.8.0
* Replace gradle/gradle-build-action with gradle/actions/setup-gradle
* Replace gradle/wrapper-validation-action with gradle/actions/wrapper-validation

## House-keeping

* Update README (#915)
* Disable timeouts for Kotlin/JS tests (#926)
* Remove unused resource files (#935)
* Enable binary compatibility validation for KLibs (#929)
* Fix test related Gradle deprecation warnings (#936)
* Create `sourceLink` `URL` with non-deprecated `URI` constructor (by @SebastianAigner in #938)

# 0.13.1

This release fixes an exception when trying to deserialize `Permissions` contained in `GuildAuditLogEntryCreateEvent`s.
Expand Down
3 changes: 3 additions & 0 deletions buildSrc/src/main/kotlin/BinaryCompatibility.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import kotlinx.validation.ApiValidationExtension
import kotlinx.validation.ExperimentalBCVApi

fun ApiValidationExtension.applyKordBCVOptions() {
nonPublicMarkers += "dev.kord.common.annotation.KordInternal"
@OptIn(ExperimentalBCVApi::class)
klib.enabled = true
}
25 changes: 4 additions & 21 deletions buildSrc/src/main/kotlin/Compiler.kt
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
import kotlinx.atomicfu.plugin.gradle.AtomicFUPluginExtension
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.api.NamedDomainObjectSet
import org.gradle.kotlin.dsl.assign
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.getByType
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet

object OptIns {
const val coroutines = "kotlinx.coroutines.ExperimentalCoroutinesApi"
}

val kordOptIns = listOf(
"kotlin.contracts.ExperimentalContracts",

Expand All @@ -30,18 +22,9 @@ fun KotlinCommonCompilerOptions.applyKordCompilerOptions() {
freeCompilerArgs.add("-Xexpect-actual-classes")
}

fun KotlinSourceSet.applyKordOptIns() {
languageSettings {
internal fun NamedDomainObjectSet<KotlinSourceSet>.applyKordTestOptIns() {
named { it.contains("test", ignoreCase = true) }.configureEach {
// allow `ExperimentalCoroutinesApi` for `TestScope.currentTime`
if ("Test" in name) optIn(OptIns.coroutines)
kordOptIns.forEach(::optIn)
}
}

fun Project.configureAtomicFU() {
// https://github.com/Kotlin/kotlinx-atomicfu/issues/210
configure<AtomicFUPluginExtension> {
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
dependenciesVersion = libs.findVersion("kotlinx-atomicfu").get().requiredVersion
languageSettings.optIn("kotlinx.coroutines.ExperimentalCoroutinesApi")
}
}
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/Documentation.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ fun AbstractDokkaLeafTask.applyKordDokkaOptions() {

sourceLink {
localDirectory = project.projectDir
remoteUrl = URI.create("https://github.com/kordlib/kord/blob/${project.commitHash}/${project.name}").toURL()
remoteUrl = URI("https://github.com/kordlib/kord/blob/${project.commitHash}/${project.name}").toURL()
remoteLineSuffix = "#L"
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi

plugins {
org.jetbrains.kotlin.multiplatform
}
Expand All @@ -14,9 +16,14 @@ kotlin {
}
jvmToolchain(Jvm.target)

targets.all {
compilations.all {
compilerOptions.options.applyKordCompilerOptions()
}
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions {
applyKordCompilerOptions()
}
}

tasks {
withType<Test>().configureEach {
useJUnitPlatform()
}
}
7 changes: 2 additions & 5 deletions buildSrc/src/main/kotlin/kord-module.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ plugins {
org.jetbrains.kotlin.jvm
org.jetbrains.kotlin.plugin.serialization
org.jetbrains.dokka
`kotlinx-atomicfu`
org.jetbrains.kotlinx.atomicfu
org.jetbrains.kotlinx.`binary-compatibility-validator`
com.google.devtools.ksp
`maven-publish`
Expand Down Expand Up @@ -33,13 +33,10 @@ kotlin {
}

sourceSets {
// allow `ExperimentalCoroutinesApi` for `TestScope.currentTime`
test { languageSettings.optIn(OptIns.coroutines) }
applyKordTestOptIns()
}
}

configureAtomicFU()

tasks {
withType<Test>().configureEach {
useJUnitPlatform()
Expand Down
17 changes: 7 additions & 10 deletions buildSrc/src/main/kotlin/kord-multiplatform-module.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import org.jetbrains.dokka.gradle.AbstractDokkaLeafTask
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest

plugins {
org.jetbrains.kotlin.multiplatform
org.jetbrains.kotlin.plugin.serialization
org.jetbrains.dokka
`kotlinx-atomicfu`
org.jetbrains.kotlinx.atomicfu
org.jetbrains.kotlinx.`binary-compatibility-validator`
com.google.devtools.ksp
}
Expand Down Expand Up @@ -40,18 +41,16 @@ kotlin {
}
jvmToolchain(Jvm.target)

targets.all {
compilations.all {
compilerOptions.options.applyKordCompilerOptions()
}
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions {
applyKordCompilerOptions()
optIn.addAll(kordOptIns)
}

applyDefaultHierarchyTemplate()

sourceSets {
all {
applyKordOptIns()
}
applyKordTestOptIns()
commonMain {
// mark ksp src dir
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
Expand All @@ -70,8 +69,6 @@ kotlin {
}
}

configureAtomicFU()

tasks {
withType<Test>().configureEach {
useJUnitPlatform()
Expand Down
Loading

0 comments on commit c68f2cd

Please sign in to comment.