[Python-checkins] peps: Describe two more alternate numbering schemes

nick.coghlan python-checkins at python.org
Sun Feb 26 06:34:36 CET 2012


http://hg.python.org/peps/rev/a2ad0f016166
changeset:   4086:a2ad0f016166
user:        Nick Coghlan <ncoghlan at gmail.com>
date:        Sun Feb 26 15:33:31 2012 +1000
summary:
  Describe two more alternate numbering schemes

files:
  pep-0413.txt |  68 +++++++++++++++++++++++++++++++++++++++-
  1 files changed, 67 insertions(+), 1 deletions(-)


diff --git a/pep-0413.txt b/pep-0413.txt
--- a/pep-0413.txt
+++ b/pep-0413.txt
@@ -710,9 +710,75 @@
 Other Questions
 ===============
 
-Why not a date-based versioning scheme?
+Why not use the major version number?
+-------------------------------------
+
+The simplest and most logical solution would actually be to map the
+major.minor.micro version numbers to the language version, stdlib version
+and maintenance release version respectively.
+
+Instead of releasing Python 3.3.0, we would instead release Python 4.0.0
+and the release cycle would look like::
+
+    4.0.0  # Language release
+
+    4.0.1  # Maintenance release
+    4.1.0  # Standard library release
+
+    4.0.2  # Maintenance release
+    4.2.0  # Standard library release
+
+    4.0.3  # Maintenance release
+    4.3.0  # Standard library release
+    5.0.0  # Language release
+
+However, the ongoing pain of the Python 2 -> Python 3 transition (and
+associated workarounds like the ``python3`` and ``python2`` symlinks to
+refer directly to the desired release series) means that this simple option
+isn't viable for historical reasons.
+
+One way that this simple approach *could* be made to work is to merge the
+current major and minor version numbers directly into a 2-digit major
+version number::
+
+    33.0.0  # Language release
+
+    33.0.1  # Maintenance release
+    33.1.0  # Standard library release
+
+    33.0.2  # Maintenance release
+    33.2.0  # Standard library release
+
+    33.0.3  # Maintenance release
+    33.3.0  # Standard library release
+    34.0.0  # Language release
+
+
+Why not use a four part version number?
 ---------------------------------------
 
+Another simple versioning scheme would just add a "standard library" version
+into the existing versioning scheme::
+
+    3.3.0.0  # Language release
+
+    3.3.0.1  # Maintenance release
+    3.3.1.0  # Standard library release
+
+    3.3.0.2  # Maintenance release
+    3.3.2.0  # Standard library release
+
+    3.3.0.3  # Maintenance release
+    3.3.3.0  # Standard library release
+    3.4.0.0  # Language release
+
+However, this scheme isn't viable due to backwards compatibility constraints
+on the ``sys.version_info`` structure.
+
+
+Why not use a date-based versioning scheme?
+-------------------------------------------
+
 Earlier versions of this PEP proposed a date-based versioning scheme for
 the standard library. However, such a scheme made it very difficult to
 handle out-of-cycle releases to fix security issues and other critical

-- 
Repository URL: http://hg.python.org/peps


More information about the Python-checkins mailing list