[Distutils] "Specs" vs "Proposals"
Nick Coghlan
ncoghlan at gmail.com
Tue Sep 8 03:52:39 CEST 2015
On 8 September 2015 at 04:13, Marcus Smith <qwcode at gmail.com> wrote:
> and assuming that approach, I raised a few "publishing" questions:
> 1) do we publish/render all supported versions of a certain spec, or just
> the latest
> 2) if we publish them all, then how? do we maintain separate documents for
> distinct versions? if not, how do we do it?
Ah, I missed you'd broken this out to a new thread before replying to
the old one. My concrete proposal would be to use a structure like the
following:
https://packaging.python.org/specifications/versioning-1.x.html
https://packaging.python.org/specifications/compatibility-tags-1.x.html
https://packaging.python.org/specifications/wheel-format-1.x.html
The underlying principle behind that naming scheme is that I *want* to
support revising lower level specifications (like compatibility tags),
without also revising higher level specifications to refer to the new
version. If that's *not* appropriate for a particular change, then it
suggests we may actually need a major version bump in the lower level
spec (even if it can be accounted for through a backwards compatible
change in the higher level specs).
My rationale from that comes from the proposed approach to metadata
versioning in PEP 426:
===============
Automated tools consuming metadata SHOULD warn if metadata_version is
greater than the highest version they support, and MUST fail if
metadata_version has a greater major version than the highest version
they support (as described in PEP 440 , the major version is the value
before the first dot).
===============
>From a tooling perspective, this "file per major version" approach
also creates a substantially different review workflow for minor and
major revisions. For minor revisions, the review would be of a PR
against the existing specification. For major revisions, it would be a
review of a completely new file.
My rationale behind having the "1.x" in the URL rather than just "1"
is that I see it as a subtle reminder that the specs may be updated
in-place for backwards compatible changes, and that this is by design
- we're applying iterative design principles to software distribution
interoperability specifications, so this isn't a "set it and forget it
forever" kind of exercise on the part of tooling developers.
Regards,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
More information about the Distutils-SIG
mailing list