Releases: jellyfin/jellyfin-sdk-kotlin
v1.5.0-beta.1
I'm extremely excited to announce the first beta for the next version of our Kotlin SDK. This release is based on the Jellyfin 10.9 API. It is not recommended to use this version in production builds.
🏗️ Enhancements
- Use Clikt in openapi-generator #613, by @nielsvanvelzen
- Add command line option to disable hooks in openapi-generator #623, by @nielsvanvelzen
- refactor: convert Long to Duration for `HttpClientOptions` #650, by @Yash-Garg
- Update sdk-update-api-spec.yaml workflow so that it can label its prs as 'enhancement' #668, by @alialiusefi
- Add compare command to openapi-generator #684, by @nielsvanvelzen
- Update and specify full action versions #691, by @1337joe
- add unsupported ssl and server unavailable issues #694, by @alialiusefi
- Force single line in createParameterValidation #708, by @nielsvanvelzen
- Migrate Android namespace to build file, remove deprecated target SDK #710, by @nielsvanvelzen
- Add fromNameOrNull and fromName functions to generated enum models #711, by @nielsvanvelzen
- Split KtorClient to separate module #739, by @nielsvanvelzen
- Add interfaces and polymorphic serialization to OpenAPI generator #745, by @nielsvanvelzen
- Support readOnly properties in OpenAPI generator #746, by @nielsvanvelzen
- Update WebSocket code to generated models #774, by @nielsvanvelzen
- Add builders for device profile and related models #795, by @nielsvanvelzen
- Add RegexValidation to OpenAPI generator #841, by @nielsvanvelzen
- Update to Gradle 8.6 and AGP 8.1 #863, by @nielsvanvelzen
- Remove support for includeCredentials from ApiClient.createUrl and generated API #871, by @nielsvanvelzen
- Remove measureBitrate and detectBitrate extensions from MediaInfoApi #874, by @nielsvanvelzen
- Remove DefaultUserIdHook #879, by @nielsvanvelzen
- Update API to 10.9.0-unstable.20240325170309 #888, by @nielsvanvelzen
- Increase minimum supported Jellyfin version to 10.9.0 #891, by @nielsvanvelzen
- Remove manually model.constant package #892, by @nielsvanvelzen
- Improve logging in kotlin-cli sample #907, by @nielsvanvelzen
- Update API to 10.9.0-unstable.20240417011332 #908, by @nielsvanvelzen
- Remove userId property from ApiClient #910, by @nielsvanvelzen
- Replace property setters in ApiClient with new update function #911, by @nielsvanvelzen
- Update API to 10.9.0-unstable.20240430191733 #914, by @nielsvanvelzen
- Flow on Dispatchers.IO by default in LocalServerDiscovery #916, by @nielsvanvelzen
📚 Documentation
- Use code-group in getting-started and v1.4 migration pages #612, by @nielsvanvelzen
- Fix a kdoc typo #923, by @nielsvanvelzen
🔧 Bugfixes
- Use lazy injection for openapi-generator CLI #626, by @nielsvanvelzen
- Update java-cli sample to use UserApiExtensionsKt #639, by @nielsvanvelzen
- Fix invalid comitter/author in Update OpenAPI workflow #672, by @nielsvanvelzen
- Downgrade AGP to IntelliJ compatible 7.4.0-beta02 #698, by @nielsvanvelzen
- Add descriptions to enum functions and fix typo in description for model request operations #712, by @nielsvanvelzen
- Remove affected files from automated OpenAPI spec update pull request body #724, by @nielsvanvelzen
- Fix getDefaultEnumMember dependent on schema order #731, by @nielsvanvelzen
- Merge EmptyApiModel into ObjectApiModel and add fix empty constructor #772, by @nielsvanvelzen
- Don't add @SerialName annotation to polymorphic discriminator property in ObjectModelBuilder #773, by @nielsvanvelzen
- Fix Vitepress builds #793, by @nielsvanvelzen
- Lower Java toolchain version to 8 #865, by @nielsvanvelzen
- Fix failure when signing during publishing #866, by @nielsvanvelzen
- Fix updateApiSpec* tasks not specifying dependency order #867, by @nielsvanvelzen
- Only use ByteReadChannel for API responses #877, by @nielsvanvelzen
- Fix javadoc using wrong name #925, by @nielsvanvelzen
🔃 Refactoring
- Configure core-android publishing #620, by @nielsvanvelzen
- Set name of Gradle root project #621, by @nielsvanvelzen
- Migrate to new Kotlin Multiplatform source set layout #622, by @nielsvanvelzen
- Make CurrentUserIdDefaultValue a data class #624, by @nielsvanvelzen
- Remove gradlew-update.yaml workflow #646, by @nielsvanvelzen
- Add type to make generator aware of operation request body type #876, by @nielsvanvelzen
💡 Everything else
- Extend organization Node.js Renovate config #632, by @nielsvanvelzen
- Bump Android SDK to 33 #636, by @nielsvanvelzen
- Revert "Downgrade AGP to IntelliJ compatible 7.4.0-beta02" #704, by @nielsvanvelzen
- Enable Renovate dependency dashboard #828, by @nielsvanvelzen
- Ignore failure of apiDump task in OpenAPI update workflows #870, by @nielsvanvelzen
📈 Dependency updates
- Update io.gitlab.arturbosch.detekt by renovate[bot] v1.23.6 #886, v1.23.5 #837, v1.23.3 #826, v1.23.1 #791, v1.23.0 #748, v1.22.0 #596
- Update actions/deploy-pages by renovate[bot] 497da40 #682, 0243b6c #660, 20a4baa #597
- Update actions/configure-pages by renovate[bot] fc89b04 #666, 37538b2 #653, 3c444c0 #651, c5a3e11 #598
- Update org.slf4j:slf4j-simple by renovate[bot] v2.0.13 #905, v2.0.12 #869, v2.0.11 #855, v2.0.9 #805, v2.0.7 #695, v2.0.6 #599
- Update github/codeql-action by renovate[bot] 16964e9 #683, 32dc499 #675, 17573ee #662, 39d8d7e #658, 3ebbd71 #647, a34ca99 #642, 515828d #634, 959cbb7 #600
- Update Gradle Wrapper from 7.5.1 to 7.6 #601, by @jellyfin-bot
- Update Kotlin by renovate[bot] v1.8.1 #921, v1.9.24 #917, v1.7.2 #776, v1.8.22 #762, v1.5.1 #743, v1.7.0 #736, v1.8.20 #703, v1.8.10 #655, v1.8.0 #619, v1.7.22 #602
- Update actions/setup-java by renovate[bot] 3f07048 #661, 1df8dbe #604
- Update technote-space/create-pr-action digest to 9111450 #605, by renovate[bot]
- Update vitepress by renovate[bot] v1.1.4 #903, v1.0.1 #895, v1.0.0-rc.40 #858, v1.0.0-rc.36 #850, v1.0.0-rc.31 #832, v1.0.0-rc.24 #824, v1.0.0-rc.22 #814, v1.0.0-rc.14 #810, v1.0.0-rc.10 #804, v1.0.0-rc.4 #790, v1.0.0-beta.5 #784, v1.0.0-beta.3 #771, v1.0.0-beta.2 #765, v1.0.0-beta.1 #750, v1.0.0-alpha.75 #737, v1.0.0-alpha.74 #732, v1.0.0-alpha.74 #729, v1.0.0-alpha.72 #726, v1.0.0-alpha.70 #723, v1.0.0-alpha.65 #713, v1.0.0-alpha.64 #701, v1.0.0-alpha.60 #697, v1.0.0-alpha.56 #685, v1.0.0-alpha.49 #678, v1.0.0-alpha.46 #659, v1.0.0-alpha.44 #648, v1.0.0-alpha.38 #645, v1.0.0-alpha.36 #633, v1.0.0-alpha.33 #614, v1.0.0-alpha.32 #606
- Update actions/upload-pages-artifact digest to 253fd47 #609, by renovate[bot]
- Update actions/checkout by renovate[bot] ac59398 #627, 755da8c #610
- Update io.insert-koin:koin-core by renovate[bot] v3.5.6 #900, v3.5.3 #847, v3.5.0 #808, v3.4.3 #789, v3.4.2 #760, v3.4.1 #756, v3.4.0 #699, v3.3.3 #663, v3.3.2 #611
- Update com.github.ajalt.clikt:clikt by renovate[bot] v4.4.0 #912, v4.3.0 - autoclosed #894, v4.2.2 #848, v4.2.1 #815, v4.2.0 #792, v4.1.0 #786, v4 #780, v3.5.4 #767, v3.5.3 #766, v3.5.2 #677, v3.5.1 #617
- Update actions/setup-node digest to 64ed1c7 #628, by renovate[bot]
- Update actions/download-artifact digest to 9bc31d5 #629, by renovate[bot]
- Update actions/upload-artifact digest to 0b7f8ab #630, by renovate[bot]
- Update io.swagger.parser.v3:swagger-parser by renovate[bot] v2.1.22 #901, v2.1.21 #883, v2.1.20 #856, v2.1.19 #836, v2.1.18 #821, v2.1.16 #770, v2.1.15 #753, v2.1.14 #747, v2.1.13 #700, v2.1.12 #665, v2.1.11 #641, v2.1.10 #631
- Update actions/configure-pages action by renovate[bot] v5 #897, v4 #843, v3.0.6 #718, v3 #643
- Update dependency io.git...
v1.4.7
Jellyfin 10.9 is coming, and it will be backwards compatible with 10.8 clients! However, one potential issue may arise due to deserialization issues when a response contains a newly introduced enum member. Particularly notable here is the lyrics media stream type.
To address this problem, this SDK release backports the new enum members onto the 10.8.13 OpenAPI specification. As a result, both 10.8 and 10.9 servers can be supported in your Jellyfin client.
We advise updating your client to this SDK version before the stable release of 10.9, expected towards the end of April. Additionally, we recommend removing support for 10.8 servers approximately 1 to 2 months after the stable release.
🏗️ Enhancements
- [1.4] Backport 10.9 enum changes to 10.8.13 API specification #896, by @nielsvanvelzen
- Update JSON options in ApiSerializer #898, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.13 |
v1.4.6
This release updates the API version to Jellyfin 10.8.13. With this version all codec parameters (e.g. video/audio/container codec) in all API's are now restricted to a specific format. This is backwards compatible with all previously valid values, bad values will now return a bad request (HTTP 400) instead of crashing FFmpeg. A future version of the SDK will also validate these parameters client side (see #841).
📈 Dependency updates
- Update OpenAPI to 10.8.13 #838, by @jellyfin-bot
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.13 |
v1.4.5
This release bumps the recommended API version to Jellyfin 10.8.11 and introduces the "ignorePathParameters " option in the ApiClient.createUrl
function.
🏗️ Enhancements
- Add ignorePathParameters to ApiClient.createUrl #812, by @nielsvanvelzen
📈 Dependency updates
- Update OpenAPI to 10.8.12 #831, by @jellyfin-bot
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.12 |
v1.4.4
This release bumps the recommended API version to Jellyfin 10.8.11 and introduces the "ignorePathParameters " option in the UrlBuilder.
🏗️ Enhancements
- Add ignorePathParameters option to UrlBuilder #796, by @nielsvanvelzen
📈 Dependency updates
- Update OpenAPI to 10.8.11 #811, by @jellyfin-bot
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.11 |
v1.4.3
This release improves the reliability of WebSocket connections by enhancing the reconnect logic and fixing a bug when stopping the "sessions" subscription.
🏗️ Enhancements
- Remove unused androidx libraries #709, by @nielsvanvelzen
- Use slowly increasing WebSocket reconnect delay #799, by @nielsvanvelzen
🔧 Bugfixes
- Fix invalid kdoc in DiscoveryService #738, by @nielsvanvelzen
- Fix wrong serial name for SessionsStopMessage #798, by @nielsvanvelzen
- Remove release environment from sdk-publish.yaml #800, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.10 |
v1.4.2
This release bumps the API to Jellyfin 10.8.10 (no significant changes).
📈 Dependency updates
- Update OpenAPI to 10.8.10 #725, by @jellyfin-bot
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.10 |
v1.4.1
This is a small release that updates the API to Jellyfin 10.8.9 (no significant changes). We've also added some extensions to use ticks with the Kotlin duration class, added a better value for the HTTP Accept header and increased the default socket timeout from 10 to 30 seconds based on feedback on our Android TV app.
🏗️ Enhancements
- Add extensions to Long, Int and Double to create Duration from ticks #616, by @nielsvanvelzen
- Add Duration.inWholeTicks to convert a Duration to ticks #618, by @nielsvanvelzen
- Explicitly set Accept header in KtorClient #638, by @nielsvanvelzen
- Increase default socket timeout value to 30 seconds #640, by @nielsvanvelzen
📈 Dependency updates
- Update OpenAPI to 10.8.9 #644, by @jellyfin-bot
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.9 |
v1.4.0
This release includes performance improvements, bug fixes and the addition of request models. For more information visit our new documentation site at kotlin-sdk.jellyfin.org where you can also find a migration document for this release.
🏗️ Enhancements
- Optimize map building in generator #455, by @nielsvanvelzen
- Support default values in generated models #456, by @nielsvanvelzen
- Don't use Any type for defaultValue in generator #464, by @nielsvanvelzen
- Support enum defaults, add generator context #465, by @nielsvanvelzen
- Generate request models #475, by @nielsvanvelzen
- Build and deploy Dokka documentation in CI #476, by @nielsvanvelzen
- Use Vitepress to build markdown documentation #478, by @nielsvanvelzen
- Build and deploy Vitepress documentation to GitHub pages #480, by @nielsvanvelzen
- Use broadcast address 255.255.255.255 for server discovery #484, by @jarnedemeulemeester
- Improve RecommendedServerDiscovery speed significantly #492, by @nielsvanvelzen
- Add markdown linting to CI #493, by @nielsvanvelzen
- Implement DescriptionHook for more advanced description customization #513, by @nielsvanvelzen
- Update GitHub actions workflows #519, by @nielsvanvelzen
- Update OpenAPI to 10.8.5 #520, by @jellyfin-bot
- Add Gradle download plugin to version catalog #535, by @nielsvanvelzen
- Remove TranscodingInfoTranscodeReasonsHook #563, by @nielsvanvelzen
- Remove redundant SyncPlayGroupUpdateHook #564, by @nielsvanvelzen
- Add favicon to docs, fix logo in light mode #565, by @nielsvanvelzen
- Use multiple query parameters instead of comma separated values in UrlBuilder #573, by @nielsvanvelzen
- Update OpenAPI to 10.8.6 #576, by @jellyfin-bot
- Update OpenAPI to 10.8.7 #580, by @jellyfin-bot
📚 Documentation
- Fix Dokka link and v1.1 migration title in docs #481, by @nielsvanvelzen
- Rewrite README to focus on SDK developers instead of users #487, by @nielsvanvelzen
- Add "Authentication" page to documentation #488, by @nielsvanvelzen
- Add 1.4 migration documentation #607, by @nielsvanvelzen
🔧 Bugfixes
- Remove READ_EXTERNAL_STORAGE permission #474, by @jarnedemeulemeester
- Split openapi generator and api dump tasks to avoid build failure #489, by @nielsvanvelzen
- Remove linebreaks in AuthorizationHeaderBuilder.encodeParameterValue #587, by @nielsvanvelzen
💡 Everything else
- Bump Android compile and target SDK to 32 (Android 12L) #459, by @nielsvanvelzen
- Use gradle/gradle-build-action in CI #477, by @nielsvanvelzen
- Use ubuntu-22.04 in workflows #500, by @nielsvanvelzen
- Update OpenAPI to 10.8.8 #603, by @jellyfin-bot
📈 Dependency updates
- Update dependency com.github.ajalt.clikt:clikt to v3.5.0 #417, by @renovate[bot]
- Update gradle-update/update-gradle-wrapper-action digest to 981c551 #420, by @renovate[bot]
- Update androidx.annotation:annotation
- Update io.swagger.parser.v3:swagger-parser
- to v2.1.0 #422, by @renovate[bot]
- to v2.1.1 #424, by @renovate[bot]
- to v2.1.2 #463, by @renovate[bot]
- to v2.1.3 #527, by @renovate[bot]
- to v2.1.4 #552, by @renovate[bot]
- to v2.1.5 #554, by @renovate[bot]
- to v2.1.6 #560, by @renovate[bot]
- to v2.1.7 #574, by @renovate[bot]
- to v2.1.8 #583, by @renovate[bot]
- to v2.1.9 #592, by @renovate[bot]
- Update org.jetbrains.dokka
- Update Kotlin
- Update github/codeql-action
- to 3f62b75 #427, by @renovate[bot]
- to 3e7e3b3 #438, by @renovate[bot]
- to 0c670bb #445, by @renovate[bot]
- to 2ca79b6 #452, by @renovate[bot]
- to f5d217b #468, by @renovate[bot]
- to 7fee4ca #470, by @renovate[bot]
- to c7f292e #473, by @renovate[bot]
- to b398f52 #485, by @renovate[bot]
- to 6a38b7d #503, by @renovate[bot]
- to 904260d #507, by @renovate[bot]
- to 86f3159 #511, by @renovate[bot]
- to e0e5ded #534, by @renovate[bot]
- to 8075783 #541, by @renovate[bot]
- to cc7986c #556, by @renovate[bot]
- to ec3cf9c #572, by @renovate[bot]
- to 18fe527 #581, by @renovate[bot]
- to c3b6fce #586, by @renovate[bot]
- to 4238421 #590, by @renovate[bot]
- to 678fc3a #593, by @renovate[bot]
- Update actions/setup-java
- Update technote-space/create-pr-action
- Update org.jetbrains.kotlinx.binary-compatibility-validator
- Update Gradle Wrapper from 7.4.2 to 7.5 #440, by @jellyfin-bot
- Update dependency io.gitlab.arturbosch.detekt to v1.21.0 #441, by @renovate[bot]
- Update kotest
- Update dependency com.android.tools.build:gradle to v7.2.2 #451, by @renovate[bot]
- Update Gradle Wrapper from 7.5 to 7.5.1 #453, by @jellyfin-bot
- Update org.jetbrains.kotlinx:kotlinx-serialization-json
- Update gradle/gradle-build-action
- Update vitepress
- to v1.0.0-alpha.13 #483, by @renovate[bot]
- to v1.0.0-alpha.15 #504, by @renovate[bot]
- to v1.0.0-alpha.16 #518, by @renovate[bot]
- to v1.0.0-alpha.17 #526, by @renovate[bot]
- to v1.0.0-alpha.18 #536, by @renovate[bot]
- to v1.0.0-alpha.19 #537, by @renovate[bot]
- to v1.0.0-alpha.20 #546, by @renovate[bot]
- to v1.0.0-alpha.21 #549, by @renovate[bot]
- to v1.0.0-alpha.22 #562, by @renovate[bot]
- to v1.0.0-alpha.26 #571, by @renovate[bot]
- to v1.0.0-alpha.27 #584, by @renovate[bot]
- to v1.0.0-alpha.28 #588, by @renovate[bot]
- to v1.0.0-alpha.29 #591, by @renovate[bot]
- Update actions/upload-pages-artifact
- Update dependency androidx.core:core-ktx to v1.9.0 #496, by @renovate[bot]
- Update actions/configure-pages
- Update io.insert-koin:koin-core
- Update actions/deploy-pages
- Update io.github.microutils:kotlin-logging
- Update org.slf4j:slf4j-simple
- Update actions/setup-node
- Update actions/checkout
- Update dependency de.undercouch.download to v5.3.0 #551, by @renovate[bot]
- Update actions/download-artifact digest to 9782bd6 #559, by @renovate[bot]
- Update actions/upload-artifact digest to 83fd05a #561, by @renovate[bot]
- Update xt0rted/markdownlint-problem-matcher action to v2 #567, by @renovate[bot]
- Update gradle/wrapper-validation-action digest to 55e685c #570, by @renovate[bot]
- Update alexellis/upload-assets action to v0.4.0 #577, by @renovate[bot]
- Update eps1lon/actions-label-merge-conflict action to v2.1.0 #579, by @renovate[bot]
- Update Kotlin #415, by @renovate[bot]
- Pin dependencies #479, by @renovate[bot]
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.8 |
v1.4.0-beta.2
🏗️ Enhancements
- Use broadcast address 255.255.255.255 for server discovery #484, by @jarnedemeulemeester
🔧 Bugfixes
- Remove linebreaks in AuthorizationHeaderBuilder.encodeParameterValue #587, by @nielsvanvelzen
📈 Dependency updates
- Update github/codeql-action
- Update dependency io.github.microutils:kotlin-logging to v3.0.4 #582, by @renovate[bot]
- Update io.swagger.parser.v3:swagger-parser
- Update vitepress
- Update kotest to v5.5.4 #585, by @renovate[bot]
- Update Kotlin to v1.7.21 #589, by @renovate[bot]
- Update actions/upload-pages-artifact digest to 4506126 #594, by @renovate[bot]
- Update dependency org.slf4j:slf4j-simple to v2.0.4 #595, by @renovate[bot]
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.8.1 |
Recommended API Version | 10.8.7 |