Releases: kordlib/kord
0.17.0 | Dependency Updates and kotlinx.datetime Migration
0.17.0
Breaking Changes!!
This release migrates from the kotlinx.datetime classes Clock and Instant to their equivalents of kotlin.time whilst their APIs are unchanged, imports have to be updated respectivly. Unfortunately JetBrains deprecated the old kotlinx.time classes before the new types were marked stable, therefore it is requierd to opt-in to kotlin.time.ExperimentalTime
Import changes
kotlinx.datetime.Instant -> kotlin.time.Instant
kotlinx.datetime.Clock -> kotlin.time.Clock
Gradle Changes
kotlin {
compilerOptions {
optIn.add("kotlin.time.ExperimentalTime")
}
}What's Changed
- Bump
DeprecationLevels after 0.15.0 by @lukellmann in #987 - Exclude interaction endpoints from global rate-limit by @DRSchlaubi in #989
- fix(core/cache): swap Generator type parameters by @viztea in #993
- Add platform field to ActivityData and DiscordActivity by @giginet in #995
- Use declaration-site variance for
EntitySupplyStrategyby @lukellmann in #996 - Use new jetbrains logo by @DRSchlaubi in #1004
- Add support for application emojis by @DRSchlaubi in #973
- Fix issues with application emojis by @DRSchlaubi in #1010
- Update dependencies by @DRSchlaubi in #1021
- Add remaining JsonErrorCodes by @NoComment1105 in #1020
- Improve publishing pipeline by @DRSchlaubi in #1022
New Contributors
Full Changelog: 0.15.0...0.17.0
0.15.0
0.15.0
Additions
- Add
User.isSelf(by @Taubsie in #950) - Publish snapshots to https://repo.kord.dev/snapshots (#961)
- Document deprecation cycle of deprecated declarations (#969)
- Add
UserMessageCreateBuilder.enforceNonce(by @DRSchlaubi in #971) - Implement Monetization (by @viztea in #932)
- Add
MemberProfileAutoModerationRule(#974)
Changes
- Bump
DeprecationLevels after 0.14.0 (#944) - Update Auto Moderation builders (#979)
- Link to JDK 23 in Dokka output (#980)
Fixes
- Fix deserialization of members (by @NoComment1105 in #955)
- Fix deserialization of
Heartbeatevents (#957) - Fix
getMemberOrNullandgetGuildMemberscaching only user data (by @Galarzaa90 in #964) - Fix misuse of reified type parameters (#981)
Dependencies
Updated in #942, #954, #958, #975, #976, and #986 (not including dependencies only needed for developing Kord)
- Kotlin 1.9.24 -> 2.0.21
- Ktor 2.3.11 -> 3.0.0
- kotlinx.coroutines 1.8.1 -> 1.9.0
- kotlinx.serialization 1.6.3 -> 1.7.3
- kotlinx-datetime 0.6.0 -> 0.6.1
- kord-cache 0.4.0 -> 0.5.4
- kotlin-logging 6.0.9 -> 7.0.0
- SLF4J 2.0.13 -> 2.0.16
- kotlin-node 20.11.30-pre.751 -> 22.5.4-pre.818
- kotlin-multiplatform-bignum 0.3.9 -> 0.3.10
- Stately 2.0.7 -> 2.1.0
- AtomicFU 0.24.0 -> 0.25.0
0.14.0
0.14.0
Additions
- Support other
SerialFormats inLongOrStringSerializer(#937)
Changes
- Bump
DeprecationLevels 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.memberuses 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.30-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
0.13.1
0.13.1
This release fixes an exception when trying to deserialize Permissions contained in GuildAuditLogEntryCreateEvents. Kord expected to receive JSON strings while Discord is sending JSON numbers.
0.13.0
0.13.0
This release fixes a bug where the Spanish Latin America Locale (es-419) couldn't be deserialized correctly, so users
with that Locale couldn't interact with Kord bots via interactions.
Additions
- Add
WebhookMessageCreateBuilder.appliedTags(by @lukellmann in #899)
Changes
- Bump
DeprecationLevels after 0.12.0 (by @lukellmann in #896) - Remove deprecation from
User.discriminatorandUser.tag(by @lukellmann in #901) - Align
ArchiveDurationwith generated kord enums (by @lukellmann in #902) - Deprecate
DiscordBitSetSerializerandLocale.Serializer(by @lukellmann in #903)
Fixes
- Support Spanish (Latin America) (by @gdude2002 in #906)
Dependencies
Updated in #900
- Gradle 8.4 -> 8.5
- Kotlin 1.9.20 -> 1.9.21
- Ktor 2.3.6 -> 2.3.7
- kotlinx.serialization 1.6.1 -> 1.6.2
- kotlinx-datetime 0.4.1 -> 0.5.0
- kotlin-logging 3.0.5 -> 6.0.1
- Stately 2.0.5 -> 2.0.6
- KSP 1.9.20-1.0.14 -> 1.9.21-1.0.16
- KotlinPoet 1.15.1 -> 1.15.3
- AtomicFU 0.23.0 -> 0.23.1
- gradle-buildconfig-plugin 4.2.0 -> 5.1.0
- actions/setup-java v3 -> v4
0.12.0
0.12.0
Additions
- Add interaction permissions to
MemberDataandMember(by @Tmpod in #884) - Add
SelectDefaultValues (by @lukellmann in #881) - Add
Permission.CreateGuildExpressionsandPermission.CreateEvents(by @lukellmann in #892) - Add
StageInstanceCreateRequest.guildScheduledEventId(by @lukellmann in #893)
Changes
- Bump
DeprecationLevels (by @lukellmann in #879) - Use debug log level for unknown gateway event names (by @viztea in #890)
- Add common
MessageBuildersupertype (by @lukellmann in #891)
Fixes
- Fix
DiscordAuditLogEntry.userIdnullability (by @lukellmann in #885)
Dependencies
Updated in #883, #888 and #894
- Gradle 8.3 -> 8.4
- Kotlin 1.9.10 -> 1.9.20
- Ktor 2.3.4 -> 2.3.6
- kotlinx.serialization 1.6.0 -> 1.6.1
- Stately 2.0.2 -> 2.0.5
- KSP 1.9.10-1.0.13 -> 1.9.20-1.0.14
- KotlinPoet 1.14.2 -> 1.15.1
- JUnit 5 5.10.0 -> 5.10.1
- MockK 1.13.7 -> 1.13.8
- Dokka 1.9.0 -> 1.9.10
- AtomicFU 0.22.0 -> 0.23.0
- gradle-buildconfig-plugin 4.1.2 -> 4.2.0
0.11.1
0.11.1
Republication of 0.11.0 with no changes.
The published artifacts for dev.kord:kord-ksp-annotations-js:0.11.0 were missing kord-ksp-annotations-js-0.11.0.klib which would cause an error like the following for Kotlin/JS projects trying to use Kord 0.11.0:
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':kotlinNpmInstall'.
> Could not find ksp-annotations-js.klib (dev.kord:kord-ksp-annotations-js:0.11.0).
Searched in the following locations:
https://repo.maven.apache.org/maven2/dev/kord/kord-ksp-annotations-js/0.11.0/kord-ksp-annotations-js-0.11.0.klib
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
0.11.0
0.11.0
Additions
- Add interaction channel field (by @NoComment1105 in #810)
- Add
avatar_decorationto user (by @NoComment1105 in #852) - Add stage channel create functions (by @NoComment1105 in #856)
- Implement custom status (by @DRSchlaubi and @lukellmann in #857)
- Allow modifying
GuildMemberFlags(by @lukellmann in #865) - Add
RoleFlags(by @lukellmann in #866) - Add
AttachmentFlags(by @lukellmann in #867) - Add
MediaChannels (by @lukellmann in #853) - Allow modifying
GuildOnboarding(by @lukellmann in #819) - Add
ReactionAddEvent.messageAuthorId(by @lukellmann in #873) - Add new
AuditLogEvents (by @lukellmann in #874) - Add
with_countsparam forGET/users/@me/guilds(by @lukellmann in #875) - Add
TeamMemberRole(by @lukellmann in #876) - Add
AuditLogEntryOptionalInfo.integrationType(by @lukellmann in #877)
Changes
- Bump
DeprecationLevels (by @lukellmann in #844) - Generate bit flags (by @DRSchlaubi and @lukellmann in #766)
- Bring kord enum API closer to bit flags API (by @lukellmann in #861)
- Replace companion object serializers (by @lukellmann in #869)
- Remove type parameter from
Choice(by @lukellmann in #868)
Fixes
- Correctly close zlib stream when gateway disconnects (by @DRSchlaubi in #849)
- Fix usage of
BigIntegerinDiscordBitSet.value(by @lukellmann in #864) - Fix deserialization of
DiscordApplication(by @lukellmann in #871)
Dependencies
Updated in #842, #859 and #872
- Gradle 8.1 -> 8.3
- Kotlin 1.8.21 -> 1.9.10
- Ktor 2.3.0 -> 2.3.4
- kotlinx.coroutines 1.7.1 -> 1.7.3
- kotlinx.serialization 1.5.1 -> 1.6.0
- kotlinx-datetime 0.4.0 -> 0.4.1
- kotlin-node 18.16.3-pre.546 -> 18.16.12-pre.619
- Stately 2.0.0-rc1 -> 2.0.2
- KSP 1.8.21-1.0.11 -> 1.9.10-1.0.13
- KotlinPoet 1.13.2 -> 1.14.2
- JUnit 5 5.9.3 -> 5.10.0
- MockK 1.13.5 -> 1.13.7
- SLF4J 2.0.7 -> 2.0.9
- Dokka 1.8.10 -> 1.9.0
- AtomicFU 0.20.2 -> 0.22.0
- Binary compatibility validator 0.13.1 -> 0.13.2
- gradle-buildconfig-plugin 4.0.4 -> 4.1.2
- Foojay Toolchains Plugin 0.4.0 -> 0.7.0
- actions/checkout v3 -> v4
House-keeping
- Remove unnecessary
RedundantVisibilityModifiersuppression (by @lukellmann in #858) - Don't use value class
ResetwithAtomicRef(by @DRSchlaubi and @lukellmann in #863)
0.10.0
0.10.0
Additions
- Support new username system (by @lukellmann in #825)
- Add
Permission.UseExternalSounds(by @lukellmann in #833) - Add new error codes (by @lukellmann in #834)
- Add mention raid protection to Auto Moderation (by @lukellmann in #830)
- Add support for Application Role Connection Metadata (by @lukellmann in #836)
- Add support for join raid protection (by @lukellmann in #832)
Changes
- Bump
DeprecationLevels (by @lukellmann in #821) - Remove no longer needed pipeline interception (by @lukellmann in #824)
- Change
parentIdandlockPermissionsToParentto Optionals (by @Tmpod in #828)
Fixes
- Fix deserializing embeds with
nullauthor url (by @lukellmann in #839)
Dependencies
Updated in #826
- Kotlin 1.8.10 -> 1.8.21
- Ktor 2.2.4 -> 2.3.0
- kotlinx.coroutines 1.6.4 -> 1.7.1
- kotlinx.serialization 1.5.0 -> 1.5.1
- kotlin-node 18.14.0-pre.502 -> 18.16.3-pre.546
- KSP 1.8.10-1.0.9 -> 1.8.21-1.0.11
- KotlinPoet 1.12.0 -> 1.13.2
- JUnit 5 5.9.2 -> 5.9.3
- MockK 1.13.4 -> 1.13.5
- AtomicFU 0.20.0 -> 0.20.2
- Binary compatibility validator 0.13.0 -> 0.13.1
- gradle-buildconfig-plugin 3.1.0 -> 4.0.4
House-keeping
- Simplify CI (by @lukellmann in #823)
- Use main as the permanent default branch (by @lukellmann in #831)
0.9.0
0.9.0
Breaking Changes
This release introduces a number of breaking changes, please refer to #775 for more information
Additions
- Support Kotlin/JS (by @DRSchlaubi and @lukellmann in #775)
- Add support for voice messages (by @DRSchlaubi and @lukellmann in #814)
Changes
- Bump
DeprecationLevels (by @lukellmann in #794) - Replace
IconwithAsset(by @oluiss and @lukellmann in #703)
Fixes
- Fix some
EntitySupplyStrategytoStrings being incorrect (by @GreemDev in #811) - Fix List Nitro Sticker Packs endpoint (by @lukellmann in #816)
- Fix
InstantInEpochMillisecondsSerializerTeston JS (by @lukellmann in #818)
Dependencies
Updated in #783
- Gradle 8.0.2 -> 8.1
House-keeping
- Add inspection for missing
@KordDsl(by @DRSchlaubi in #800) - Fix Qodana findings (by @lukellmann and @DRSchlaubi in #812)
- Clean up (by @lukellmann in #813)
- Improve
GenerateKordEnumandAnnotationArguments(by @lukellmann in #817)