Releases: jellyfin/jellyfin-sdk-kotlin
v1.3.2
Fixed an issue where java.net.ConnectException was not mapped to the SDK's TimeoutException and adds two tiny features:
- Accept "minimumServerVersion" in JellyfinOptions to forcefully support older Jellyfin versions
- Add
clientLogApi.logFileUrl
to generate the URL used for crash reports
Changelog
- Generate URL builder function for ClientLogApi.logFile #432, by @nielsvanvelzen
- Allow client to change minimum server version #434, by @nielsvanvelzen
- Map java.net.ConnectException to TimeoutException #442, by @AndreasGB
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.1 |
v1.3.1
Jellyfin 10.8.1 was released with a few changes to the API. Unfortunately this includes some breaking changes. Keep using the previous SDK release (1.3.0) If you'd like to support 10.8.0 or don't need the changes from this release.
The breaking changes in the API are:
- Added
splashscreenEnabled
field in BrandingOptions - Added
vppTonemappingBrightness
andvppTonemappingContrast
fields in EncodingOptions
The mentioned API models will cause an exception when using 10.8.0 or lower because they lack a value in the API responses and have no defaults set.
Changelog
- Update kotest to v5.3.1 #418, by @renovate[bot]
- Update dependency com.squareup:kotlinpoet to v1.12.0 #419, by @renovate[bot]
- Increase minimum supported Jellyfin version to 10.8.1 #423, by @nielsvanvelzen
- Update kotest to v5.3.2 #429, by @renovate[bot]
- Update OpenAPI to 10.8.1 #431, by @jellyfin-bot
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.1 |
v1.3.0
Jellyfin 10.8 was just released! This version of the SDK builds on top of the API changes and guarantees compatibility. The SDK now requires the server to use 10.8 or newer because of some incompatible changes in the WebSocket code and stricter nullability in the API. We recommend using a previous SDK version (like 1.2) if you still want or need to support Jellyfin 10.7.
Significant changes in this release include:
- WebSocket code now authenticates via HTTP header instead of URL (incompatible with 10.7)
- Lot's of nullability fixes in the API code
- More enums in the API (BaseItemKind is an exiting one here)
Changelog
- Add generator task for stable-pre openapi files #364, by @nielsvanvelzen
- Use JsonElement type for empty schema #367, by @nielsvanvelzen
- Remove old WebSocket implementation #369, by @nielsvanvelzen
- Bump actions/setup-java from 2 to 3 #374, by @dependabot[bot]
- Update dependencies #376, by @nielsvanvelzen
- Use Authorization header for WebSocket connections #377, by @nielsvanvelzen
- Update OpenAPI to 10.8.0-beta.1 #378, by @nielsvanvelzen
- Update minimumVersion to 10.8 #379, by @nielsvanvelzen
- Update OpenAPI to 10.8.0-beta.2 #380, by @nielsvanvelzen
- Fix ServerVersion comparison failing when build is not set #381, by @nielsvanvelzen
- Add extension function for authenticateWithQuickConnect that takes the secret directly #382, by @nielsvanvelzen
- Configure Renovate #384, by @renovate[bot]
- Move dependency repository definition to build.gradle.kts #385, by @nielsvanvelzen
- Delete dependabot.yml #386, by @nielsvanvelzen
- Update dependency com.github.ajalt.clikt:clikt to v3.4.2 #387, by @renovate[bot]
- Update org.jetbrains.kotlin to v1.6.21 #388, by @renovate[bot]
- Update plugin dokka to v1.6.21 #389, by @renovate[bot]
- Update plugin kotlin-serialization to v1.6.21 #390, by @renovate[bot]
- Update plugin binarycompatibilityvalidator to v0.9.0 #392, by @renovate[bot]
- Update github/codeql-action action to v2 #393, by @renovate[bot]
- Fix invalid string and binary request bodies #395, by @nielsvanvelzen
- Migrate unit tests to Kotest #396, by @nielsvanvelzen
- Update kotest to v5.3.0 #399, by @renovate[bot]
- Update dependency io.insert-koin:koin-core to v3.2.0 #403, by @renovate[bot]
- Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.3.3 #405, by @renovate[bot]
- Update dependency org.jetbrains.kotlinx.binary-compatibility-validator to v0.10.0 #406, by @renovate[bot]
- Update dependency io.github.microutils:kotlin-logging to v2.1.23 #407, by @renovate[bot]
- Pin dependencies #408, by @renovate[bot]
- Update dependency io.swagger.parser.v3:swagger-parser to v2.0.33 #409, by @renovate[bot]
- Set input/output in openapi-generator tasks #411, by @nielsvanvelzen
- Update Kotlin to v1.6.2 #412, by @renovate[bot]
- Update github/codeql-action digest to 27ea8f8 #413, by @renovate[bot]
- Update dependency androidx.core:core-ktx to v1.8.0 #414, by @renovate[bot]
- Update OpenAPI to 10.8.0 #416, by @jellyfin-bot
Contributors
- @renovate[bot]
- @nielsvanvelzen
- @dependabot[bot]
- @jellyfin-bot
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.0 |
Recommended API Version | 10.8.0 |
v1.3.0-beta.3
This beta bumps the versions of our used libraries and fixes an issue in POST requests (#395) that use binary data or text instead of JSON. No changes to the API in this beta.
Changelog
- Configure Renovate #384, by @renovate[bot]
- Move dependency repository definition to build.gradle.kts #385, by @nielsvanvelzen
- Delete dependabot.yml #386, by @nielsvanvelzen
- Update dependency com.github.ajalt.clikt:clikt to v3.4.2 #387, by @renovate[bot]
- Update org.jetbrains.kotlin to v1.6.21 #388, by @renovate[bot]
- Update plugin dokka to v1.6.21 #389, by @renovate[bot]
- Update plugin kotlin-serialization to v1.6.21 #390, by @renovate[bot]
- Update plugin binarycompatibilityvalidator to v0.9.0 #392, by @renovate[bot]
- Update github/codeql-action action to v2 #393, by @renovate[bot]
- Fix invalid string and binary request bodies #395, by @nielsvanvelzen
- Migrate unit tests to Kotest #396, by @nielsvanvelzen
- Update kotest to v5.3.0 #399, by @renovate[bot]
- Update dependency io.insert-koin:koin-core to v3.2.0 #403, by @renovate[bot]
- Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.3.3 #405, by @renovate[bot]
Contributors
- @renovate[bot]
- @nielsvanvelzen
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.0 |
Recommended API Version | 10.8.0-beta.3 |
v1.2.0
I'm excited to announce version 1.2.0 of the Jellyfin Kotlin SDK. This is a relatively small release compared to the previous
v1.1.0 release. Highlights of this release are:
- Completely rewritten WebSocket API which is easier to use and more stable
- Refactored helper functions for Java compatibility
- Extension functions for GeneralCommandMessage
- Ability to change device info on Android platform
Read the migration guide at /docs/migration/v1.2.md or the WebSocket guide at /docs/websockets.md to get started
with this release.
Changelog
- Add extensions to read arguments from GeneralCommandMessage #335, by @nielsvanvelzen
- Update Gradle Wrapper from 7.2 to 7.3 #336, by @jellyfin-bot
- Update Gradle Wrapper from 7.3 to 7.3.1 #337, by @jellyfin-bot
- Add compatibility util to collect flows from Java #338, by @GiviMAD
- Update dependencies (includes upgrade to Kotlin 1.6.10) #339, by @nielsvanvelzen
- Update Gradle Wrapper from 7.3.1 to 7.3.2 #340, by @jellyfin-bot
- Update Gradle Wrapper from 7.3.2 to 7.3.3 #343, by @jellyfin-bot
- Disable wildcard imports #344, by @nielsvanvelzen
- Update @OptIn usages #345, by @nielsvanvelzen
- Rewrite Java callback helpers to support error handling and non-api functions #346, by @nielsvanvelzen
- Deprecate WebSocketApi #349, by @nielsvanvelzen
- Support username and password arguments in kotlin-cli sample #350, by @nielsvanvelzen
- WebSocket API rewrite #352, by @nielsvanvelzen
- Allow custom device info in Android target #353, by @nielsvanvelzen
- Update Gradle Wrapper from 7.3.3 to 7.4 #355, by @jellyfin-bot
- Bump actions/checkout from 2 to 3 #356, by @dependabot[bot]
- Update Gradle Wrapper from 7.4 to 7.4.1 #357, by @jellyfin-bot
- Add MissingBaseUrlException to replace IllegalArgumentException #358, by @nielsvanvelzen
- Update KotlinPoet to 1.11.0 #359, by @nielsvanvelzen
- Add mutex for updateConnectionState to prevent unnecessary reconnects #362, by @nielsvanvelzen
- Don't throw when baseUrl not set in SocketInstance #363, by @nielsvanvelzen
- Update Gradle Wrapper from 7.4.1 to 7.4.2 #365, by @jellyfin-bot
- Add OkHttpWebsocketSession for JVM and Android targets #366, by @nielsvanvelzen
- Update @OptIn annotations #368, by @nielsvanvelzen
- Update README #370, by @nielsvanvelzen
- Remove KtorSocketInstanceConnection #371, by @nielsvanvelzen
- Rewrite/simplify internal WebSocket message sending #372, by @nielsvanvelzen
- Add retry logic to SocketInstance #373, by @nielsvanvelzen
- Fix ServerVersion comparison failing when build is not set #381, by @nielsvanvelzen
- Add migration document for v1.2 #383, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.7 |
v1.3.0-beta.2
This second beta updates the generated API to the second beta for 10.8. It also adds a new utility extension function for Quick Connect implementations and a bugfix in the ServerVersion comparator.
Changelog
- Update OpenAPI to 10.8.0-beta.2 #380, by @nielsvanvelzen
- Fix ServerVersion comparison failing when build is not set #381, by @nielsvanvelzen
- Add extension function for authenticateWithQuickConnect that takes the secret directly #382, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.0 |
Recommended API Version | 10.8.0-beta.2 |
v1.2.0-beta.3
This release is binary compatible with the previous beta. If no new issues are found the 1.2.0 release should follow within a few weeks.
Changelog
- Fix ServerVersion comparison failing when build is not set #381, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.7 |
v1.3.0-beta.1
This is the first beta for the 1.3.0 version of the SDK. This release only supports Jellyfin 10.8 or newer. The WebSocket code in this version does not work with 10.7 based servers because of authentication changes. The most significant changes in the API are nullability fixes and the introduction of the BaseItemKind enum. Upgrading should be fairly straightforward.
Changelog
- Add generator task for stable-pre openapi files #364, by @nielsvanvelzen
- Use JsonElement type for empty schema #367, by @nielsvanvelzen
- Remove old WebSocket implementation #369, by @nielsvanvelzen
- Bump actions/setup-java from 2 to 3 #374, by @dependabot[bot]
- Update dependencies #376, by @nielsvanvelzen
- Use Authorization header for WebSocket connections #377, by @nielsvanvelzen
- Update OpenAPI to 10.8.0-beta.1 #378, by @nielsvanvelzen
- Update minimumVersion to 10.8 #379, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.0 |
Recommended API Version | 10.8.0-beta.1 |
v1.2.0-beta.2
The WebSocket code now reconnects automatically and a bunch of bugfixes were made to make it more reliable. The most significant change in this beta is the move from Ktor to OkHttp as the backend for the socket code. This release is binary compatible with the previous beta, except for some smaller internal API's that are unlikely to be used directly. If no new issues are found the 1.2.0 release should follow within a few weeks.
Changelog
- Add mutex for updateConnectionState to prevent unnecessary reconnects #362, by @nielsvanvelzen
- Don't throw when baseUrl not set in SocketInstance #363, by @nielsvanvelzen
- Update Gradle Wrapper from 7.4.1 to 7.4.2 #365, by @jellyfin-bot
- Add OkHttpWebsocketSession for JVM and Android targets #366, by @nielsvanvelzen
- Update @OptIn annotations #368, by @nielsvanvelzen
- Update README #370, by @nielsvanvelzen
- Remove KtorSocketInstanceConnection #371, by @nielsvanvelzen
- Rewrite/simplify internal WebSocket message sending #372, by @nielsvanvelzen
- Add retry logic to SocketInstance #373, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.7 |
v1.2.0-beta.1
This is the initial beta for the upcoming 1.2.0 release. The focus for this release was rewriting the WebSocket code. It's not ready for production use until we fix a few known bugs and missing features (unnecessary reconnects on subscription changes and the lack of automatic reconnection logic). However, everything else in this beta is stable and unlikely to change until release.
Changelog
- Add extensions to read arguments from GeneralCommandMessage #335, by @nielsvanvelzen
- Update Gradle Wrapper from 7.2 to 7.3 #336, by @jellyfin-bot
- Update Gradle Wrapper from 7.3 to 7.3.1 #337, by @jellyfin-bot
- Add compatibility util to collect flows from Java #338, by @GiviMAD
- Update dependencies (includes upgrade to Kotlin 1.6.10) #339, by @nielsvanvelzen
- Update Gradle Wrapper from 7.3.1 to 7.3.2 #340, by @jellyfin-bot
- Update Gradle Wrapper from 7.3.2 to 7.3.3 #343, by @jellyfin-bot
- Disable wildcard imports #344, by @nielsvanvelzen
- Update @OptIn usages #345, by @nielsvanvelzen
- Rewrite Java callback helpers to support error handling and non-api functions #346, by @nielsvanvelzen
- Deprecate WebSocketApi #349, by @nielsvanvelzen
- Support username and password arguments in kotlin-cli sample #350, by @nielsvanvelzen
- WebSocket API rewrite #352, by @nielsvanvelzen
- Allow custom device info in Android target #353, by @nielsvanvelzen
- Update Gradle Wrapper from 7.3.3 to 7.4 #355, by @jellyfin-bot
- Bump actions/checkout from 2 to 3 #356, by @dependabot[bot]
- Update Gradle Wrapper from 7.4 to 7.4.1 #357, by @jellyfin-bot
- Add MissingBaseUrlException to replace IllegalArgumentException #358, by @nielsvanvelzen
- Update KotlinPoet to 1.11.0 #359, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.7 |