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
Bump Tests project to Xcode 13.2. #1288
Conversation
Codecov Report
@@ Coverage Diff @@
## master #1288 +/- ##
==========================================
+ Coverage 48.26% 48.42% +0.15%
==========================================
Files 32 32
Lines 5200 5212 +12
Branches 488 489 +1
==========================================
+ Hits 2510 2524 +14
+ Misses 2501 2499 -2
Partials 189 189
Continue to review full report at Codecov.
|
}; | ||
name = Debug; | ||
}; | ||
432B532B1AAE40EB00843E69 /* Release */ = { | ||
isa = XCBuildConfiguration; | ||
baseConfigurationReference = 435F03B22174AB9600A86B2D /* Module-Release.xcconfig */; | ||
buildSettings = { | ||
IPHONEOS_DEPLOYMENT_TARGET = 12.0; |
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.
We shouldn't add build settings to the project file. They are all in xcconfig files.
Why do we care of Tests.xcodeproj and why it still exists? This PR shows that we have to keep xcconfigs, because, actually, Tests and Integration stuff are not connected ( but should ). We should also remove support of third-party dependencies managers ( because nobody doesn't care about them and keeping their support is not a as good as it seems ). Keeping support of these managers means blocking people from new technologies ( and a way that vendor sees dependencies problem solving ). |
Simple answer: because this is not a (pure) Swift project. |
@ffried But about this PR - it doesn't make sense to keep Tests.xcodeproj at all. It can be covered by SPM easily. Actually, we don't need CocoaLumberjack as framework. |
I never said SPM was Swift-only (although it is heavily Swift-focused). I just said CocoaLumberjack is not.
It also requires an "open" internet connection on your build servers and currently there is no easy way to mirror dependencies once there is an Xcode project with SPM dependencies. Again, similar to OSLog in #1289, SPM might be a fully featured replacement in the future, but it isn't yet. Not for all kinds of projects.
Like I said, SPM manages some build settings that we manage ourselves in xcconfigs. This is fine for SPM, but we still do (and need to) support other ways of distribution which I'd like to have tested. We run our tests with SPM and Xcode btw. So both ways are tested.
They do not: #1278
Have any proof of that? Our issues show, that people are still using CocoaLumberjack without SPM - and I doubt they do that without having a reason for it.
Like I said above, once SPM is a fully featured replacement, this is a viable change - because we and our users don't loose anything. By then, other dependency managers might even be able to integrate with SPM as well, thus allowing us to drop Xcode projects. Don't get me wrong, I'm a big fan of SPM. And I wouldn't dream of writing a new library using anything else but SPM - but I've written more scripts and code to work around the (current) limitations of SPM than I prefer. Especially when it comes to SPM in Xcode. |
If your internet is not open, actually, you have two possibilities:
Second approach is less preferable, because you should maintain it. "Have any proof of that? Our issues show, that people are still using CocoaLumberjack without SPM - and I doubt they do that without having a reason for it." It is a fault of marketing. Reorder/emphasize SPM as the most preferable solution - and that is it, people will stop complain about frameworks at all. In my organization we use OSes forks and also heavily remove all frameworks. So, nothing special, but we have nearly a decade of development with all legacy stuff and all outdated practices in ObjC/Swift. And yes, project is a mix of ObjC/ObjC++/C/C++/Swift. ( With python, perl, ruby, bash in build phases/build scripts ).
Hm, actually, I only observe misunderstanding of what SPM manifest file is and what products it delivers/distributes. My point is to not only rethink a current approach, but also force people not to use outdated stuff. ( Again, reorder sections/dependencies managers in Readme, emphasize that SPM is the best option ). |
Ok, my point is that all OSS projects are open and their codebases are open, so, it means that you can't hide any source from people. That means that these OSS projects are distributed as static libraries. ( Nothing to hide ). And all these "dynamic/static" stuff is not what I want to solve. It is, actually, a business problem ( xcframeworks vs SPM ). |
Or possibility number 3: Make it work.
That's something we can totally consider! But this is different from dropping support for everything else altogether!
Umbrella headers are still there. They're just generated... 😉
It depends on what exact layout you mean here. I'd call it an implementation detail - which is something you should never rely on. The new XCFrameworks still use it internally - you just don't get to see it usually.
They did. SPM is on its way to solve this problem. At least for open source frameworks.
OSS != static libraries. There is a valid case for OSS libs to be dynamically linked - especially widely used libs.
One big reason is that it can manage OSS and binary libs just the same - something SPM just recently learned and is still learning. Also (multi-platform) XCFrameworks are still quite buggy.
This is a problem that first needs solving from Apple's side. There is also no clever equivalent of XCFrameworks on Linux. Once we can write all kinds of libs (OSS / closed source, dynamic / static) for all kinds of platforms (Darwin, Linux, ...) using Swift, then we see what we need to support to make CocoaLumberjack work with this as well (as good as possible). Either way - let's draw the line here, we're far off the topic of this pull request. 🙂 |
@ffried So, let's consider Readme changes. |
New Pull Request Checklist
I have read and understood the CONTRIBUTING guide
I have read the Documentation
I have searched for a similar pull request in the project and found none
I have updated this branch with the latest master to avoid conflicts (via merge from master or rebase)
I have added the required tests to prove the fix/feature I am adding
I have updated the documentation (if necessary)
I have run the tests and they pass
I have run the lint and it passes (
pod lib lint
)Pull Request Description
This PR fixes warnings for Xcode 13.2.