-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Move to Swift 5.1 / Xcode 11 #2077
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
1a1d07f
to
c2e825b
Compare
Ok, Unix tests are good now. Interestingly, URLSession and other APIs have moved from Foundation to a framework called FoundationNetworking: https://github.com/apple/swift-corelibs-foundation/blob/a264bfd40af8412161cdc05be11c1cf35f6a56f1/Docs/ReleaseNotes_Swift5.md#dependency-management @kzaher I've commented a test here that seems to deadlock on Unix. I really don't have enough knowledge to debug this but it seems only the first concurrency task actually runs. Any ideas? This PR is blocking any other PR related to this release. Deadlocked test: RxSwift/Tests/RxSwiftTests/Observable+ObserveOnTests.swift Lines 444 to 493 in cce95dd
|
9c995d2
to
abe42c0
Compare
Hi @freak4pc , I don't think we can simply remove that test. As far as I can tell this is not a deadlock but a real regression in either OperationQueue or in OperationQueueScheduler on Linux. Here is a proof. I've added prints. If you just checkout ed90e60 you will see it prints.
If there were 2 threads concurrently executing If somebody has more information that would be great. I definitely don't see a reason to remove our test, because as far as I can tell it is working properly. If we find that this is Apple's bug with |
Oh, one can easily test this on https://github.com/ReactiveX/RxSwift/tree/debugging-concurrent-scheduler-hang if they have docker locally.
|
@freak4pc I can't explain why cocoapods fail with your branch. Develop branch succeeded 13 days ago. You probably changed something regarding CocoaPods configuration in this branch. |
I made no changes to CocoaPods configuration. I think Travis used to hold some sort of cache perhaps and it was cleared. It seems |
77efada
to
9d2e9fe
Compare
080c5f8
to
e4cc431
Compare
c526fb6
to
ece39ed
Compare
@kzaher This finally works. Would be great to merge this so we can start accumulating more content on top of RxSwift 6.0.0-beta.1 |
Hey @kzaher - I know you're very busy, but wondered if you have time to look into this? I'd like to accumulate as much content as possible into a releasable beta |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the cleanup in general makes sense. Thanks @freak4pc . Sorry for waiting so long, I've extremely busy lately.
import class Foundation.JSONSerialization | ||
import class Foundation.NSError | ||
import var Foundation.NSURLErrorCancelled | ||
import var Foundation.NSURLErrorDomain | ||
|
||
#if canImport(FoundationNetworking) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've been reading about this, geez. I don't know how does this affect ABI. Does this mean that if this becomes magically available on {i,mac,tv,watch}OS that it will break our ABI?
If we don't have a better workaround, it's probably fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# We have some remote repo (cached or otherwise), so we can simply update it | ||
bundle exec pod repo update | ||
fi | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting, glad you've been able to solve it :)
This bumps minimum Swift version to 5.1, updates CI, removes all deprecated methods (as we don't need to support if we're bumping major), and removes some unnecessary return statements as part of SE-0255.
SPM-related tests are still failing, seems the v5_1 version isn't recognized for some reason. Could be wrong version of SPM, will need to check.