ArraySection.updateDelegate was already weak and looking at the memory graph this is causing circular references
While working on the 2.0 update for Gathered I have been trying to develop the app multiple platforms simultaneously. SwiftUI will solve this problem in the future, but I wish to support some OS versions that SwiftUI does not support.
As part of this I have been creating UI tests to test performance, but ran in to an issue when running the UI tests on macOS using Mac Catalyst:
Running tests... The bundle “PerformanceXCTests” couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle. (dlopen_preflight(...): no suitable image found. Did find: ...: code signature in (...) not valid for use in process using Library Validation: mapped file has no Team ID and is not a platform binary (signed with custom identity or adhoc?))
This is a copy/paste from https://github.com/JosephDuffy/Persist/, with a couple of small tweaks:
- Only tests iOS; macOS, tvOS, and watchOS were removed
- Coverage is not uploaded to Codecov; I don't have permission to add the project
- Xcode 11.5 is used; this is the latest stable version
- v2 of the cache action is used; this is the latest stable version
It will do the following:
- Perform a release when a tag starting with
v1.1.0-rc1) will be marked as pre-release
- Build and upload docs to the
gh-pagesbranch as part of releases
- Run tests against iOS when a commit is pushed
Note that the cache is not as useful as it could be right now; Swift likes to rebuild things based on inodes so the cache is largely (maybe entirely) discarded, but will be useful in a future Swift release.
You'll need to create an orphaned
gh-pages branch for the docs since I don't have permissions. I don't think it needs an initial commit, although maybe you can't push an empty branch? I've never tried.
Sections were not propagating updates if added via a call to
invalidateAll. This is to address #2.
The issue can be recreated by using a
SegmentedSectionProvider when switching to a segment that contains a
SectionProvider works I think)
This commit alone is likely not enough to fix this issue;
updateDelegate should probably be set to
nil for removed
Sections, and should probably be set in more places.
Improve API for Subscription/Cancellable
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
Add support for
--output flag to