Releases: jellyfin/jellyfin-sdk-kotlin
v1.1.2
This is a bugfix release for the 1.1.0 release. We've found an issue with the DisplayPreferencesDto model in the 10.7 API specification and made a temporary fix by using the type from the 10.8 API specification. Another issue where JSON deserialization problems would not use the ApiClientException was also fixed.
Changelog
- Fix SerializationException not catched in RawResponse #347, by @nielsvanvelzen
- Add DisplayPreferencesDtoNullabilityFixHook #348, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.7 |
v1.1.1
This is a bugfix release for the 1.1.0 release. We've identified and fixed an issue where our API generator ignored the request body data type. This caused various image uploading endpoints to not work. We've also removed a duplicate WebSocket enum (GeneralCommandType). You might need to update some of your imports for this change.
Changelog
- Use generated GeneralCommandType model #332, by @nielsvanvelzen
- Fix generator ignoring non-json request body types #334, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.7 |
v1.1.0
Thousands of Jellyfin users are now using the Kotlin SDK to communicate with their Jellyfin servers. Today we're releasing a new version with changes based on the feedback we collected from ourselves and the community apps.
The biggest change with v1.1.0 is the switch to Kotlin Multiplatform. With this change we can now write different code for specific platforms. We're already using this for the Android platform, making it easier to get started with the SDK! Other significant updates include the addition of API extensions, to make it easier to call the various API's. And the server discovery feature now returning more information about why it can't connect to a server.
Read all about the new features and how to migrate your existing code in the documentation at /docs/migration/v1.1.md.
Changelog
- Miscellaneous build script changes #289, by @nielsvanvelzen
- Fix all linter issues from 1.0.z release #290, by @nielsvanvelzen
- Use collection type for operation parameters #291, by @nielsvanvelzen
- Add ParameterValidation framework with initial IntRangeValidation #292, by @nielsvanvelzen
- Correctly set member names in OperationBuilder #293, by @nielsvanvelzen
- Emit issue information in RecommendedServerDiscovery #296, by @nielsvanvelzen
- Update Android Gradle Plugin to 7.0.0 #298, by @nielsvanvelzen
- WebSocketApi fixes #299, by @nielsvanvelzen
- Move generator types to constants and typealias JVM types #301, by @nielsvanvelzen
- Convert jellyfin-model to Kotlin Multiplatform #302, by @nielsvanvelzen
- Replace slf4j with kotlin-logging #303, by @nielsvanvelzen
- Convert jellyfin-api to Kotlin Multiplatform #304, by @nielsvanvelzen
- Update Gradle Wrapper from 7.1.1 to 7.2 #305, by @jellyfin-bot
- Use Gradle Dependency Catalog for plugins #306, by @nielsvanvelzen
- Use dokkaHtml instead of dokkaJavadoc for published documentation #307, by @nielsvanvelzen
- Convert jellyfin-core and jellyfin-platform-android to Kotlin Multiplatform #308, by @nielsvanvelzen
- Update Detekt to 1.18.0 #309, by @nielsvanvelzen
- Add verify function to openapi-generator #310, by @nielsvanvelzen
- Rename main to commonMain #311, by @nielsvanvelzen
- Update README for multiplatform changes #312, by @nielsvanvelzen
- Set proper name in POM files #313, by @nielsvanvelzen
- Move ApiClient HTTP methods to extension functions #314, by @nielsvanvelzen
- Update dependencies #315, by @nielsvanvelzen
- Use actions/setup-java caching #316, by @nielsvanvelzen
- Checkout repository in sdk-update-api-spec workflow #317, by @nielsvanvelzen
- Add ApiClientFactory option to allow different http clients #318, by @nielsvanvelzen
- Add url and path building to new UrlBuilder #319, by @nielsvanvelzen
- Update OpenAPI to 10.7.7 #320, by @jellyfin-bot
- Use Java 17 as default and move to Adoptium distribution #321, by @nielsvanvelzen
- Separate content (de)serialization from ApiClient #322, by @nielsvanvelzen
- Add cause to custom exception classes #323, by @nielsvanvelzen
- Add Api instances to ApiClient as extension properties #324, by @nielsvanvelzen
- Add v1.1 migration documentation #325, by @nielsvanvelzen
- Update binary-compatibility-validator to 0.8.0-RC and re-enable jellyfin-core api validation again #326, by @nielsvanvelzen
- Fix ApiSerializer for Unit type #327, by @nielsvanvelzen
- Use testutils in all modules #328, by @nielsvanvelzen
- Add tests for PairExtensions #329, by @nielsvanvelzen
- Update all dependencies to latest version #330, by @nielsvanvelzen
- Require explicit enabling of publishing #331, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.7 |
v1.0.3
Jellyfin 10.7.7 adds back the maxWidth
and maxHeight
parameters in various playback related endpoints. There are no other changes in this version. See jellyfin/jellyfin#6274 for more information about this change.
Changelog
- Update OpenAPI to 10.7.7 #320, by @jellyfin-bot
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.7 |
v1.0.2
We've identified and fixed an issue in the SDK for Android apps that use ProGuard or R8.
Changelog
- Workaround for server connection failure on Android #300, by @nielsvanvelzen
Contributors
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.6 |
v1.0.1
This is a patch release to fix an issue with device names that caused exceptions in the API when the name contained special characters.
Changelog
- Fix authorization header encoding sometimes not working #297, by @nielsvanvelzen
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.6 |
v1.0.0
After over a year of development on a brand new library for our Android apps the "Jellyfin Kotlin SDK" is now ready for release!
This library is a replacement for our old Java apiclient and uses a modern technology stack with Kotlin and Ktor / OkHttp for networking. Everything is written Kotlin-first, with a Java compatibility layer added on top.
We've already integrated the SDK in our Android apps: jellyfin-android 2.3.0 uses the SDK for all native parts of the app and jellyfin-androidtv 0.12 is using it for background tasks and the new authentication screen.
Changelog
- Fix non self closing and elements in descriptions #283, by @nielsvanvelzen
- Forward UnknownHostException and log unknown exceptions in KtorClient #284, by @nielsvanvelzen
- Fix formatting of LocalDateTimeSerializer encoding and add tests #287, by @nielsvanvelzen
- Update Gradle Wrapper from 7.1 to 7.1.1 #288, by @jellyfin-bot
1.0.0-beta.9 changelog
- Add description builder to modify property and class kdoc #276, by @nielsvanvelzen
- Add simplified Java version of the cli sample #278, by @nielsvanvelzen
- Update OpenAPI to 10.7.6 #279, by @jellyfin-bot
- Fix nullability in ImageMapsHook #280, by @nielsvanvelzen
- Fix warnings and issue in DefaultUserIdHook #282, by @nielsvanvelzen
- Update all dependencies #281, by @nielsvanvelzen
1.0.0-beta.8 changelog
- Add bitrate measurement functions #263, by @nielsvanvelzen
- Publish openapi-unstable branch as openapi-unstable-SNAPSHOT #264, by @nielsvanvelzen
- Bump actions/cache from 2.1.5 to 2.1.6 #265, by @dependabot
- Move createPath function to separate PathBuilder #266, by @nielsvanvelzen
- Move createAuthorizationHeader function to separate AuthorizationHeaderBuilder #267, by @nielsvanvelzen
- Improve usage of Jellyfin class in Java code #268, by @nielsvanvelzen
- Add toString function to ServerVersion #269, by @nielsvanvelzen
- Add DefaultValueHook for setting default operation parameter values #270, by @nielsvanvelzen
- Add userId default value hook #272, by @nielsvanvelzen
- Fix bad line endings used in openapi generator #274, by @nielsvanvelzen
1.0.0-beta.7 changelog
- Fix enums not serialized in query parameters #262, by @nielsvanvelzen
1.0.0-beta.6 changelog
- Add information about desugaring and update sample code in README #252, by @nielsvanvelzen
- Replace GH_TOKEN with JF_BOT_TOKEN #254, by @ferferga
- Rename MissingPathVariableError to MissingPathVariableException and extend ApiClientException #256, by @nielsvanvelzen
- Add pair extensions to easily convert SDK pairs to and from Kotlin pairs #255, by @nielsvanvelzen
- Update kotlinx.coroutines and fix warnings in WebSocketApi #257, by @nielsvanvelzen
- Update Gradle Wrapper from 7.0.1 to 7.0.2 #258, by @jellyfin-bot
- Catch all types of timeouts and rethrow as ApiClientException #259, by @Maxr1998
- Add requestTimeout and socketTimeout to HttpClientOptions #261, by @nielsvanvelzen
1.0.0-beta.5 changelog
- Update all dependencies to latest version #242, by @nielsvanvelzen
- Add workflow to maintain an openapi-unstable branch #244, by @nielsvanvelzen
- Set nullability for query parameters based on the required attribute instead #245, by @nielsvanvelzen
- Add HttpClientOptions and exceptions in KtorClient #246, by @nielsvanvelzen
- Refactor discovery code with better rules #243, by @nielsvanvelzen
- Run test workflow on openapi-unstable branch #247, by @nielsvanvelzen
- Replace commit action with git commands in unstable branch workflow #249, by @nielsvanvelzen
1.0.0-beta.4 changelog
- Update Dokka to version 1.4.32 #241, by @nielsvanvelzen
- Update Kotlin to version 1.5.0 #240, by @nielsvanvelzen
- Sort generated operations alphabetically #239, by @nielsvanvelzen
- Update Android Gradle plugin to 4.2 #237, by @nielsvanvelzen
- Remove jcenter repository #238, by @nielsvanvelzen
- Update OpenAPI to 10.7.5 #236, by @jellyfin-bot
- Use eps1lon/actions-label-merge-conflict #235, by @nielsvanvelzen
- Fix path variable replacement #234, by @Maxr1998
- Rename recommendedVersion to minimumVersion #233, by @nielsvanvelzen
- Add deviceInfo and clientInfo getters in Jellyfin class #232, by @nielsvanvelzen
- Fix, suppress or modify all Detekt linter issues #231, by @nielsvanvelzen
- Add linting in CI using Detekt with SARIF output #229, by @nielsvanvelzen
- Use the Jellyfin Bot for all tasks using GitHub tokens #227, by @nielsvanvelzen
1.0.0-beta.3 changelog
- Model updates #224, by @nielsvanvelzen
- add missed dependencies label for dependabot PRs #225, by @h1dden-da3m0n
- Update OpenAPI to 10.7.2 #223, by @jellyfin-bot
- fix generated PR body overflow #221, by @h1dden-da3m0n
- (deps): bump actions/cache from v2 to v2.1.4 #215, by @dependabot
- Add GitHub workflow to automatically update OpenAPI spec and generated sources #219, by @h1dden-da3m0n
- Use experimental centralized dependency versions and type-safe project dependencies #218, by @nielsvanvelzen
- Use Java 16 in tests #217, by @nielsvanvelzen
- Update Gradle Wrapper from 6.8.3 to 7.0 #216, by @github-actions
- (deps): update used actions #214, by @h1dden-da3m0n
- Add binary compatibility validation #213, by @nielsvanvelzen
- Add default repositories to all projects #212, by @nielsvanvelzen
- Use SessionMessageType enum in WebSocketApi #204, by @nielsvanvelzen
- Remove server version from constants #205, by @nielsvanvelzen
- Update OpenAPI to 10.7.1 #203, by @nielsvanvelzen
- Automatically release on Sonatype #201, by @nielsvanvelzen
- Fix broken badge in README #202, by @nielsvanvelzen
1.0.0-beta.2 changelog
- Publish javadoc using Dokka #199, by @nielsvanvelzen
- Fix missing pom in android module #198, by @nielsvanvelzen
1.0.0-beta.1 changelog
- Create new README for 1.0.0 version #193, by @nielsvanvelzen
- Rename apiclient to SDK (after repository rename) #197, by @nielsvanvelzen
- Rename apiclient to SDK #196, by @nielsvanvelzen
- Add CODEOWNERS file #194, by @nielsvanvelzen
- Publish release assets #192, by @nielsvanvelzen
- Move publishing CI to GitHub actions #191, by @nielsvanvelzen
- Move build and testing CI to GitHub Actions #190, by @nielsvanvelzen
- Publish to Sonatype OSS #189, by @nielsvanvelzen
- Update generated sources (10.7.0 stable) #188, by @nielsvanvelzen
- Use OperationBuilder as parent class in OperationUrlBuilder and remove duplicate code #186, by @nielsvanvelzen
- Update openapi.json and generated sources to 10.7.0-RC4 #185, by @nielsvanvelzen
- Support OpenAPI composition #172, by @nielsvanvelzen
- Generate apiVersion and serverVersion constants #180, by @nielsvanvelzen
- Update Gradle Wrapper from 6.8.2 to 6.8.3 #184, by @github-actions
- Update Gradle Wrapper from 6.7 to 6.8.2 #182, by @github-actions
- Rename gradle wrapper workflows #183, by @nielsvanvelzen
- Add more properties to apiclient interface #178, by @nielsvanvelzen
- Add "observe" command to CLI sample to listen for WebSocket messages #177, by @nielsvanvelzen
- Remove versionName and versionCode from android module #179, by @nielsvanvelzen
- Update dependencies #175, by @nielsvanvelzen
- Support nullable POST bodies #173, by @nielsvanvelzen
- Add service name hook #170, by @nielsvanvelzen
- Add String.toUUID and String.toUUIDOrNull functions #171, by @nielsvanvelzen
- Update OpenAPI specification to 10.7~RC3 #169, by @nielsvanvelzen
- Discovery fixes #168, by @nielsvanvelzen
- Update OpenAPI specification to 10.7~RC2 #166, by @nielsvanvelzen
- Fix uuid parser sometimes failing #165, by @nielsvanvelzen
- Fix server discovery not ignoring unknown keys #164, by @nielsvanvelzen
- Update OpenAPI spec #160, by @nielsvanvelzen
- Encode device name in authorization header #159, by @nielsvanvelzen
- Fix lists incorrectly encoded in urls #157, by @nielsvanvelzen
- Set default value for requireAuthentication #155, by @nielsvanvelzen
- Expose ktor-http library #158, by @nielsvanvelzen
- Add option to generate URLs with access token added #154, by @nielsvanvelzen
- Update OpenAPI version to 10.7.0-rc1 (feature freeze) #151, by @nielsvanvelzen
- Support nullable parameters in path #150, by @nielsvanvelzen
- Add download and update tasks for OpenAPI spec #149, by @nielsvanvelzen
- Enable explicit API mode in jellyfin-core #153, by @nielsvanvelzen
- Enable explicit API mode in jellyfin-platform-android #152, by @nielsvanvelzen
- Add warning for path-parameters not specified in the operation path #144, by @nielsvanvelzen
- Support font files as binary content in OpenAPI generator #148, by @nielsvanvelzen
- Enable explicit API mode in jellyfin-api #146, by @nielsvanvelzen
- Enable explicit API mode in jellyfin-model #145, by @nielsvanvelzen
- Update all dependencies (November edition) #147, by @nielsvanvelzen
- Update gitattributes to mark generated code as such #143, by @nielsvanvelzen
- Update Kotlinpoet to 1.7.2 #138, by @nielsvanvelzen
- Refactor CLI sample #139, by @nielsvanvelzen
- Add recommended server discovery #134, by @nielsvanvelzen
- Add default values to API operations #135, by @nielsvanvelzen
- Normalize the Android device name #136, by @nielsvanvelzen
- Update OpenAPI spec (version 2020-10-16) #129, by @nielsvanvelzen
- Add openapi.json to git lfs #128, by @nielsvanvelzen
- Use coroutine based ByteReadChannel instead of synchronous InputStream #122, by @nielsvanvelzen
- update(ci): change ci publish steps ... again #127, by @h1dden-da3m0n
- Add more information to the Response class #123, by @nielsvanvelzen
- fix(ci): update search path for release assets #125, by @h1dden-da3m0n
- Enable Android core library desugaring #121, by @nielsvanvelzen
- Module name refactor #120, by @nielsvanvelzen
- Add WebSockets #111, by @nielsvanvelzen
- Catch IO exceptions when ...
v1.0.0-beta.9
This beta release fixes a few issues with the generated code and updates the OpenAPI specification to 10.7.6. If everything works as expected this beta will be retagged as 1.0.0 in the next few days and development on the 1.1.0 version will start.
Changelog
- Add description builder to modify property and class kdoc #276, by @nielsvanvelzen
- Add simplified Java version of the cli sample #278, by @nielsvanvelzen
- Update OpenAPI to 10.7.6 #279, by @jellyfin-bot
- Fix nullability in ImageMapsHook #280, by @nielsvanvelzen
- Fix warnings and issue in DefaultUserIdHook #282, by @nielsvanvelzen
- Update all dependencies #281, by @nielsvanvelzen
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.6 |
v1.0.0-beta.8
After almost a year of development the new apiclient SDK is ready for testing! This release is a complete rewrite of the 0.6.x version with some changes already released in the 0.7.x version. The API part is now automatically generated with a custom written code generator and updates the API to 10.7.0!
This is the eight beta and is intended as the final beta before release. This beta introduces some small changes to improve the experience for Java users, cleans the code a bit and adds a few new features:
- Automatically set the userId parameter for supported endpoints
- New bitrate measurement functions
- toString() function for the ServerVersion class
Expect more new features starting from the 1.1.0 release!
Changelog
- Add bitrate measurement functions #263, by @nielsvanvelzen
- Publish openapi-unstable branch as openapi-unstable-SNAPSHOT #264, by @nielsvanvelzen
- Bump actions/cache from 2.1.5 to 2.1.6 #265, by @dependabot
- Move createPath function to separate PathBuilder #266, by @nielsvanvelzen
- Move createAuthorizationHeader function to separate AuthorizationHeaderBuilder #267, by @nielsvanvelzen
- Improve usage of Jellyfin class in Java code #268, by @nielsvanvelzen
- Add toString function to ServerVersion #269, by @nielsvanvelzen
- Add DefaultValueHook for setting default operation parameter values #270, by @nielsvanvelzen
- Add userId default value hook #272, by @nielsvanvelzen
- Fix bad line endings used in openapi generator #274, by @nielsvanvelzen
Compatibility
Info | Jellyfin version |
---|---|
Minimum API Version | 10.7.0 |
Recommended API Version | 10.7.5 |
v0.7.10
This is the final release of the old apiclient. It is highly recommended to upgrade to the new Kotlin SDK.
This version of the apiclient does not depend on JCenter. It is only available for use on JitPack here: https://jitpack.io/#jellyfin/jellyfin-sdk-kotlin/v0.7.10.
Changelog
From #271.
- Disabled Detekt
- Disabled publishing to JCenter
- Removed JCenter repository
- Added MavenCentral repository
- Increased memory for Gradle builds (prevents out of memory)
- Updated Volley to 1.2.0 (1.1.x not available on MavenCentral)
- Downgrade Android build tools to 4.0.x because 4.1 doesn't support the Gradle version