Skip to content

v0.20.0

Compare
Choose a tag to compare
@MasterJ93 MasterJ93 released this 26 Nov 01:24
· 127 commits to main since this release

Version 0.20.0 includes the following changes:

  • ATProtoBluesky now includes proper implementation for link embeds.
    • You can use your own implementation on how you grab the URL, title, description, and thumbnail image for the link. You can also use the built-in ATLinkBuilder for your client to grab the links for you.

      Note: If a custom ATLinkBuilder is not included, then link previews will not work automatically. Please see the DocC for more details.

  • ATProtoKit now has now has StrictConcurrency enabled.
    • This is to check for more data race errors. Once it goes down to 0 and there’s a more established structure, Swift 6 language mode will be turned on.
  • Replaced the use of @DateFormatting and @DateFormattingOptional with encodeDate, encodeDateIfPresent, decodeDate, and decodeDateIfPresent.
    • This is due to the constant issues with respect to decoding Date and Date? properties. With these new functions the issues that have been present should no longer exist.
    • ATLexiconModel will be updated to reflect this change.
    • The affected article will be archived and will be removed at a later date.
    • @DateFormatting and @DateFormattingOptional will be deprecated.
    • As a side note: truncateEncode and truncateEncodeIfPresent will now be publicly available for developers to use.
  • Fixed additional data race errors.
    • Logging-related code has been separated from ATProtocolConfiguration and into a separate actor.
  • Fixed a crash related to ATRecordTypeRegistry.
  • Made sure swift-syntax works across Swift 5.10 and 6.0. (Thanks @rhysm94!)
  • Tweaked getPopularFeedGenerators to use authentication. (Thanks, @Dimillian!)
  • Fixed an issue where getPreferences() would fail to decode the output.
    • This is because app.bsky.actor.defs#preferences is an array in the lexicon and not an object. This was an oversight. AppBskyLexicon.Actor.PreferencesDefinition has now been converted from a struct to a typealias.
      • Thank you @Dimillian for fixing the bug! While their PR wasn’t merged, it did point to the right direction.
  • Fixed an issue where the JSON object related to starter packs may incorrectly be decoded as a labeller.
  • Made sure getPopularFeedGenerators() uses authentication. (Thanks @Dimillian!)
  • Fixed issue where embed records were not decoding correctly. (Thanks @andylin2004!)
    • This format will be a new change for all records and record views in order to ensure that things are decoding and encoding correctly.
  • Made some minor fixes to documentation and names.
    • Documentation to most of ATLexiconModel’s methods have been added.

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.