kean / Future

Streamlined Future<Value, Error> implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

question/possible bug - platforms designation in package is latest on all fronts

heckj opened this issue · comments

I pulled 0.4.0 after you tagged it and included it into a project, noticing almost immediately after that you'd updated the platforms designator in Package.swift to be some of the more recent ones.

I'm not sure if that was explicitly intentional, and you didn't want to support older versions with this library and release version, which is the implication. You may already know this, but the platform segment of Package.swift provides the "minimum level" of API by platform that is to be supported by the code, roughly equivalent and related to the @available() macro that's used to indicate specific APIs aren't available before a given point.

In practice, this means that anyone relying on Future with this version (0.4.0) can't link to generate targets earlier than macOS 10.13, iOS & tvOS 11, etc. I didn't see any of those specific changes in the recent updates, so I think these could easily be older versions without any ill effect.

I understand this is your library and you want to be clear about expectations around "supported" versions, as such it's clearly your call - but I'd like to encourage you to consider being as conservative as possible with updating those values, as it promotes constraints external to this library on anyone using it that may not be needed.

I'm periodically updating all of my frameworks to support only the 2 or 3 most recent major OS versions for a couple of reasons, regardless of whether there are any code changes needed. Is there a problem you are experiencing because of this change?

The primary reason is to reduce the number of tests I need to run. There is also no point in supporting versions that nobody is using. Re: strain, yes adding strain is also a good reason to do that, as an app developer I want more reasons not to support older iOS versions.