Skip to content

[tool] Add --xcode-warnings-exceptions flag #8524

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

Merged
merged 2 commits into from
Jan 31, 2025

Conversation

loic-sharma
Copy link
Member

@loic-sharma loic-sharma commented Jan 28, 2025

Today, we treat Xcode warnings as errors on all iOS and macOS plugins.

However, the google_sign_in_ios plugin has dependencies with warnings. We're unable to suppress these warnings when using Swift Package Manager. As a workaround, we'll need to disable Xcode warnings for the google_sign_in_ios plugin. This will be done in a subsequent pull request (see #7356).

This change introduces --xcode-warnings-exceptions to the native-test command. When running Xcode test, GCC_TREAT_WARNINGS_AS_ERRORS will be provided only if the plugin isn't on the exception list.

Additionally, plugins that are the exception list are excluded from the xcode-analyze command.

Part of flutter/flutter#146904

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@loic-sharma loic-sharma marked this pull request as ready for review January 29, 2025 00:51
Copy link
Contributor

@vashworth vashworth left a comment

Choose a reason for hiding this comment

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

LGTM

@stuartmorgan-g
Copy link
Contributor

Do we get any meaningful benefit from running analysis without GCC_TREAT_WARNINGS_AS_ERRORS vs just not running analysis on excluded packages (using the existing --exclude flag)?

@vashworth
Copy link
Contributor

Do we get any meaningful benefit from running analysis without GCC_TREAT_WARNINGS_AS_ERRORS vs just not running analysis on excluded packages (using the existing --exclude flag)?

That's a good point. It's doubtful that anyone will actually go read the warnings if they're not escalated as an error.

@stuartmorgan-g
Copy link
Contributor

stuartmorgan-g commented Jan 29, 2025

I can pretty much guarantee that nobody will go look at passing output (except maybe retroactively if we later find that something has gone wrong, but that could also be checked locally pretty easily), what I was wondering was whether there's any scenario where analysis without -werror would fail but building wouldn't; i.e., some situation where this could still fail and alert us to a problem.

I don't know if there's such a thing as an analysis error that's not also a build error. My assumption is probably not, but I wasn't sure.

@loic-sharma
Copy link
Member Author

I spot-checked xcode-analyze, it looks like just using --exclude would be equivalent. I'll switch to that approach, thanks for the suggestion!

@loic-sharma loic-sharma requested a review from vashworth January 30, 2025 22:25
@loic-sharma
Copy link
Member Author

This is ready for another review! I removed the --xcode-warnings-exceptions flag from the xcode-analyze and switched the CI configs to use the --exclude flag instead.

Copy link
Contributor

@stuartmorgan-g stuartmorgan-g left a comment

Choose a reason for hiding this comment

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

LGTM

@loic-sharma loic-sharma added the autosubmit Merge PR when tree becomes green via auto submit App label Jan 31, 2025
@auto-submit auto-submit bot merged commit 45c1997 into flutter:main Jan 31, 2025
77 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 5, 2025
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request Feb 5, 2025
flutter/packages@02c6fef...e6ce02c

2025-02-05 [email protected] [vector_graphics]
Allow transition between placeholder and loaded image to have an
animation (flutter/packages#8195)
2025-02-04 [email protected] [flutter_markdown] Make custom table
column alignments work when text wraps (flutter/packages#8340)
2025-02-04 [email protected]
[interactive_media_ads] Adds internal wrapper for iOS native
`IMAAdPodInfo` (flutter/packages#8429)
2025-02-03 [email protected] [pigeon] reorg generator files
(flutter/packages#8532)
2025-02-03 [email protected] [pigeon] [swift] Fix `PigeonError`
sendability conformance in Swift 6 (flutter/packages#8302)
2025-02-03 [email protected] Roll Flutter from
b007899 to 8e2a6fc (61 revisions) (flutter/packages#8556)
2025-02-03 [email protected]
[google_maps_flutter] Support for Ground Overlay - platform interface
(flutter/packages#8518)
2025-01-31 [email protected] [tool] Add
--xcode-warnings-exceptions flag (flutter/packages#8524)
2025-01-31 [email protected] [tool] Ensure that injected
dependency overrides are sorted (flutter/packages#8542)
2025-01-31 [email protected] [vector_graphics] Revert leak
tracker change (flutter/packages#8544)
2025-01-31 [email protected] [shared_preferences_tool] Loosen
vm_service constraint to allow for 15 (flutter/packages#8539)
2025-01-31 [email protected]
[in_app_purchase] Activate leak testing for android
(flutter/packages#8369)
2025-01-31 [email protected] [flutter_markdown] Allow tables to be
scrollable with IntrinsicColumnWidth (flutter/packages#8526)
2025-01-30 [email protected] Update CODEOWNERS for pkg:animations
(flutter/packages#8534)
2025-01-30 [email protected] Roll Flutter from
c1ffaa9 to b007899 (43 revisions) (flutter/packages#8527)
2025-01-30 [email protected] [video_player_web] Adjust Web
implementation to the new platform interface (flutter/packages#8528)
2025-01-30 [email protected] [shared_preferences] Exposed
SharedPreferencesOptions. (flutter/packages#8530)
2025-01-29 [email protected] Re-land [shared_preferences] Add
shared preferences devtool (flutter/packages#8531)
2025-01-29 [email protected]
[in_app_purchase_storekit] Add Swift Package Manager compatibility
(flutter/packages#8469)
2025-01-29 [email protected] Revert "Re-land [shared_preferences]
Add shared preferences devtool" (flutter/packages#8529)
2025-01-29 [email protected]
[go_router_builder] Fixes trailing `?` by comparing iterables
(flutter/packages#8521)
2025-01-29 [email protected] [tool] Refactor
args of strings or YAML file lists (flutter/packages#8513)
2025-01-28 [email protected] [go_router]
Add missing await keyword to onTap callback in the code example in
`navigation.md` (flutter/packages#8343)
2025-01-28 [email protected] Re-land [shared_preferences] Add
shared preferences devtool (flutter/packages#8519)
2025-01-28 [email protected]
[vector_graphics] Fix memory leaks and activate leak testing
[prod-leak-fix] (flutter/packages#8373)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants