![](https://secure.gravatar.com/avatar/a918f60348c19aa9bc79f005397551be.jpg?s=120&d=mm&r=g)
On Thursday, September 27, 2012 at 9:12 AM, Erik Bray wrote:
My guess--and this is pure speculation as I wasn't following the original discussions either--is that it fell out of the desire to require versions to be lexicographically ordered. So "dev" would *have* to come after "a", "b", and "c" whether we like it or not. But at some point the convention to use ".dev" was proposed, which solves this issue--this puts it before "a" lexicographically and thus makes more sense in general. Although ".dev" made it into PEP 386 it seems the rest of the PEP wasn't changed to reflect the fact that ".dev" now comes first.
Again--just speculation. But I don't see any way that the PEP as written makes sense without assuming some kind of editorial oversight.
If that's the reason (and I wasn't around during the original discussions) then that's already been broken by rc/final (final is given an internal representation of `z` to allow ordering to work. The way the PEP is written .devN is a pre-release of a specific version (a version being a numbered release of either alpha, beta, candidate, or final). While I think pre-releases of a specific version is likely useful in some context, I think that it should be using an identifier more like `pre`. Using the `dev` tag to me violates what a user expects from history. I'm not discounting that there is a reason that makes sense though, hopefully if there is one someone will be able to come forth with it. I personally feel though that the current behavior is unexpected, will cause confusion as long as releases are being ordered by both pkg_resources and PEP386, and goes against common usage of the release tags. My proposal would be to replace the .devN pre-release tag with .preN, and add a `devN` tag (perhaps optional N, with an omitted N being equal to `dev0`. I feel like this will fit into people's expectations better, and make migration easier.