Skip to content

Create buildable branch for Swift 6 and Xcode 16+ #14601

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

Open
wants to merge 35 commits into
base: swift-6
Choose a base branch
from

Conversation

morganchen12
Copy link
Contributor

@morganchen12 morganchen12 commented Mar 19, 2025

Disables a bunch of GHA tests and marks much of the existing code as @unchecked Sendable. These will eventually need to be fixed but for now we can kick them down the road and still have Swift 6 compliance. There's some improvements in this PR too: addition of a safer os_unfair_lock in FIRAllocatedUnfairLock, which we can drop once we get to iOS 16+, and some fixes to things that could not have possibly worked before but somehow did.

To find @unchecked Sendable types that need to be made checked Sendable or refactored, search for /* TODO: sendable */.
To find disabled tests that need to be re-enabled, search for # TODO(Swift 6):.

Copy link
Contributor

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

@morganchen12 morganchen12 changed the title Update Messaging interface for Swift 6 Create buildable branch for Swift 6 and Xcode 16+ Apr 4, 2025
@morganchen12 morganchen12 requested a review from ncooke3 April 11, 2025 00:14
Copy link
Member

@ncooke3 ncooke3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keeping track of which changes I've copied into main.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in main.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in main.

@@ -33,7 +33,7 @@ NS_SWIFT_NAME(Library)

/// Returns one or more Components that will be registered in
/// FirebaseApp and participate in dependency resolution and injection.
+ (NSArray<FIRComponent *> *)componentsToRegister;
+ (NSArray<FIRComponent *> *NS_SWIFT_SENDING)componentsToRegister NS_SWIFT_UI_ACTOR;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@morganchen12 , do you recall why this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made this because I wanted to make an entire top-level class (Installations?) @MainActor. I can't remember why this had to be made though. You can probably omit it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for context! I'll focus on copying FIS into main.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In main.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in main

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment