> On Nov 4, 2016, at 11:20 AM, Boris Buegling <[email protected]> wrote: > >> On 4 Nov 2016, at 17:06, Paul Cantrell via swift-evolution >> <[email protected]> wrote: >> >>> Overconstraint is much more of a risk in Swift than in other languages >>> using this style of package management. >> >> …is incorrect. >> >> In particular, note that Ruby does not support using multiple versions of a >> lib simultaneously, and that fact alone — even in the presence of >> _ubiquitous_ version pinning — has been sufficient to encourage widespread >> mindfulness about semver compliance. All of the concerns expressed in the >> “Pin by default” section of the proposal also apply to Ruby, and have failed >> to materialize there. > > Note that this only partially true. It is strongly recommended to not check > in your Gemfile.lock when developing a gem (see > http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/), > but only when you’re developing an app. This means that pinning by default > is effectively not performed when doing library development in the Ruby > ecosystem.
If SwiftPM used that bundler-like behavior, then presumably the same recommendations about what to check in would apply. By “ubiquitous version pinning,” I mean that the package management tool _always_ generates a lock file, and developers decide for themselves how to manage it. That section in the proposal made the argument that Swift is fundamentally different from other languages in ways that make always generating a pins file uniquely dangerous. That is false. Cheers, P _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
