Yes, I like this middle ground approach where excluding a platform requires explicitly specifying it.
It encourages packages were all platforms are supported while allowing restricting the supported OSs.
Yes, I like this middle ground approach where excluding a platform requires explicitly specifying it.
It encourages packages were all platforms are supported while allowing restricting the supported OSs.
I think this nicely summarizes the high level goals of this feature!
Agreed. This seems like the most sensible default to me.
I also want to separate out that part into a different proposal but I don't agree that it should be a different option. I feel like it should be part of the main platforms API.
Maybe something like:
platforms: .platforms([.macOS(.v10_13), .iOS(.v12)], restricted: true)
restricted=true
would mean: allow all listed platforms + any platform not known to the current tools version. This will solve #1, #3, #4 and enable restricting to a particular set of platforms while allowing bringing up new platforms.
With this approach, we don't require .unsupported
and it will lead to a much cleaner API. Having to explicitly mark platforms as unsupported seems counter-intuitive and can lead to a massive list of platforms as support for Swift grows over time.
I think this is a reasonable trade-off. I’d like to see platforms be more data-driven in the future, but I think this pattern still works fine there too.
What is your evaluation of the proposal?
+1
Is the problem being addressed significant enough to warrant a change to the Swift Package Manager?
Yes, right now swift-nio-transport-services is really annoying to compile (need to pass -X...
flags) and this proposal will resolve this, awesome!
Does this proposal fit well with the feel and direction of Swift?
Totally
How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
Read the proposal, most comments and chatted with Cory.
The review of SE-0236: Package Manager Platform Deployment Settings ran from November 14th through November 26th, 2018. There was a lot of feedback, and the proposal is accepted with modifications. Thanks to everyone who participated!
Boris Buegling
Review Manager