[Distutils] Common version-comparison semantics for peace love and harmony
ssteinerx at gmail.com
Sat Nov 28 14:57:10 CET 2009
On Nov 28, 2009, at 4:50 AM, Laura Creighton wrote:
>> At some point, we all agree that MAJOR.MINOR.MICRO is an accepted
>> standard and we are arguing about pre/post/dev releases.
> We have no way to enforce this on the world. The arguments here may
> have gone away, but out in the wild, I think we need to accept that
> people are going to name their packages whatever they like. We
> can suggest in the strongest possible terms that they use this
> numbering convention, but it will still just be a suggestion.
I think the PEP should lay out a standard scheme, the Python standard library (distutils) should have the tools to support it, and either conform to it or not at your product and your user's peril.
Other than providing tools to suggest a PEP compliant version for you that is as close to your current version as possible, I don't think we should support ANY other versioning scheme but the rational one laid out in the PEP, period. Once the bikeshed is built and painted, throw away all the other exotic materials and paint colors.
How about if we make it a suggestion like this:
If you want your tools to be installable in a reliable way, using standard Python installation tools, so that your users always know that they are getting the exact version that they want, and so they can install things from PyPi, the Python standard code repository, we suggest that you follow the PEP 386 versioning scheme.
The PEP 386 scheme will be supported by a broad range of tools including Python's distutils, the Distribute installation system, and any other tools using the Python standard library routines for versioning.
Otherwise, we suggest that you devote a large amount of time preparing an extremely detailed explanation about why you chose not to follow a community standard and also either provide your own comprehensive installation tools, or explain exactly how to use standard Python installation tools with your non-standard versioning scheme.
Also, please write a FAQ about exactly how to determine exactly which version of your product is installed and how to determine what the "next" and "previous" versions are since the users can't determine that using the standard Python tools or reading the Python documentation.
Ok? It's just a suggestion.
Feel free to make it as difficult for yourself and your users by inventing whatever scheme seems best to you and best of luck with that.
More information about the Distutils-SIG