Closed tbechtum closed 3 years ago
Thanks for a reply
I pushed rev 4.0.3 to change it with SPM, and during the Cocoapods trunk push I realized it would happen there too.
On the one hand, iOS 8 is super old at this point and I’m not really interested in supporting it. On the other hand, raising the min version would technically require a major rev bump per traditional SemVer rules because it would break it for anyone still needing it on iOS 8 (where it still works fine, with older Xcodes). It seems silly to bump a major rev, given it’s really just a problem on the tool side.
I’ll explore if dropping the minimum version from the podspec is an option instead, just to clear the warnings. Or the manual option to silence it via your podfile can silence it for now.
It seems silly to bump a major rev, given it’s really just a problem on the tool side.
This is causing a problem for any project targeting less than iOS 12 after the changes in 4.0.3 due to not being a major revision. MarqueeLabel is a dependency for NotificationBanner and now any project that relies on it is breaking. The rules around SemVer are there for a reason; they aren't "silly" because they prevent exactly the problem you have created.
Whoa @chickdan coming in spicy there. I wasn't saying SemVer was silly, only that it seemed silly to bump a major rev because the tool changed. I was trying to be considerate of people who've specified version <= 4.x.x under the typical assumption that a 5.x revision would be for major functional changes, rather what would be essentially the continuation of 4.x.x bug fixes.
So instead of a major rev, I was trying to find an option that I hoped would work for mostly everybody. Can you describe the problem it's causing with targeting less than iOS 12?
I was thinking removing the default deployment target would generally increase compatibility between Xcode 12 and prior versions, as I didn't think it was strictly necessary for SPM or Cocoapods spec definition. If I got that wrong, I can definitely work to fix it.
Well removing the deployment target from Cocoapods definitely doesn't work. My tests with SPM seemed fine, but I'm sure something similar could happen.
After a bunch of reading of SemVer issues on this topic, it's not really cut and try on what to do. The MarqueeLabel API hasn't changed, and 4.x.x would continue to work on iOS 8 through iOS 14 just like a theoretical 5.0.0 would, even if 5.0.0 claimed iOS 8 wasn't supported.
I'm inclined to just state iOS 8 is NOT supported through package managers, and rev to 4.0.4 with minimum deployment targets set to iOS 9 to make the package management systems happy. Someone targeting iOS 8 might run into SPM or Cocoapodsissues, but that can be easily worked around by manually importing the source files. Thoughts?
Bumped the deployment target to iOS 9, and will note it might make targeting iOS 8 with SPM/Cocoapods/whatever an issue on the README.
My apologies, that did come across more harsh than I had intended.
Can you describe the problem it's causing with targeting less than iOS 12?
Any project targeting lower than iOS 12 produces this error when trying to compile after adding MarqueeLabel:
Compiling for iOS 10.0, but module 'MarqueeLabel' has a minimum deployment target of iOS 12.0
and 4.x.x would continue to work on iOS 8 through iOS 14 just like a theoretical 5.0.0 would
The problem isn't with the PodSpec or SPM, it's that the project's requirements changed here where the deployment target was increased from iOS 8 to iOS 12. So this issue is still present in 4.0.4 because it's not a toolchain issue but a project issue. If this change was intended then it does need a major revision in order to keep builds from breaking.
No worries - thanks for explaining the issue. That change was essentially accidental on my part! I'm reverting them back in 4.0.5 now.
Usage Details
Expected Behavior
Xcode 12 build without warnings, proposal to move target to iOS 9
Actual Behavior
Xcode 12.x warning The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99.
Steps to Reproduce the Problem