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

Enable Strict Concurrency Checking #104

Closed
wants to merge 4 commits into from

Conversation

pauljohanneskraft
Copy link

Enable Strict Concurrency Checking

♻️ Current situation & Problem

Fixes #103

⚙️ Release Notes

  • Enables Strict Concurrency Checking to prepare for the upcoming Swift 6 changes

📚 Documentation

No documentation changes needed, since strict concurrency checking does not emit any warnings and therefore does not require any changes to the actual implementation.

✅ Testing

No additional tests needed, since the changes should only trigger more warnings by the compiler and otherwise not change anything.

📝 Code of Conduct & Contributing Guidelines

By submitting creating this pull request, you agree to follow our Code of Conduct and Contributing Guidelines:

@pauljohanneskraft
Copy link
Author

I opened this PR first to confirm that these are the intended changes or get feedback on whether you would like to have this set up a different way. If this is the intended way, I can then open PRs to all the other Spezi components.

@PSchmiedmayer PSchmiedmayer added the enhancement New feature or request label May 3, 2024
Copy link
Member

@PSchmiedmayer PSchmiedmayer left a comment

Choose a reason for hiding this comment

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

@pauljohanneskraft Thank you for taking a look at this!!

Two things I am wondering and would love to get your and others input @StanfordSpezi/developers:

  1. It seems like the changes do create some warnings that we would address before a PR is merged, e.g.: https://github.com/StanfordSpezi/Spezi/actions/runs/8943078512/job/24570618361?pr=104. Is there a way that we can enforce warnings as errors to ensure that all warnings are addressed before PRs are merged?
  2. I think it would also make sense to enable strict concurrency checking in the Xcode project of the UI testing application to validate that we don't run into any warnings when using the types (which sometimes seems to be the case when using the APIs, e.g., missing Sendable conformance).

Would be great to get your thoughts on both ideas and how we might be able to do this here and in other PRs.

@pauljohanneskraft
Copy link
Author

pauljohanneskraft commented May 6, 2024

I totally agree with 2, I set the SWIFT_STRICT_CONCURRENCY setting in UITests.xcodeproj to complete for all targets in this commit.

Regarding 1, I have added an input parameter to the workflow here.

Copy link
Member

@PSchmiedmayer PSchmiedmayer left a comment

Choose a reason for hiding this comment

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

Thank you for the improvements @pauljohanneskraft! Thank you for resolving 2).

I would propose the merge strategy and testing detailed in StanfordSpezi/.github#50 to get this PR merged, address all the warnings to check that merge checks switch to green when they are resolved and then merge the PRs in the proposed order.

@PSchmiedmayer
Copy link
Member

Closed after we have updated the CI and setup in #108

@PSchmiedmayer PSchmiedmayer deleted the enable-strict-concurrency-checking branch July 12, 2024 00:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Complete Concurrency Checking
2 participants