[swift-build-dev] How to use the Package.pins file

Steven Clukey saclukey at live.com
Tue Dec 20 22:24:53 CST 2016

> The flexibility in the manifest specification *documents* the compatibility your app *should* have

So the only purpose is to turn the manifest into a documentation file? Lets say the manifest specifies something like "majorVersion:3, minor:4" and the pins file says "3.4.2". In this case are you saying that the only purpose the manifest serves is to indicate that the package uses a feature first introduced in version 3.4? Wouldn't a simple comment or even the git log serve that purpose equally well?

> so that the tools can provide you with workflows to, for example, update to a newer version of a dependency to try it out (maybe they made it faster, fixed  bugs, etc.).

If the dependencies use semver properly then it should be obvious to the tools what newer versions *should* be compatible: any greater version with the same major number. What lower versions should be compatible is less clear, but why would any tools want to suggest a downgrade? Creating this easy version understanding is a major part of semver. OTOH people often do not follow semver exactly, so it's probably just a crapshoot no matter what the manifest says.

Anyway, I suppose I now see the intended point. I thank you. That said I disagree with its value and usefulness. I'm sure that doesn't matter so I'll not take any more of your time, and I do appreciate what you've all spared already.


More information about the swift-build-dev mailing list