Skip to content

v0.18.0

Compare
Choose a tag to compare
@MasterJ93 MasterJ93 released this 17 Oct 02:43
· 64 commits to main since this release

Version 0.18.0 includes the following changes:

  • Improved the normalization of all identifiers.
  • Added macros.
    • ATUnion
      • This is, for the most part, replaces the ATUnion structure. While this technically changes nothing, this does mean less boilerplate code.
      • Known issue: the expanded code may not be formatted correctly. This won’t cause any crashes or bugs, but it may not be 100% readable if you try to view the expanded code.
    • ATLexiconModel
      • This is the final part that completely erases the need to use custom encoding methods.
      • This doesn’t eliminate the need for the CodingKeys enum.
      • Known issue: using this marco prevents the ability to add custom implementations. This will be fixed in a future update.
  • Improved the effectiveness of the @DateFormatting and @DateFormattingOptional property wrappers.
    • This mostly eliminates the need to write custom init and decoding methods. However, there’s a known issue where ATRecordProtocol-conforming structs won’t be able to work unless a custom decoding method is implemented. This is not consistent among all of the affected structs.
  • Updated the latest lexicon changes from Bluesky’s atproto repo, which includes app.bsky.video.* lexicons.
    • This is true as of October 1, 2024. Missing lexicon changes will be added on the following update.
  • Added advanced error handling in uploadVideo().
    • This is a test to see if this form of error handling will work. The next major update will implement this if it indeed works.
  • Made the following changes to ATProtoBluesky.createPostRecord():
    • Removed the tuple practice that caused a warning to appear.
      • Creating a record that contains a record and media at the same time has yet to be implemented.
      • Known issue: another warning has taken its place. This will be resolved in a future update.
    • Tweaked the documentation to reflect the above change.
    • Important to note: either on a hotfix or minor release, ATProtoBluesky will include the ability to upload videos. I haven’t been able to make a completely clear and elegant way to handle this, as, unlike images, videos can take a bit of time to upload. I also want the transcript array and alt text to properly be uploaded as well.
  • Fixed an issue with Swift 6 language mode.
    • Slightly modified the way record structs are added so as to ensure the process is completed before any method that accesses the structs are retrieved in a safe manner.

Important to note: at this time, Swift 6.0 will be the only officially supported platform for Linux platforms. Linux can build and run successfully on Swift 6.0, but you’ll need to add @preconcurrency before importing. If you want to make some pull requests so Linux is supported on Swift 5.9 and 5.10, then please feel free to do so.

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.