<div dir="ltr">On Thu, Mar 9, 2017 at 12:34 AM, Ankit Aggarwal via swift-evolution <span dir="ltr"><<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><span class="gmail-"><div class="gmail_quote"><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div><span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-"></span><div>+1, although I don’t know why we're supporting this:</div><div><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)"><span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c" style="box-sizing:border-box;color:rgb(150,152,150)"><span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c" style="box-sizing:border-box">//</span> 1.5.8 ..< 2.0.0</span>
<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c" style="box-sizing:border-box;color:rgb(150,152,150)"></span>.<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">package</span>(<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">url</span>: <span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">"</span>/SwiftyJSON<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">"</span></span>, <span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">from</span>: <span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">"</span>1.5.8<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">"</span></span>),</pre><div>when, at least as far as I can tell, this:</div><div><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)"><span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c" style="box-sizing:border-box;color:rgb(150,152,150)"><span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c" style="box-sizing:border-box">//</span> 1.5.8 ..< 2.0.0</span>
<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c" style="box-sizing:border-box;color:rgb(150,152,150)"></span>.<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">package</span>(<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">url</span>: <span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">"</span>/SwiftyJSON<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">"</span></span>, .<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-c1" style="box-sizing:border-box;color:rgb(0,134,179)">uptoNextMajor</span>(<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-s" style="box-sizing:border-box;color:rgb(24,54,145)"><span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">"</span>1.5.8<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">"</span></span>)),</pre><div>does the same thing, and the spelling is, at least to me, clearer as well. Dunno, maybe the “from” version is a term of art that I’m just not familiar with.</div></div></div><div><br></div></div></div></blockquote><div><br></div></div></span><div>Hi David,</div><div><br></div><div>Thank you for the review. </div><div><br></div><div>It is true that `from` and `.uptoNextMajor` are exactly same. We think that the most widely used requirement will be `.uptoNextMajor`, so we wanted to provide a shorthand for it.</div></div></div>
</blockquote></div><br></div><div class="gmail_extra">Kind of a late reply, but overall I think the proposal looks good with the exception of some of these `Requirement` vs. shorthand dichotomies. It looks like the following will be synonyms:</div><div class="gmail_extra"><br></div><div class="gmail_extra">```</div><div class="gmail_extra"><div class="gmail_extra">.package(url: "/SwiftyJSON", branch: "develop")</div><div class="gmail_extra">.package(url: "/SwiftyJSON", .branch("develop"))</div><div class="gmail_extra">```</div><div class="gmail_extra"><br></div><div class="gmail_extra">...as well as...</div><div class="gmail_extra"><br></div><div class="gmail_extra">```</div><div class="gmail_extra">.package(url: "/SwiftyJSON", revision: "e74b07278b926c9ec6f9643455ea00d1ce04a021")</div><div class="gmail_extra"><div class="gmail_extra">.package(url: "/SwiftyJSON", .revision("e74b07278b926c9ec6f9643455ea00d1ce04a021"))</div><div>```</div><div><br></div><div>It seems odd that there are two subtly different but equivalent ways to spell the same thing like that. But I get that there are possibilities for chaining made available with the latter notation and that the former was promised in a fairly new proposal that's been approved. Where it gets more unsatisfactory, IMO, is that</div><div><br></div><div>```</div><div>.package(url: "/SwiftyJSON", .only("1.5.8"))<br></div><div>.package(url: "/SwiftyJSON", .exact("1.5.8"))<br></div><div>```</div><div><br></div><div>also seem to mean the same thing. Here, this is actively confusing, because every user will inevitably scratch their head trying to parse out the difference. I also share Dave's concern about</div><div><br></div><div><div>```</div><div>.package(url: "/SwiftyJSON", from: "1.5.8")</div><div>.package(url: "/SwiftyJSON", .uptoNextMajor("1.5.8"))</div><div>```</div></div><div><br></div><div>There is no intuition that would tell a user that the two are the same; after all, `uptoNextMinor` also starts "from" its argument. I understand that the latter is wordier, but it is not such a grave burden that the argument label couldn't be rewritten also as `uptoNextMajor`.</div><div><br></div><div>While we're on the topic, the standard library spelling is `upTo` rather than `upto`, and while it's nitpicky I think it's important to go with the former given that "upto" is not a single word in standard English. If we wanted this to read more grammatically, consider also `.upToNextMajor(from: "1.5.8")`.</div></div></div></div>