[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#186102: version numbering for date-releases is flawed



Russ Allbery <rra@debian.org> writes:

> However, I think this whole bit really doesn't belong in Policy.  For
> packages that are snapshot-based with no regular version number but one
> that might show up later, I'd use 0~YYYYMMDD.  For ones that are
> pre-releases, I'd use <new-version>~YYYYMMDD.  For ones that postdate an
> existing version, I'd use <old-version>+YYYYMMDD.  But all of that feels
> like best practices stuff.

> Similarly, I'm not seeing why we should say YYYYMMDD should be used for
> Debian native packages, as opposed to YYYY.MM.DD or some other format that
> sorts properly.

> I therefore think we should rewrite this whole section to remove most of
> the details and instead just say not to ever use date-based formats like
> 96May01 and instead use something based off of YYYYMMDD, possibly with
> punctuation (but not -).

> If that sounds good, I can work on new language.

Here's a proposal that tries to implement that.  Objections or seconds?

Someone may want to follow up with a patch to the devref to provide more
details about when to choose what form of a version number and how to use
~ appropriately.

diff --git a/policy.sgml b/policy.sgml
index ec1acee..acef23b 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -849,36 +849,30 @@
 
 	  <p>
 	    In general, Debian packages should use the same version
-	    numbers as the upstream sources.
-	  </p>
-
-	  <p>
-	    However, in some cases where the upstream version number is
-	    based on a date (e.g., a development "snapshot" release) the
-	    package management system cannot handle these version
-	    numbers without epochs. For example, dpkg will consider
-	    "96May01" to be greater than "96Dec24".
+	    numbers as the upstream sources.  However, upstream version
+	    numbers based on some date formats (sometimes used for
+	    development or "snapshot" releases) will not be ordered
+	    correctly by the package management software.  For
+	    example, <prng>dpkg</prng> will consider "96May01" to be
+	    greater than "96Dec24".
 	  </p>
 
 	  <p>
 	    To prevent having to use epochs for every new upstream
-	    version, the date based portion of the version number
-	    should be changed to the following format in such cases:
-	    "19960501", "19961224". It is up to the maintainer whether
-	    they want to bother the upstream maintainer to change
-	    the version numbers upstream, too.
-	  </p>
-
-	  <p>
-	    Note that other version formats based on dates which are
-	    parsed correctly by the package management system should
-	    <em>not</em> be changed.
+	    version, the date-based portion of any upstream version number
+	    should be given in a way that sorts correctly: four-digit year
+	    first, followed by a two-digit numeric month, followed by a
+	    two-digit numeric date, possibly with punctuation between the
+	    components.
 	  </p>
 
 	  <p>
-	    Native Debian packages (i.e., packages which have been
-	    written especially for Debian) whose version numbers include
-	    dates should always use the "YYYYMMDD" format.
+	    Native Debian packages (i.e., packages which have been written
+	    especially for Debian) whose version numbers include dates
+	    should also follow these rules.  If punctuation is desired
+	    between the date components, remember that hyphen (<tt>-</tt>)
+	    cannot be used in native package versions.  Period
+	    (<tt>.</tt>) is normally a good choice.
 	  </p>
 	</sect1>

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>



Reply to: