Skip to content
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

Strict mode for concurrency - Swift 6 support #82

Merged
merged 34 commits into from
Sep 12, 2024

Conversation

kyzmitch
Copy link
Owner

@kyzmitch kyzmitch commented Apr 9, 2024

Xcode project now uses Swift 6.0 so after merge Xcode 15.4 can't be used anymore, need to use Xcode 16.0 beta

Changes:

  • fix warnings for Complete concurrency mode (add Sendable markers)
  • replace Tab type with CoreBrowser.Tab because iOS 18 beta now provides system SwiftUI.Tab type
  • a little more canonical look for the tabs repository
  • add preconcurrency for the older 3rd party dependencies which may not support full concurrency yet
  • mark 3-rd party deps like Alamofire with @preconcurrency. See https://github.com/swiftlang/swift-evolution/blob/main/proposals/0337-support-incremental-migration-to-concurrency-checking.md helps you silence concurrency-related warnings without implementing Sendable conformance
    1. Alamofire
    2. ReactiveSwift
  • mark types retroactive if it is own type/protocol and not retroactive if it is @unchecked Sendable
  • call global actors as StateHolder for internal use
  • fix ToolbarContent compilation issue on new beta Xcode by using view builder specific to Toolbar
  • replace TabDefaultContent model with existing Tab.ContentType

CI won't work for this branch yet, because most likely GitHub actions do not use Beta version of Xcode!

@kyzmitch kyzmitch added iOS iOS client sources enhancement labels Jun 14, 2024
…yzmitch/Cotton into feature/more_canonical_tabs_repository

# Conflicts:
#	catowseriOS/CoreBrowser/UseCases/LazyServiceLocator.swift
#	catowseriOS/CoreBrowser/UseCases/UseCaseLocator.swift
@kyzmitch kyzmitch marked this pull request as ready for review August 26, 2024 18:14
@kyzmitch
Copy link
Owner Author

Decided to merge this PR sooner without waiting for GitHub actions support of Xcode 16, because 2nd open PR #80 doesn't compile in Xcode 16 as well even without settings Swift 6.0 and also I'm expecting to see some merge conflicts and 2nd PR can't be used for development for now because of that

@kyzmitch kyzmitch merged commit c97ebea into develop Sep 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement iOS iOS client sources
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant