<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Nov 4, 2016, at 5:28 AM, Max Desiatov via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi all,<div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On 31 Oct 2016, at 21:23, Anders Bertelrud via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br style="font-family: SFUIText-Regular;" class=""><span class="Apple-tab-span" style="font-family: SFUIText-Regular; white-space: pre;">        </span><span style="font-family: SFUIText-Regular;" class="">* What is your evaluation of the proposal?</span><br style="font-family: SFUIText-Regular;" class=""></div></div></blockquote><div class=""><br class=""></div><div class="">-1</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span class="Apple-tab-span" style="font-family: SFUIText-Regular; white-space: pre;">        </span><span style="font-family: SFUIText-Regular;" class="">* Is the problem being addressed significant enough to warrant a change to Swift?</span><br style="font-family: SFUIText-Regular;" class=""></div></div></blockquote><div class=""><br class=""></div><div class="">Yes, this is significant problem that basically prevents SwiftPM from being used in production environment due to making builds not consistently reproducible without committing source code of the compiled dependencies.</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span class="Apple-tab-span" style="font-family: SFUIText-Regular; white-space: pre;">        </span><span style="font-family: SFUIText-Regular;" class="">* Does this proposal fit well with the feel and direction of Swift?</span><br style="font-family: SFUIText-Regular;" class=""></div></div></blockquote><div class=""><br class=""></div><div class="">No, it doesn't feel right, as it breaks existing conventions and disregards the experience with other package managers that provide .lock files by default and those that don't (npm) now have replacements that do lock by default (yarn, <a href="https://code.facebook.com/posts/1840075619545360" class="">https://code.facebook.com/posts/1840075619545360</a>).</div></div></div></div></div></blockquote><div><br class=""></div><div>Yarn, however, can include multiple versions of a package. We cannot, and your response doesn't acknowledge the impact of that.</div></div><div><br class=""></div><div>Note I'm not saying I disagree with you, but this argument isn't compelling unless you acknowledge the problems particular to Swift.</div><div><br class=""></div><div> - Daniel</div><div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class=""><div class=""><br class=""></div><div class="">I also disagree with the naming of the feature (pinning) as it breaks existing conventions and makes it confusing to people coming from other environments and ecosystems. I use lockfiles (as also most of the developers I know) much more frequently (almost every day) than POSIX locks (almost never, many thanks to GCD and other high-level concurrency features in other languages for that). I'm afraid the argument about overloading doesn't convince me at all, as many terms are overloaded, but that never was a problem as an established context and conventions matter more.</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span class="Apple-tab-span" style="font-family: SFUIText-Regular; white-space: pre;">        </span><span style="font-family: SFUIText-Regular;" class="">* If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?</span><br style="font-family: SFUIText-Regular;" class=""></div></div></blockquote><div class=""><br class=""></div><div class="">Yes, I use yarn, CocoaPods and Carthage on daily basis, and locking dependencies by default was never a problem with those. On the contrary, I had a lot of bad experience with npm, which doesn't lock by default.</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span class="Apple-tab-span" style="font-family: SFUIText-Regular; white-space: pre;">        </span><span style="font-family: SFUIText-Regular;" class="">* How much effort did you put into your review? A glance, a quick reading, or an in-depth study?</span><br style="font-family: SFUIText-Regular;" class=""></div></div></blockquote><div class=""><br class=""></div><div class="">I tracked this proposal from the draft version and did and studied how package managers for other ecosystems has evolved. </div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span style="font-family: SFUIText-Regular;" class="">More information about the Swift evolution process is available at</span><br style="font-family: SFUIText-Regular;" class=""><br style="font-family: SFUIText-Regular;" class=""><span class="Apple-tab-span" style="font-family: SFUIText-Regular; white-space: pre;">        </span><a href="https://github.com/apple/swift-evolution/blob/master/process.md" style="font-family: SFUIText-Regular;" class="">https://github.com/apple/swift-evolution/blob/master/process.md</a><br style="font-family: SFUIText-Regular;" class=""><br style="font-family: SFUIText-Regular;" class=""><span style="font-family: SFUIText-Regular;" class="">Thank you,</span><br style="font-family: SFUIText-Regular;" class=""><br style="font-family: SFUIText-Regular;" class=""><span style="font-family: SFUIText-Regular;" class="">Anders Bertelrud</span><div class=""><span style="font-family: SFUIText-Regular;" class="">Review Manager</span><br style="font-family: SFUIText-Regular;" class=""></div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>