Skip to content

Releases: andregasser/bigbone

v2.0.0-20240518.212224

18 May 20:47
Compare
Choose a tag to compare
Pre-release

📢 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

📔 Documentation

🔨 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

28 Dec 22:41
6960044
Compare
Choose a tag to compare
Pre-release

📢 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

🐞 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

🔨 Dependency Upgrades

⚡ 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

  • Scope constructor can no longer be called without explicitly enumerating scopes that should be requested.
  • Scope.NAME enum has been replaced with hierarchically arranged scope definitions in the class. Example: Scope.Name.READ becomes Scope.READ.ALL.
  • Existing FOLLOW scope has been removed. Use individual child scopes of READ and WRITE instead.
  • Existing ALL scope 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#getDomainBlocks
  • EndorsementMethods#getEndorsements
  • FollowedTagMethods#viewAllFollowedTags
  • SuggestionMethods#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

25 Nov 17:36
3b8ee0e
Compare
Choose a tag to compare
Pre-release

📢 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

📔 Documentation

🔨 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

05 Nov 20:27
d53bb48
Compare
Choose a tag to compare
Pre-release

📢 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

🐞 Bug Fixes

📔 Documentation

  • Updated contributing file with project structure by @Yordaniss in #306

🔨 Dependency Upgrades

⚡ 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:42Z that can be parsed as an Instant
  • 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 an Instant
  • 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#mostPreciseInstantOrNull
  • PrecisionDateTime#mostPreciseOrFallback
  • PrecisionDateTime#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

  • getNotifications has been renamed to getAllNotifications
  • clearNotifications has been renamed to dismissAllNotifications

PreviewCard property renaming / removal, introduced in #319

  • methodUrl has been renamed to embedUrl to match the official documentation
  • history has 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.Hide is now Action.HIDE)
  • Filter.Context has been renamed to Filter.FilterContext
  • Filter.Action has been renamed to Filter.FilterAction
  • Notification.Type has been renamed to Notification.NotificationType
  • ReportType has been renamed to ReportCategory
  • Filter.context now returns a List<FilterContext> instead of a List<String>
  • Filter.filterAction now returns a FilterAction object instead of a String
  • MastodonList.repliesPolicy now returns a RepliesPolicy object instead of a String
  • MediaAttachment.type now returns a MediaType object instead of a String
  • Notification.type now returns a NotificationType object instead of a String
  • PreviewCard.type now returns a CardType object instead of a String
  • FilterMethods.createFilter(): context parameter type has been changed from List<Filter.Context> to List<Filter.FilterContext>
  • FilterMethods.createFilter(): filterAction parameter type has been changed from Filter.Action to Filter.FilterAction
  • FilterMethods.updateFilter(): context parameter type has been changed from List<Filter.Context> to List<Filter.FilterContext>
  • FilterMethods.updateFilter(): filterAction parameter type has been changed from Filter.Action to Filter.FilterAction
  • NotificationMethods.getAllNotifications(): excludeTypes parameter type has been changed from List<Notification.Type> to List<Notification.NotificationType>
  • ReportMethods.fileReport(): category parameter type has been changed from ReportType to `Rep...
Read more

v2.0.0-20230902.213631

02 Sep 21:43
Compare
Choose a tag to compare
Pre-release

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

18 Aug 20:27
6fad033
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v2.0.0-20230731.134507...v2.0.0-20230818.202222

v2.0.0-20230731.134507

31 Jul 13:49
b8f008d
Compare
Choose a tag to compare
Pre-release

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

v2.0.0-20230719.193107

19 Jul 19:35
e2e396f
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v2.0.0-20230606.210428...v2.0.0-20230719.193107

v2.0.0-20230606.210428

06 Jun 21:07
fb59ffe
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v2.0.0-20230530.130705...v2.0.0-20230606.210428

v2.0.0-20230530.130705

30 May 13:11
ff91c3f
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v2.0.0-20230428.112301...v2.0.0-20230530.130705