Quoth Konrad Hinsen, on 14 December 1998:
The criterion is that it must be clear both for human users and for installation programs 1) which of two versions is newer 2) if two versions are compatible, i.e. use the same APIs
OK, just to keep everyone on their toes, I'm going to take the anarchists' side here. I have said several times that I am against *imposing* semantics of version numbering, and if I read Konrad right here that's what he's suggesting: a certain part of the version number implies "API version". I don't think this'll work, and not just because Greg and Mark and Marc-Andre (and probably lots of other people) don't like it. I do kind of like it, being a control-freak myself, but I don't think it'll work! Most developers just don't think *that* carefully about what their version number means. Or they might think carefully about it, but come to different conclusions: if you completely rewrite your software, you might feel that justifies bumping from 1.x to 2.0 -- even with full API compatability. We simply cannot mandate these sorts of details on something like the world of all Python modules. Perhaps an "API version number" belongs in the package meta-data, along with the multitude of variables that John Skaller considers part of the "version" (again, I think John is talking about something much bigger than "version numbers", and I think what he's talking about can be considered package meta-data). While I think it's a worthy goal to try to automatically handle all forms of module inter-dependency, I also think it's a vast swamp with no discernible exit. The goals for the distutils should be modest: be able to compare version numbers and express module dependencies in terms of version numbers. Expressing compatability on the many axes John proposes, plus the "API version", would be very difficult. Greg -- Greg Ward - software developer gward@cnri.reston.va.us Corporation for National Research Initiatives 1895 Preston White Drive voice: +1-703-620-8990 x287 Reston, Virginia, USA 20191-5434 fax: +1-703-620-0913