<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=""><div class=""> Proposal link:<br class="">> <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0158-package-manager-manifest-api-redesign.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0158-package-manager-manifest-api-redesign.md</a></div><div class=""><br class=""></div><div class="">Hi Maxim,</div><div class=""><br class=""></div><div class="">Thanks for taking the time to read the proposal. My replies are inline:</div><div class=""><br class=""></div><div><blockquote type="cite" class=""><div class="">On Mar 13, 2017, at 3:41 PM, Maxim Veksler <<a href="mailto:maxim@vekslers.org" class="">maxim@vekslers.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi guys, <div class=""><br class=""></div><div class="">Sorry for the late repose, Hope I haven't missed the review window.</div><div class=""><br class=""></div><div class="">I've read through the proposal for the versioning, and I feel that there is an over complication there. I would suggest something like this for specifying the version:</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">If you want to have latest version of SwiftyJSON (you don't even care about when major version:</div><div class=""><pre style="box-sizing:border-box;font-family:sfmono-regular,consolas,'liberation mono',menlo,courier,monospace;font-size:13.600000381469727px;margin-top:0px;margin-bottom:0px;line-height:1.45;word-wrap:normal;padding:16px;overflow:auto;background-color:rgb(246,248,250);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;word-break:normal;color:rgb(36,41,46)" class="">.<span class="inbox-inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">package</span>(<span class="inbox-inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">url</span>: <span class="inbox-inbox-pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="inbox-inbox-pl-pds" style="box-sizing:border-box">"</span><a href="http://github.com/SwiftyJSON" style="color:rgb(126,87,194)" class="">http://github.com/SwiftyJSON</a><span class="inbox-inbox-pl-pds" style="box-sizing:border-box">"</span></span>)</pre></div></div></div></blockquote><div><br class=""></div><div>This is not a safe thing to do and we don't intend to support it at all. New major semantic versions of a package aren't necessarily compatible without requiring clients of that package to adapt to them. If you fail to specify the major version that you're compatible with, your package might work today but fail to build tomorrow (when a new major version of SwiftyJSON is released). And, if your package has clients, they're now broken too, etc.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">If you want to have latest of major 1</div><div class=""><pre style="box-sizing:border-box;font-family:sfmono-regular,consolas,'liberation mono',menlo,courier,monospace;font-size:13.600000381469727px;margin-top:0px;margin-bottom:0px;line-height:1.45;word-wrap:normal;padding:16px;overflow:auto;background-color:rgb(246,248,250);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;word-break:normal;color:rgb(36,41,46)" class="">.<span class="inbox-inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">package</span>(<span class="inbox-inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">url</span>: <span class="inbox-inbox-pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="inbox-inbox-pl-pds" style="box-sizing:border-box">"</span><a href="http://github.com/SwiftyJSON" style="color:rgb(126,87,194)" class="">http://github.com/SwiftyJSON</a><span class="inbox-inbox-pl-pds" style="box-sizing:border-box">"</span></span>, <span class="inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">from</span>: <span class="inbox-pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="inbox-pl-pds" style="box-sizing:border-box">"</span>1<span class="inbox-pl-pds" style="box-sizing:border-box">"</span></span>)</pre></div><div class=""><br class=""></div><div class="">if you want to have latest of minor 1.5</div><div class=""><pre style="box-sizing:border-box;font-family:sfmono-regular,consolas,'liberation mono',menlo,courier,monospace;font-size:13.600000381469727px;margin-top:0px;margin-bottom:0px;line-height:1.45;word-wrap:normal;padding:16px;overflow:auto;background-color:rgb(246,248,250);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;word-break:normal;color:rgb(36,41,46)" class="">.<span class="inbox-inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">package</span>(<span class="inbox-inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">url</span>: <span class="inbox-inbox-pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="inbox-inbox-pl-pds" style="box-sizing:border-box">"</span><a href="http://github.com/SwiftyJSON" style="color:rgb(126,87,194)" class="">http://github.com/SwiftyJSON</a><span class="inbox-inbox-pl-pds" style="box-sizing:border-box">"</span></span>, <span class="inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">from</span>: <span class="inbox-pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="inbox-pl-pds" style="box-sizing:border-box">"</span>1.5</span>)</pre></div><div class=""><br class=""></div><div class="">if you want to specify exact 1.5.2 (but the author might choose to be maintaining 1.5.2-patch1, 1.5.2-patch2 and co..)</div><div class=""><pre style="box-sizing:border-box;font-family:sfmono-regular,consolas,'liberation mono',menlo,courier,monospace;font-size:13.600000381469727px;margin-top:0px;margin-bottom:0px;line-height:1.45;word-wrap:normal;padding:16px;overflow:auto;background-color:rgb(246,248,250);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;word-break:normal;color:rgb(36,41,46)" class="">.<span class="inbox-inbox-inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">package</span>(<span class="inbox-inbox-inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">url</span>: <span class="inbox-inbox-inbox-pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="inbox-inbox-inbox-pl-pds" style="box-sizing:border-box">"</span><a href="http://github.com/SwiftyJSON" style="color:rgb(126,87,194)" class="">http://github.com/SwiftyJSON</a><span class="inbox-inbox-inbox-pl-pds" style="box-sizing:border-box">"</span></span>, <span class="inbox-inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">from</span>: <span class="inbox-inbox-pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="inbox-inbox-pl-pds" style="box-sizing:border-box">"</span>1.5.2<span class="inbox-inbox-pl-pds" style="box-sizing:border-box">"</span></span>)</pre></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Adopting this structure I think removes the need to have a uptoNextMajor & uptoNextMinor which behavior I find not intuitive.</div></div></div></blockquote><div><br class=""></div><div>What you're suggesting here is not equivalent to upToNextMajor and upToNextMinor, because it doesn't allow you to fully specify a minimum version (including the minimum patch version required) while still allowing a flexible upper bound for the major or minor version.</div><div><br class=""></div><div>Thanks,</div><div><br class=""></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>- Rick</div><div><br class=""></div></div></body></html>