v0.18.0
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.
- This is, for the most part, replaces the
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 whereATRecordProtocol
-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.
- This mostly eliminates the need to write custom
- 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.
- Removed the tuple practice that caused a warning to appear.
- 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.