<div dir="ltr">I'm not sure that is an issue: if the version is bumped, this won't happen overnight.<br>Why would projects/tools not have the time to update and support semantic-version 1 and 2 ?<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 12, 2016 at 11:07 AM, Nathaniel Smith <span dir="ltr"><<a href="mailto:njs@pobox.com" target="_blank">njs@pobox.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Thu, May 12, 2016 at 12:01 AM, Nick Coghlan <<a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a>> wrote:<br>
> On 12 May 2016 at 11:33, Donald Stufft <<a href="mailto:donald@stufft.io">donald@stufft.io</a>> wrote:<br>
>> I don't really think of it as package vs tool, I think of it as an implicit<br>
>> <standard stuff> vs an explicit <third party stuff>. I think it makes the<br>
>> file<br>
>> uglier to have the <standard stuff> explicit, particularly since I think the<br>
>> example should really be something like:<br>
>><br>
>> [standard.package.build-system]<br>
>> requires = ["setuptools", "wheel"]<br>
>><br>
>> [tool.flake8]<br>
>> ...<br>
>><br>
>> Because the value of the [package] namespace isn't that it separates us from<br>
>> the [tool] namespace (we could get that easily without it), but that it<br>
>> separates us from *other*, non packaging related but "standard" stuff that<br>
>> might be added in the future.<br>
><br>
> In that case though:<br>
><br>
> 1. semantics-version isn't about the package, it's about the<br>
> pyproject.toml file itself.<br>
> 2. build-system feels like it could readily be top level as well,<br>
> regardless of what other sections we added later<br>
><br>
> That would make the example in the PEP<br>
> ===============<br>
> semantics-version = 1 # Optional; defaults to 1.<br>
><br>
> [build-system]<br>
> requires = ["setuptools", "wheel"] # PEP 508 specifications.<br>
> ===============<br>
><br>
> So I'm not clear on what the [package] namespace is buying us over<br>
> just having [build-system] as a top level namespace (it would be<br>
> different with a section name of "build" - for that, [package.build]<br>
> reads nicely, and you can mostly ignore that it creates a nested<br>
> namespace TOML. As noted elsewhere, I don't like "build" though -<br>
> we're not configuring the build, we're specifying what's needed to run<br>
> the build system in the first place).<br>
<br>
</div></div>When we were spitballing the draft, I think where [package] originally<br>
came from was the idea that having semantics-version at the top level<br>
is not actually useful -- most tools will only care about the<br>
semantics of the [tool.whatever] table and the only PEP change that<br>
would affect them is if we for some reason redefined the [tool] table<br>
itself. Which we aren't going to do. But if semantics-version is<br>
top-level, then presumably everyone has to check for it and error out<br>
if it changes. So bumping semantics-version would cause all these<br>
tools to error out, even though the part of the file that they<br>
actually care about didn't change, which would mean in practice we<br>
would just never actually bump the semantics-version because the flag<br>
day would be too painful. Introducing a [package] level and pushing<br>
semantics-version down inside [package] insulates from that.<br>
<br>
...Given how complicated this is ending up being, I'm sorta inclined<br>
to just drop semantics-version. It's only in there as a "hey why not<br>
it doesn't hurt" thing. I can't imagine any situation in which we'd<br>
actually bump the semantics version. If we need to make some<br>
incompatible change we'll actually do it by adding a [build-system-2]<br>
or something, and specify that [build-system] and [build-system-2] are<br>
both allowed in the same file, and if both are present then new tools<br>
should ignore [build-system] -- way smoother and backwards-compatible.<br>
<span class="im HOEnZb"><br>
-n<br>
<br>
--<br>
Nathaniel J. Smith -- <a href="https://vorpus.org" rel="noreferrer" target="_blank">https://vorpus.org</a><br>
</span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Distutils-SIG maillist - <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/distutils-sig" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/distutils-sig</a><br>
</div></div></blockquote></div><br></div>