I'm not sure that is an issue: if the version is bumped, this won't happen
overnight.
Why would projects/tools not have the time to update and support
semantic-version 1 and 2 ?

On Thu, May 12, 2016 at 11:07 AM, Nathaniel Smith <n...@pobox.com> wrote:

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

Reply via email to