<div dir="ltr">On Thu, Mar 9, 2017 at 12:34 AM, Ankit Aggarwal via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</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&#39;re supporting this:</div><div><pre style="box-sizing:border-box;font-family:sfmono-regular,consolas,&#39;liberation mono&#39;,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 ..&lt; 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">&quot;</span>/SwiftyJSON<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">&quot;</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">&quot;</span>1.5.8<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">&quot;</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,&#39;liberation mono&#39;,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 ..&lt; 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">&quot;</span>/SwiftyJSON<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">&quot;</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">&quot;</span>1.5.8<span class="gmail-m_-5407048787754644256m_3392127985484131722gmail-m_-6685159868071850230pl-pds" style="box-sizing:border-box">&quot;</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: &quot;/SwiftyJSON&quot;, branch: &quot;develop&quot;)</div><div class="gmail_extra">.package(url: &quot;/SwiftyJSON&quot;, .branch(&quot;develop&quot;))</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: &quot;/SwiftyJSON&quot;, revision: &quot;e74b07278b926c9ec6f9643455ea00d1ce04a021&quot;)</div><div class="gmail_extra"><div class="gmail_extra">.package(url: &quot;/SwiftyJSON&quot;, .revision(&quot;e74b07278b926c9ec6f9643455ea00d1ce04a021&quot;))</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&#39;s been approved. Where it gets more unsatisfactory, IMO, is that</div><div><br></div><div>```</div><div>.package(url: &quot;/SwiftyJSON&quot;, .only(&quot;1.5.8&quot;))<br></div><div>.package(url: &quot;/SwiftyJSON&quot;, .exact(&quot;1.5.8&quot;))<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&#39;s concern about</div><div><br></div><div><div>```</div><div>.package(url: &quot;/SwiftyJSON&quot;, from: &quot;1.5.8&quot;)</div><div>.package(url: &quot;/SwiftyJSON&quot;, .uptoNextMajor(&quot;1.5.8&quot;))</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 &quot;from&quot; its argument. I understand that the latter is wordier, but it is not such a grave burden that the argument label couldn&#39;t be rewritten also as `uptoNextMajor`.</div><div><br></div><div>While we&#39;re on the topic, the standard library spelling is `upTo` rather than `upto`, and while it&#39;s nitpicky I think it&#39;s important to go with the former given that &quot;upto&quot; is not a single word in standard English. If we wanted this to read more grammatically, consider also `.upToNextMajor(from: &quot;1.5.8&quot;)`.</div></div></div></div>