Releases: PattaFeuFeu/bigbone
v2.0.0-20250427.163556
📢 Overview
We’re on our way to finally release a final v2.0.0. Until then, this is another SNAPSHOT release which includes a few new properties and entities we got through Mastodon changes, a bit of cleaning up, as well as a few dependency updates.
Breaking changes
AccountMethods#registerAccountandRxAccountMethods#registerAccountnow have a newdateOfBirthparameter of typeLocalDate?as the last parameter. Setnullhere if you’re not propagating the date of birth from your UI. (see #573)MastodonClient.Builder#buildmay now break in more ways than before. Previously, we gracefully failed if the endpoint to get anInstancedidn’t work out for us to get a streaming API URL. Now, the wholebuildcall fails with anInstanceRetrievalExceptionthat may wrap other exceptions that might have occurred during retrieval—JSON parsing exceptions, network call failures, … (see #562)MastodonClient#getInstanceNameandMastodonClient#getInstanceVersionare deprecated and will throw an error if used. A drop-in replacement is available and offered by your IDE:getInstance().domainandgetInstance().version(see #562)
Changes
⭐ New features
- Add Filter.FilterAction.BLUR by @bocops in #557
- Add new user age restrictions by @PattaFeuFeu in #573
- Reuse OkHttpClient built in client builder for instance request by @PattaFeuFeu in #562
🧼 Clean-up
- Limit PR builds to specific types; cancel on new push by @PattaFeuFeu in #563
- Remove "BigBone Contributors" section by @bocops in #574
⚒️ Dependency upgrade
📚 Library
- Bump org.jetbrains.kotlinx:kotlinx-coroutines-core from 1.10.1 to 1.10.2 by @dependabot in #570
🤖 CI/Builds
- Bump com.autonomousapps.dependency-analysis from 2.14.0 to 2.16.0 by @dependabot in #565
- Bump mockk from 1.13.17 to 1.14.0 by @dependabot in #568
- Bump org.gradle.toolchains.foojay-resolver-convention from 0.9.0 to 0.10.0 by @dependabot in #567
- Bump org.junit.jupiter:junit-jupiter from 5.12.1 to 5.12.2 by @dependabot in #571
- Bump org.junit.platform:junit-platform-suite-engine from 1.12.1 to 1.12.2 by @dependabot in #569
♥️ Contributors
We kindly thank the following contributors who worked on this release:
Full Changelog: v2.0.0-20250412.064501...v2.0.0-20250427.163556
v2.0.0-20250412.064501
📢 Overview
We’re on our way to finally release a final v2.0.0. Until then, this is another SNAPSHOT release which includes a few new properties and entities we got through Mastodon changes, a bit of cleaning up and bug fixes, as well as a few dependency updates.
Breaking changes
MuteMethods.getMutes()now returnsPageable<MutedAccount>instead ofPageable<Account>.MutedAccount.toAccount()can be used to get account data as anAccount. (see #550 for details)- Parameter order in
OAuthMethods#getUserAccessTokenWithAuthorizationCodeGrantandRxOAuthMethods#getUserAccessTokenWithAuthorizationCodeGrantchanged. Java users of the library will need to add anullparameter (ascodeVerifier) before a non-nullscopeparameter if not using PKCE. (see #536 for details) - Parameter order in
OAuthMethods#getOAuthUrlandRxOAuthMethods#getOAuthUrlchanged. Java users of the library will need to add three parameters (state,codeChallenge,codeChallengeMethod) asnullbeforeforceLoginandlanguageCodeif not using PKCE. (see #536 for details)
Changes
⭐ New features
- Add MutedAccount entity. by @bocops in #550
- Add PKCE parameters to relevant OAuth methods by @bocops in #536
- Add attributionDomains to CredentialAccount by @bocops in #558
- Add functionality to compare scopes by @bocops in #533
🐞 Bug fixes
- 560 catch invalid error response by @bocops in #561
- Fix malformed fallback streaming URL by @PattaFeuFeu in #534
🧼 Clean-up
- Clarify Status.filtered value being non-null by @bocops in #548
- Cleanup: remove deprecated MediaAttachment.text_url by @bocops in #535
- Define necessary scopes in access token for all samples. by @bocops in #547
- Remove integration tests for Mastodon v3.0.0 and v4.0.2 by @PattaFeuFeu in #559
⚒️ Dependency upgrade
📚 Library
- Bump kotlin from 2.1.0 to 2.1.10 by @dependabot in #523
- Bump kotlin from 2.1.10 to 2.1.20 by @dependabot in #543
- Bump mockk from 1.13.16 to 1.13.17 by @dependabot in #541
- Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.8.0 to 1.8.1 by @dependabot in #552
🤖 CI/Builds
- Bump codecov/codecov-action from 4 to 5 by @dependabot in #505
- Bump com.autonomousapps.dependency-analysis from 2.11.0 to 2.12.0 by @dependabot in #540
- Bump com.autonomousapps.dependency-analysis from 2.12.0 to 2.13.0 by @dependabot in #544
- Bump com.autonomousapps.dependency-analysis from 2.13.0 to 2.13.1 by @dependabot in #545
- Bump com.autonomousapps.dependency-analysis from 2.13.1 to 2.13.3 by @dependabot in #549
- Bump com.autonomousapps.dependency-analysis from 2.13.3 to 2.14.0 by @dependabot in #551
- Bump com.autonomousapps.dependency-analysis from 2.7.0 to 2.10.1 by @dependabot in #527
- Bump io.gitlab.arturbosch.detekt from 1.23.6 to 1.23.8 by @dependabot in #526
- Bump org.jlleitschuh.gradle.ktlint from 12.1.2 to 12.2.0 by @dependabot in #538
- Bump org.junit.jupiter:junit-jupiter from 5.11.4 to 5.12.0 by @dependabot in #528
- Bump org.junit.jupiter:junit-jupiter from 5.12.0 to 5.12.1 by @dependabot in #537
- Bump org.junit.platform:junit-platform-launcher from 1.11.4 to 1.12.1 by @dependabot in #539
- Bump org.junit.platform:junit-platform-suite-engine from 1.11.4 to 1.12.0 by @dependabot in #529
- Bump org.junit.platform:junit-platform-suite-engine from 1.12.0 to 1.12.1 by @dependabot in #542
♥️ Contributors
We kindly thank the following contributors who worked on this release:
Full Changelog: v2.0.0-20250205.202924...v2.0.0-20250412.064501
v2.0.0-20250205.202924
📢 Overview
With this snapshot, we introduce grouped notifications (a feature that came with Mastodon 4.3.0), some other improvements plus lots of technical dependency updates (Kotlin 2.1.0, okhttp 5.0.0, etc.). Please check the breaking changes section to make sure you do not run into unexpected issues.
⭐ New Features
- Add api_versions property to Instance entity. by @bocops in #484
- Remove deprecated InstanceV1 endpoint by @PattaFeuFeu in #452
- Set preconditions for artifact signing by @andregasser in #500
- Add grouped_notifications API by @PattaFeuFeu in #494
🐞 Bug Fixes
- refactor: pass scheme and port to server info url by @jdpgrailsdev in #512
📔 Documentation
- 📝 Add Apus to the list of projects using BigBone by @McPringle in #473
- Add RELEASING.md by @andregasser in #493
🔨 Dependency Upgrades
- Bump kotlin from 1.9.23 to 1.9.24 by @dependabot in #450
- Bump com.autonomousapps.dependency-analysis from 1.31.0 to 1.32.0 by @dependabot in #455
- Bump com.gradle.develocity from 3.17.3 to 3.17.4 by @dependabot in #449
- Upgrade gradle to version 8.8 by @andregasser in #457
- Bump mockk from 1.13.7 to 1.13.11 by @dependabot in #451
- Bump kotlin from 1.9.24 to 2.0.0 by @dependabot in #459
- Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.6.3 to 1.7.0 by @dependabot in #458
- Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.7.0 to 1.7.1 by @dependabot in #463
- Bump com.autonomousapps.dependency-analysis from 1.32.0 to 1.33.0 by @dependabot in #465
- Bump mockk from 1.13.11 to 1.13.12 by @dependabot in #464
- Bump gradle/actions from 3 to 4 by @dependabot in #466
- Bump org.junit.jupiter:junit-jupiter from 5.10.2 to 5.11.0 by @dependabot in #468
- Bump org.junit.platform:junit-platform-launcher from 1.10.2 to 1.11.0 by @dependabot in #469
- Bump org.junit.platform:junit-platform-suite-engine from 1.10.2 to 1.11.0 by @dependabot in #470
- Bump kotlin from 2.0.0 to 2.0.20 by @dependabot in #471
- Bump io.reactivex.rxjava3:rxjava from 3.1.8 to 3.1.9 by @dependabot in #472
- Bump org.jetbrains.kotlinx:kotlinx-coroutines-core from 1.8.1 to 1.9.0 by @dependabot in #477
- Bump org.junit.platform:junit-platform-suite-engine from 1.11.0 to 1.11.1 by @dependabot in #481
- Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.7.1 to 1.7.3 by @dependabot in #480
- Bump org.junit.platform:junit-platform-launcher from 1.11.0 to 1.11.2 by @dependabot in #485
- Bump org.junit.platform:junit-platform-suite-engine from 1.11.1 to 1.11.2 by @dependabot in #487
- Bump mockk from 1.13.12 to 1.13.13 by @dependabot in #490
- Bump kotlin from 2.0.20 to 2.0.21 by @dependabot in #489
- Bump org.junit.jupiter:junit-jupiter from 5.11.0 to 5.11.2 by @dependabot in #488
- Upgrade Gradle from version 8.8 to version 8.10.2 by @andregasser in #492
- Upgrade okhttp to version 5.0.0-alpha.14 by @andregasser in #491
- Bump com.autonomousapps.dependency-analysis from 1.33.0 to 2.1.4 by @dependabot in #486
- Replace deprecated gradle-build-action with setup-gradle by @PattaFeuFeu in #495
- Bump org.junit.jupiter:junit-jupiter from 5.11.2 to 5.11.3 by @dependabot in #499
- Bump kotlin from 2.0.21 to 2.1.0 by @dependabot in #508
- Bump org.jlleitschuh.gradle.ktlint from 12.1.1 to 12.1.2 by @dependabot in #506
- Bump org.gradle.toolchains.foojay-resolver-convention from 0.8.0 to 0.9.0 by @dependabot in #509
- Bump com.autonomousapps.dependency-analysis from 2.1.4 to 2.6.0 by @dependabot in #510
- Bump io.reactivex.rxjava3:rxjava from 3.1.9 to 3.1.10 by @dependabot in #511
- Bump org.junit.jupiter:junit-jupiter from 5.11.3 to 5.11.4 by @dependabot in #515
- Bump org.junit.platform:junit-platform-launcher from 1.11.3 to 1.11.4 by @dependabot in #514
- Bump org.junit.platform:junit-platform-suite-engine from 1.11.3 to 1.11.4 by @dependabot in #513
- Bump com.autonomousapps.dependency-analysis from 2.6.0 to 2.6.1 by @dependabot in #516
- Bump mockk from 1.13.13 to 1.13.14 by @dependabot in #518
- Bump org.jetbrains.kotlinx:kotlinx-coroutines-core from 1.9.0 to 1.10.1 by @dependabot in #517
- Bump mockk from 1.13.14 to 1.13.16 by @dependabot in #520
- Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.7.3 to 1.8.0 by @dependabot in #519
- Bump com.github.ben-manes.versions from 0.51.0 to 0.52.0 by @dependabot in #522
- Bump com.autonomousapps.dependency-analysis from 2.6.1 to 2.7.0 by @dependabot in #521
⚡ Breaking Changes
Remove deprecated InstanceV1 endpoint, introduced in #452
The previously already marked deprecated call to GET /api/v1/instance has been removed. You can no longer get instance information for Mastodon server versions prior to Mastodon 4.0 which needed the v1 variant. Please use the v2 variant GET /api/v2/instance which is available via InstanceMethods#getInstance.
NotificationType Changes, introduced in #494
-
Notification.NotificationTypewas moved to its own class. Import changes fromimport social.bigbone.api.entity.Notification.NotificationTypetoimport social.bigbone.api.entity.NotificationType -
New NotificationTypes were added and they are still in alphabetical order. So if you relied on
NotificationType#ordinal, please be aware that ordinals changed.
❤️ Contributors
Thank you to all the contributors who worked on this release:
Full Changelog: v2.0.0-20240518.212224...v2.0.0-20250205.202924
v2.0.0-20240518.212224
📢 Overview
It's been a long time! A new snapshot is here that brings some cool enhancements to the Admin API. With this snapshot we achieve feature completeness for the implementation of Mastodon Server API endpoints (as of December 2023).
⭐ New Features
- Add Admin::Accounts methods by @PattaFeuFeu in #404
- Add Admin::DomainAllow methods by @G10xy in #413
- Add Admin::Trends methods by @PattaFeuFeu in #399
- Fully implement partially implemented AccountMethods by @PattaFeuFeu in #411
- Add ScheduledStatuses methods by @PattaFeuFeu in #409
- Add Admin::Reports methods by @PattaFeuFeu in #414
- Fully support Media API methods by @PattaFeuFeu in #408
- Implement missing Account methods by @PattaFeuFeu in #415
- Clean up endpoint definitions in methods classes by @PattaFeuFeu in #410
- Make error details returned by server available in BigBoneRequestException by @bocops in #443
📔 Documentation
- Add text to title page on https://bigbone.social by @andregasser
- Add a "Getting Started" guide to https://bigbone.social by @andregasser
🔨 Dependency Upgrades
- Bump com.autonomousapps.dependency-analysis from 1.28.0 to 1.29.0 by @dependabot in #420
- Bump com.github.ben-manes.versions from 0.50.0 to 0.51.0 by @dependabot in #419
- Bump org.gradle.toolchains.foojay-resolver-convention from 0.7.0 to 0.8.0 by @dependabot in #418
- Bump gradle/gradle-build-action from 2 to 3 by @dependabot in #421
- Bump org.jlleitschuh.gradle.ktlint from 11.6.1 to 12.1.0 by @dependabot in #417
- Upgrade Gradle to 8.6 by @andregasser in #423
- Updated gradle wrapper to 8.7 by @nightm4re94 in #433
- Bump io.gitlab.arturbosch.detekt from 1.23.4 to 1.23.6 by @dependabot in #431
- Bump com.gradle.enterprise from 3.16.1 to 3.17.1 by @dependabot in #435
- Bump org.junit.platform:junit-platform-suite-engine from 1.10.1 to 1.10.2 by @dependabot in #426
- Bump codecov/codecov-action from 3 to 4 by @dependabot in #422
- Bump softprops/action-gh-release from 1 to 2 by @dependabot in #430
- Bump kotlin from 1.9.22 to 1.9.23 by @dependabot in #436
- Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.6.2 to 1.6.3 by @dependabot in #437
- Bump org.jetbrains.kotlinx:kotlinx-coroutines-core from 1.7.3 to 1.8.0 by @dependabot in #439
- Bump com.autonomousapps.dependency-analysis from 1.29.0 to 1.31.0 by @dependabot in #438
- Bump com.gradle.develocity from 3.17.1 to 3.17.3 by @dependabot in #446
- Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2 by @dependabot in #440
- Bump org.jetbrains.kotlinx:kotlinx-coroutines-core from 1.8.0 to 1.8.1 by @dependabot in #444
- Bump org.jlleitschuh.gradle.ktlint from 12.1.0 to 12.1.1 by @dependabot in #445
❤️ Contributors
Thank you to all the contributors who worked on this release:
Full Changelog: v2.0.0-20231228.215524...v2.0.0-20240518.212224
v2.0.0-20231228.215524
📢 Overview
This snapshot brings many new features and functionalities, but also various breaking changes. One of the highlights of this release is certainly the refactoring of the streaming API which has now been implemented based on the WebSocket protocol. Please read the “Breaking Changes” section carefully to understand where you should expect changes to your code. Happy holidays! 🎄
⭐ New Features
- Add followed tags method by @PattaFeuFeu in #355
- Add admin/dimensions API methods by @PattaFeuFeu in #352
- Add emails methods by @PattaFeuFeu in #354
- Implement Trends API by @PattaFeuFeu in #360
- Timelines: Add missing query parameters for full support by @PattaFeuFeu in #368
- lists: Add “exclusive” parameter for full support by @PattaFeuFeu in #379
- Add Admin::DomainBlocks entity and methods by @PattaFeuFeu in #397
- Add Admin::EmailDomainBlock methods by @PattaFeuFeu in #400
- Add Admin::CanonicalEmailBlocks methods by @PattaFeuFeu in #403
- Rewrite streaming API to use websocket by @PattaFeuFeu in #383
- Add ip block admin-related methods by @G10xy in #392
- Add release script that reacts on tags like v2.0.0 by @PattaFeuFeu in #336
- Replace missed Single#create with Single#fromCallable by @PattaFeuFeu in #373
- oAuth: Add missing function parameters, add revoke token method by @PattaFeuFeu in #370
- followRequests: Change return to Relationship by @PattaFeuFeu in #371
- RxAppMethods: Add missing
verifyCredentialsby @PattaFeuFeu in #374 - Mock server testing instead of hitting actual website by @PattaFeuFeu in #390
- Update scopes used in OAuth by @bocops in #382
🐞 Bug Fixes
- Propagate exceptions occurring during client instantiation by @PattaFeuFeu in #353
- Remove defaults for limit parameter + do not verify values by @PattaFeuFeu in #367
📔 Documentation
- Update pull request template by @andregasser in #356
- Update markdown documentation in the root folder of the project by @andregasser in #359
- Add Slack link to README.md by @andregasser in #362
- Update api coverage documentation to match current library state by @PattaFeuFeu in #361
- Create SECURITY.md by @andregasser in #363
- Add missing kDocs to all RxJava implementations by @PattaFeuFeu in #372
- Hide PR template suggestions even if they’re kept by @PattaFeuFeu in #391
- PR template: Add check boxes to Optional Checks section by @PattaFeuFeu in #401
- Fix broken Admin::IpBlocks kDoc links by @PattaFeuFeu in #402
🔨 Dependency Upgrades
- Bump kotlin from 1.9.20 to 1.9.21 by @dependabot in #357
- Bump io.gitlab.arturbosch.detekt from 1.23.3 to 1.23.4 by @dependabot in #358
- Upgrade Gradle from 8.4 to 8.5 by @andregasser in #369
- Bump kotlinx-serialization-json from 1.6.1 to 1.6.2 by @dependabot in #377
- Bump com.autonomousapps.dependency-analysis from 1.26.0 to 1.27.0 by @dependabot in #375
- Bump com.gradle.enterprise from 3.15.1 to 3.16 by @dependabot in #388
- Bump com.autonomousapps.dependency-analysis from 1.27.0 to 1.28.0 by @dependabot in #395
- Bump com.gradle.enterprise from 3.16 to 3.16.1 by @dependabot in #394
- Bump github/codeql-action from 2 to 3 by @dependabot in #393
- Bump kotlin from 1.9.21 to 1.9.22 by @dependabot in #398
⚡ Breaking Changes
Streaming API WebSocket Refactoring, introduced in #383
With the replacement came loads of breaking changes. I’ve replaced the previous Handler and Shutdownable with a leaner callback and an extension of Closeable, so now the signatures, while similar, are actually quite different for callers.
It’s no longer necessary (or even possible) to call useStreamingApi when building the MastodonClient.
Please check our updated Usages section about the streaming API or one of the following samples to see how to utilise the streaming API:
Mastodon Client Builder, introduced in #353
MastodonClient.Builder#build may now throw a BigBoneClientInstantiationException.
ListMethods#createList Changes, introduced in #379
ListMethods#createList parameter repliesPolicy now is null by default and is defined as nullable. Likely won’t break anything, but just in case…
OAuthMethods Parameter Changes, introduced in #370
OAuthMethods#getOAuthUrl: scope moved from second to third parameter, switching places with redirectUri, and also became optional (=> nullable).
Rx Return Type Changes, introduced in #371
RxFollowRequestMethods#authorizeFollowRequest and RxFollowRequestMethods#rejectFollowRequest now return Single<Relationship> instead of Completable.
Update Scopes Used in OAuth, introduced in #382
Scopeconstructor can no longer be called without explicitly enumerating scopes that should be requested.Scope.NAMEenum has been replaced with hierarchically arranged scope definitions in the class. Example:Scope.Name.READbecomesScope.READ.ALL.- Existing
FOLLOWscope has been removed. Use individual child scopes ofREADandWRITEinstead. - Existing
ALLscope has been removed. Use individual scopes necessary for your use case instead.
Exception Handling Changes, introduced in #367
The following no longer throw or declare an IllegalArgumentException, so any try/catch can be removed:
DomainBlockMethods#getDomainBlocksEndorsementMethods#getEndorsementsFollowedTagMethods#viewAllFollowedTagsSuggestionMethods#getSuggestions
❤️ Contributors
Thank you to all the contributors who worked on this release:
Full Changelog: v2.0.0-20231125.173242...v2.0.0-20231228.215524
v2.0.0-20231125.173242
📢 Overview
In this snapshot we have started to add methods from the Mastodon Admin API and improved the methods for retrieving notifications. Besides this, the search methods have been improved to allow searching for individual types.
⭐ New Features
- Add admin/retention methods by @PattaFeuFeu in #334
- Add admin/measures methods by @PattaFeuFeu in #333
- Add missing types and parameters to Notifications API by @PattaFeuFeu in #332
- Allow searches for individual types by @bocops in #345
- Clarify parameter interaction in searchContent method by @bocops in #346
📔 Documentation
- Add section for breaking changes to pull request template by @andregasser in #344
- Move documentation into docs folder by @andregasser in #347
🔨 Dependency Upgrades
- Bump org.junit.platform:junit-platform-launcher from 1.10.0 to 1.10.1 by @dependabot in #340
- Bump io.gitlab.arturbosch.detekt from 1.23.1 to 1.23.3 by @dependabot in #339
- Bump org.junit.platform:junit-platform-suite-engine from 1.10.0 to 1.10.1 by @dependabot in #337
- Bump org.junit.jupiter:junit-jupiter from 5.10.0 to 5.10.1 by @dependabot in #338
- Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.6.0 to 1.6.1 by @dependabot in #350
- Bump com.github.ben-manes.versions from 0.49.0 to 0.50.0 by @dependabot in #348
- Bump com.autonomousapps.dependency-analysis from 1.25.0 to 1.26.0 by @dependabot in #349
⚡ Breaking Changes
Added missing parameters to getAllNotifications() method, introduced in #332
Method signature of getAllNotifications has changed from getAllNotifications(excludeTypes: List<Notification.NotificationType>? = null, range: Range = Range()) to getAllNotifications(includeTypes: List<Notification.NotificationType>? = null, excludeTypes: List<Notification.NotificationType>? = null, accountId: String? = null, range: Range = Range()).
❤️ Contributors
Thank you to all the contributors who worked on this release:
Full Changelog: v2.0.0-20231105.202213...v2.0.0-20231125.173242
v2.0.0-20231105.202213
📢 Overview
This snapshot contains lots of contributions that came in thanks to Hacktoberfest 2023. Many aspects of the library have been fundamentally improved. As a result, it was inevitable to introduce certain incompatible changes to the previous snapshot. You will almost certainly have to adapt and recompile your code. In the "Breaking Changes" section, we do our best to document these changes in the hope that the transition to this snapshot will be as painless as possible for you.
⭐ New Features
- Update SearchContent with all possible request params by @G10xy in #267
- Update API calling favourites related dto by @G10xy in #268
- Add missing report field to Notification entity by @PattaFeuFeu in #271
- Update ReportMethods by adding all request params by @G10xy in #277
- update Relationship model by @G10xy in #278
- Implement featured_tags API by @PattaFeuFeu in #283
- Deserialize JSON using KotlinX Serialization instead of Gson by @PattaFeuFeu in #270
- Add FeaturedTags to MastodonClient by @PattaFeuFeu in #289
- Return instance version from server info if available by @PattaFeuFeu in #290
- Add ktlint plugin code styling and formatting by @G10xy in #281
- Implement endorsements API by @PattaFeuFeu in #286
- Add domain_blocks API by @PattaFeuFeu in #287
- Add custom_emojis API methods by @PattaFeuFeu in #301
- Implement dismiss single notification request by @PattaFeuFeu in #302
- Feat Suggestion methods api by @G10xy in #291
- implement preferences API methods by @G10xy in #284
- Implement instance API methods by @PattaFeuFeu in #303
- Parse ISO 8601 date(time) strings as Instant by @PattaFeuFeu in #312
- Replace Single/Completable#create with fromCallable/fromAction by @PattaFeuFeu in #288
- Add Announcement API by @AnuraagReddy123 in #309
- Update enum classes with kotlinx annotations by @G10xy in #310
- #299 Implement oEmbed API methods by @PattaFeuFeu in #317
- Feat new push notifications methods by @G10xy in #316
🐞 Bug Fixes
- PreviewCard property fixes by @andregasser in #319
📔 Documentation
- Updated contributing file with project structure by @Yordaniss in #306
🔨 Dependency Upgrades
- Add dependabot for GitHub Actions workflow dependencies by @PattaFeuFeu in #275
- Bump actions/checkout from 3 to 4 by @dependabot in #276
- Bump com.autonomousapps.dependency-analysis from 1.21.0 to 1.22.0 by @dependabot in #258
- Bump com.autonomousapps.dependency-analysis from 1.22.0 to 1.24.0 by @dependabot in #264
- Bump com.autonomousapps.dependency-analysis from 1.24.0 to 1.25.0 by @dependabot in #272
- Bump com.github.ben-manes.versions from 0.47.0 to 0.48.0 by @dependabot in #257
- Bump com.github.ben-manes.versions from 0.48.0 to 0.49.0 by @dependabot in #273
- Bump io.reactivex.rxjava3:rxjava from 3.1.7 to 3.1.8 by @dependabot in #265
- Bump kotlin from 1.9.0 to 1.9.10 by @dependabot in #255
- Bump kotlin from 1.9.10 to 1.9.20 by @dependabot in #315
- Bump okhttp from 4.11.0 to 4.12.0 by @dependabot in #307
- Bump org.jlleitschuh.gradle.ktlint from 11.6.0 to 11.6.1 by @dependabot in #308
- Remove explicitly set kotlin-stdlib from Gradle scripts by @PattaFeuFeu in #285
- Upgrate to Gradle 8.4 plus buildSrc improvements by @andregasser in #274
⚡ Breaking Changes
RxJava, introduced in #288
We now no longer check if a downstream consumer has been disposed when emitting errors. Please check the Error Handling section of our RxJava documentation
Replace Gson with kotlinx.serialization, introduced in #270
Gson has been completely replaced with kotlinx.serialization.
Previously, we defined Gson as an api dependency so that it would be bundled with our library. This is no longer the case. We are also not exposing kotlinx.serialization in the same way.
MastodonClient previously exposed the Gson serializer via getSerializer. This method has been removed without replacement.
Dates returned as PrecisionDateTime which wraps java.time.Instant, introduced in #312
Previously, dates (e.g. created_at, last_status_at, …) were returned as the String we received from the Mastodon API. This is usually a full ISO8601 in UTC but sometimes is just a local date.
We now return PrecisionDateTime which can have different values depending on what we get from the API:
PrecisionDateTime.ValidPrecisionDateTime.ExactTime- We got an exact string that pinpoints an instant in time up to a second or higher like
2023-10-28T13:37:42Zthat can be parsed as anInstant
- We got an exact string that pinpoints an instant in time up to a second or higher like
PrecisionDateTime.ValidPrecisionDateTime.StartOfDay- We got a string that describes a date without a time like
2023-10-28. We default to the start of the day when parsing anInstant
- We got a string that describes a date without a time like
PrecisionDateTime.InvalidPrecisionDateTime.Invalid- The string we received is invalid and could not be parsed
PrecisionDateTime.InvalidPrecisionDateTime.Unavailable- The parameter was unavailable, thus no parsing happened. This is the default value.
We have added helper methods for you to use:
PrecisionDateTime#mostPreciseInstantOrNullPrecisionDateTime#mostPreciseOrFallbackPrecisionDateTime#isValid
Please check the documentation for further info.
Instance API methods, introduced in #303
The old getInstance pointing to the v1 endpoint of the Instance APIs has been renamed to getInstanceV1.
getInstance now points to the v2 endpoint of the Instance APIs.
As the V1 variant has been deprecated since Mastodon 4.0.0, it is unlikely that you will need the V1 variant anymore and it is due for removal as soon as older Mastodon API versions have been completely deprecated by Mastodon.
Notification methods renaming, introduced in #302
getNotificationshas been renamed togetAllNotificationsclearNotificationshas been renamed todismissAllNotifications
PreviewCard property renaming / removal, introduced in #319
methodUrlhas been renamed toembedUrlto match the official documentationhistoryhas been removed as it is not needed in this context and would always be an empty list
Enum improvements, introduced in #310
- All enum values are now uppercase to be more closely aligned with Kotlin coding conventions (e.g.
Action.Hideis nowAction.HIDE) Filter.Contexthas been renamed toFilter.FilterContextFilter.Actionhas been renamed toFilter.FilterActionNotification.Typehas been renamed toNotification.NotificationTypeReportTypehas been renamed toReportCategoryFilter.contextnow returns aList<FilterContext>instead of aList<String>Filter.filterActionnow returns aFilterActionobject instead of aStringMastodonList.repliesPolicynow returns aRepliesPolicyobject instead of aStringMediaAttachment.typenow returns aMediaTypeobject instead of aStringNotification.typenow returns aNotificationTypeobject instead of aStringPreviewCard.typenow returns aCardTypeobject instead of aStringFilterMethods.createFilter():contextparameter type has been changed fromList<Filter.Context>toList<Filter.FilterContext>FilterMethods.createFilter():filterActionparameter type has been changed fromFilter.ActiontoFilter.FilterActionFilterMethods.updateFilter():contextparameter type has been changed fromList<Filter.Context>toList<Filter.FilterContext>FilterMethods.updateFilter():filterActionparameter type has been changed fromFilter.ActiontoFilter.FilterActionNotificationMethods.getAllNotifications():excludeTypesparameter type has been changed fromList<Notification.Type>toList<Notification.NotificationType>ReportMethods.fileReport():categoryparameter type has been changed fromReportTypeto `Rep...
v2.0.0-20230902.213631
What's Changed
- Review existing API methods for "Java friendliness" by @andregasser in #253
- Fixed a kotlin-stdlib version issue (wrong stdlib versions were used as dependencies) by @andregasser in 7cd449f
Full Changelog: v2.0.0-20230818.202222...v2.0.0-20230902.213631
v2.0.0-20230818.202222
What's Changed
- Bump org.jetbrains.kotlinx:kotlinx-coroutines-core from 1.7.2 to 1.7.3 by @dependabot in #247
- Bump junit-jupiter from 5.9.3 to 5.10.0 by @dependabot in #244
- Bump detekt from 1.23.0 to 1.23.1 by @dependabot in #246
- Update detekt rules file by @andregasser in #248
- Bump mockk from 1.13.5 to 1.13.7 by @dependabot in #249
- Add markers api by @andregasser in #250
- Added bookmarks API by @andregasser in #252
- Upgrade build to Gradle 8.3 by @andregasser in #251
Full Changelog: v2.0.0-20230731.134507...v2.0.0-20230818.202222
v2.0.0-20230731.134507
What's Changed
- Update documentation (contribution guidelines, support, readme) by @andregasser in #242
- Bump org.junit.platform:junit-platform-suite-engine from 1.9.3 to 1.10.0 by @dependabot in #243
- Make idempotency key value optional when posting by @bocops in #245
Full Changelog: v2.0.0-20230719.193107...v2.0.0-20230731.134507