[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/04: doc: Add policy about version numbers for VCS snapshots.
From: |
Ludovic Courtès |
Subject: |
04/04: doc: Add policy about version numbers for VCS snapshots. |
Date: |
Sun, 24 Jan 2016 23:11:32 +0000 |
civodul pushed a commit to branch master
in repository guix.
commit 880d647d0f1a0ea0aea2af84fa2e99e3286b65a1
Author: Ludovic Courtès <address@hidden>
Date: Sun Jan 24 21:42:32 2016 +0100
doc: Add policy about version numbers for VCS snapshots.
* doc/guix.texi (Version Numbers): Add paragraphs about VCS snapshot
version numbers.
---
doc/guix.texi | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index f4ba2af..a650a55 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -10131,6 +10131,40 @@ If we also wanted GTK+ 3.8.2, this would be packaged as
...))
@end example
address@hidden See
<https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00425.html>,
address@hidden for a discussion of what follows.
address@hidden version number, for VCS snapshots
+Occasionally, we package snapshots of upstream's version control system
+(VCS) instead of formal releases. This should remain exceptional,
+because it is up to upstream developers to clarify what the stable
+release is. Yet, it is sometimes necessary. So, what should we put in
+the @code{version} field?
+
+Clearly, we need to make the commit identifier of the VCS snapshot
+visible in the version string, but we also need to make sure that the
+version string is monotonically increasing so that @command{guix package
+--upgrade} can determine which version is newer. Since commit
+identifiers, notably with Git, are not monotonically increasing, we add
+a revision number that we increase each time we upgrade to a newer
+snapshot. The resulting version string looks like this:
+
address@hidden
+2.0.11-3.cabba9e
+ ^ ^ ^
+ | | `-- upstream commit ID
+ | |
+ | `--- Guix package revision
+ |
+latest upstream version
address@hidden example
+
+It is a good idea to strip commit identifiers in the @code{version}
+field to, say, 7 digits. It avoids an aesthetic annoyance (assuming
+aesthetics have a role to play here) as well as problems related to OS
+limits such as the maximum shebang length (127 bytes for the Linux
+kernel.) It is best to use the full commit identifiers in
address@hidden, though, to avoid ambiguities.
+
@node Synopses and Descriptions
@subsection Synopses and Descriptions