-
-
Notifications
You must be signed in to change notification settings - Fork 341
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
change(profiling): deprecate old trace-and continuous profiling API #4854
base: armcknight/profiling/new-continuous-apis/0-topic-branch
Are you sure you want to change the base?
Conversation
Because there is no way to ignore deprecation warnings in Swift, and we have this Swift implementation that references one of the things I need to deprecate here, I am now faced with a decision to make on what kind of hack to implement to work around this limitation to resolve it, because it's breaking basically every single CI job we run: ETA: i'm temporarily disabling warnings as errors until i can get a workaround in place, so it doesn't slow down further work on the rest of the tasks. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## armcknight/profiling/new-continuous-apis/0-topic-branch #4854 +/- ##
=============================================================================================
+ Coverage 92.165% 92.250% +0.084%
=============================================================================================
Files 658 658
Lines 77223 77229 +6
Branches 27169 27951 +782
=============================================================================================
+ Hits 71173 71244 +71
+ Misses 5955 5886 -69
- Partials 95 99 +4 see 23 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
Performance metrics 🚀
|
Yeah, that sucks pretty much. You can mark the whole method as deprecated like this: sentry-cocoa/Sources/Swift/Protocol/Codable/SentryUserCodable.swift Lines 17 to 25 in a286774
I'm starting to believe that we should disable deprecation warnings or disable change warnings as errors and set every warning to an error level that should be an error. |
…w to deal with the deprecated usage in SentryEnabledFeaturesBuilder
2888371
to
3b04d2d
Compare
GCC_TREAT_WARNINGS_AS_ERRORS = NO | ||
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO |
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.
h
: Ah 😡 , this is again a point where Swift sucks pretty much compared to ObjC. I didn't find a way to only treat deprecations as warnings or properly ignore deprecation warnings. I thought it's possible but I think it's not. The problem is that we open the door to ignore new compiler warnings, which could cause bugs. I enabled treat warnings as errors some time ago because a warning led to a severe bug, but I can't recall which one.
If we disable warnings as errors, we need to ensure we're not introducing new warnings by accident. We could have an allowed warning list in a file and then compare it with the Xcode output or something. This should run in CI and fail if there's a new warning that's not on that list, in my opinion. We shouldn't do this in this PR thought. Maybe using the weird deprecated workaround for once more is acdeptable.
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.
yes, i'll try the deprecation workaround you showed me. this change turning off warnings as errors isn't meant to be merged.
For #4852. Deprecate all old API. We'll be adding new API that improve the way continuous profiling works in future PRs (see the epic issue #4851).
#skip-changelog