Persist v1.3.0-beta.3
Release Notes
Add PrivacyInfo.xcprivacy
Add PrivacyInfo.xcprivacy
Add PrivacyInfo.xcprivacy
Fix crash when multiple updates create publishers simultaneously
Initial support for caching values in-memory
Fix deadlock when adding a new subscriber inside the closure of an update listener
Support animations when using Binding
provided via PersistStorage.projectedValue
Increase deployment targets to fix archive builds using Xcode 13
Swift Packages are JSON files that describe a collection of packages. This post will explain how to sign these packages with a trusted certificate entirely from the terminal. These methods should work on Linux and macOS alike. At the end I describe how to have Swift on Linux implicitly trust these packages.
Using this technique I have published my own package collection.
If you're targeting macOS only and find GUIs more intuitive I recommend following the “Swift Package Collection” blog post from Shaps, which is the post that finally made this “click” for me.
Thread-safety has been improved, including:
InMemoryStorage
Support for Date
s in UserDefaultsStorage
Add Persister
/Persisted
extensions on watchOS
builder(for:)
function to aid with building complex type (thanks to @randomeizer)The Xcode 12 beta includes Swift 5.3 but drops support for iOS 8.x. This means that Swift packages that support iOS 8 will cause a warning:
The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99.
It's not possible to remove this warning within a project that depends on a Swift package with a deployment target of iOS 8, but it is possible to fix this in the dependency without removing support for iOS 8 for older versions of Swift. There are multiple way this can be accomplished.
Improve API for Subscription/Cancellable
Add documentation
I am currently maintaining numerous Swift Packages that don't receive a constant flow of updates, but do receive updates when new Swift updates come out, or as I think of useful additions.
To ensure that I can make some of these less frequent updates without too much friction and with confidence in their correctness I rely heavily on GitHub Actions, which I'll go over in this blog post.
Much better handling of optional values, which also allows for non-optional values
Release candidate 1 for 1.0 stable release
Has lots of tests but little documentation. API has changes a lot since initial 0.1.0 but I’m happy with it now. Hopefully it is consistent and (once docs are added) easy to use.