]> git.eshelyaron.com Git - emacs.git/commitdiff
Remove the build number from emacs-version variable
authorGlenn Morris <rgm@gnu.org>
Sat, 18 Feb 2017 01:15:21 +0000 (20:15 -0500)
committerGlenn Morris <rgm@gnu.org>
Sat, 18 Feb 2017 01:15:21 +0000 (20:15 -0500)
It's a largely internal detail that can confuse users.  (Bug#25590)
* lisp/version.el (emacs-build-number): New constant.
(emacs-version): Use emacs-build-number.
* lisp/loadup.el (top-level): When dumping, increment
emacs-build-number rather than emacs-version.
* src/emacs.c (emacs-version): Doc fix.
* doc/lispref/intro.texi (Version Info): Update emacs-version details.
Mention emacs-build-number.
* lisp/gnus/gnus-util.el (gnus-emacs-version):
* lisp/mail/emacsbug.el (report-emacs-bug):
* admin/admin.el (set-version): Update for emacs-version change.
; * etc/NEWS: Mention this.

admin/admin.el
doc/lispref/intro.texi
etc/NEWS
lisp/gnus/gnus-util.el
lisp/loadup.el
lisp/mail/emacsbug.el
lisp/version.el
src/emacs.c

index 4892045a69010856b7bf4759101d4b51b89b693b..a6ef19c9aba5fab8bcf0e70ddd666629a04dbfb2 100644 (file)
@@ -93,9 +93,7 @@ Optional argument DATE is the release date, default today."
 Root must be the root of an Emacs source tree."
   (interactive (list
                (read-directory-name "Emacs root directory: " source-directory)
-               (read-string "Version number: "
-                            (replace-regexp-in-string "\\.[0-9]+\\'" ""
-                                                      emacs-version))))
+               (read-string "Version number: " emacs-version)))
   (unless (file-exists-p (expand-file-name "src/emacs.c" root))
     (user-error "%s doesn't seem to be the root of an Emacs source tree" root))
   (message "Setting version numbers...")
index d871d3a87b76e61d305eac88b2c35f7e81ee8916..61ef3082a0a102ff0f2611a9d7d95127fd05e77f 100644 (file)
@@ -480,8 +480,8 @@ running.  It is useful to include this string in bug reports.
 @smallexample
 @group
 (emacs-version)
-  @result{} "GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.16)
-             of 2015-06-01"
+  @result{} "GNU Emacs 26.1 (build 1, x86_64-unknown-linux-gnu,
+             GTK+ Version 3.16) of 2017-06-01"
 @end group
 @end smallexample
 
@@ -507,11 +507,11 @@ emacs-build-time
 
 @defvar emacs-version
 The value of this variable is the version of Emacs being run.  It is a
-string such as @code{"23.1.1"}.  The last number in this string is not
-really part of the Emacs release version number; it is incremented
-each time Emacs is built in any given directory.  A value with four
-numeric components, such as @code{"22.0.91.1"}, indicates an
-unreleased test version.
+string such as @code{"26.1"}.  A value with three numeric components,
+such as @code{"26.0.91"}, indicates an unreleased test version.
+(Prior to Emacs 26.1, the string includes an extra final component
+with the integer that is now stored in @code{emacs-build-number};
+e.g., @code{"25.1.1"}.)
 @end defvar
 
 @defvar emacs-major-version
@@ -524,6 +524,12 @@ The minor version number of Emacs, as an integer.  For Emacs version
 23.1, the value is 1.
 @end defvar
 
+@defvar emacs-build-number
+An integer that increments each time Emacs is built in the same
+directory (without cleaning).  This is only of relevance when
+developing Emacs.
+@end defvar
+
 @node Acknowledgments
 @section Acknowledgments
 
index 0ceb878a8e74c5a2569ce3af8fa9418eb558a0a1..73085f626b10684b73809d0b54bdc6424b4115d5 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -80,6 +80,9 @@ for '--daemon'.
 \f
 * Changes in Emacs 26.1
 
+** The variable 'emacs-version' no longer includes the build number.
+This is now stored separately in a new variable, 'emacs-build-number'.
+
 +++
 ** The new function 'mapbacktrace' applies a function to all frames of
 the current stack trace.
index ff5c2950914ee1cdd187ff63aba995915db4c2f5..20eceb58eddb0f314dc0e5dab3a13cbd5181cba4 100644 (file)
@@ -1618,7 +1618,7 @@ sequence, this is like `mapcar'.  With several, it is like the Common Lisp
      ((not (memq 'emacs lst))
       nil)
      ((string-match "^\\(\\([.0-9]+\\)*\\)\\.[0-9]+$" emacs-version)
-      (concat "Emacs/" (match-string 1 emacs-version)
+      (concat "Emacs/" emacs-version
              (if system-v
                  (concat " (" system-v ")")
                "")))
index ecb72840c43a4d3816856944531eaf91ac398303..5b19b05a82efa954b0bdc9cdfc105dfa30b4964d 100644 (file)
@@ -350,7 +350,7 @@ lost after dumping")))
         (multibyte-string-p default-directory))
     (error "default-directory must be unibyte when dumping Emacs!"))
 
-;; Determine which last version number to use
+;; Determine which build number to use
 ;; based on the executables that now exist.
 (if (and (equal (last command-line-args) '("dump"))
         (not (eq system-type 'ms-dos)))
@@ -364,10 +364,9 @@ lost after dumping")))
                             files)))
       (setq emacs-repository-version (condition-case nil (emacs-repository-get-version)
                               (error nil)))
-      ;; `emacs-version' is a constant, so we shouldn't change it with `setq'.
-      (defconst emacs-version
-       (format "%s.%d"
-               emacs-version (if versions (1+ (apply 'max versions)) 1)))))
+      ;; A constant, so we shouldn't change it with `setq'.
+      (defconst emacs-build-number
+       (if versions (1+ (apply 'max versions)) 1))))
 
 
 (message "Finding pointers to doc strings...")
@@ -463,7 +462,7 @@ lost after dumping")))
                    ;; Don't bother adding another name if we're just
                    ;; building bootstrap-emacs.
                    (equal (last command-line-args) '("bootstrap"))))
-         (let ((name (concat "emacs-" emacs-version))
+         (let ((name (format "emacs-%s.%d" emacs-version emacs-build-number))
                (exe (if (eq system-type 'windows-nt) ".exe" "")))
            (while (string-match "[^-+_.a-zA-Z0-9]+" name)
              (setq name (concat (downcase (substring name 0 (match-beginning 0)))
index c8214c351085096d5161930a5e27033b18129359..ecb7db60ae1390dadba805dec8ade02316bd0795 100644 (file)
@@ -151,10 +151,7 @@ Prompts for bug subject.  Leaves you in a mail buffer."
   (interactive "sBug Subject: ")
   ;; The syntax `version;' is preferred to `[version]' because the
   ;; latter could be mistakenly stripped by mailing software.
-  (if (eq system-type 'ms-dos)
-      (setq topic (concat emacs-version "; " topic))
-    (when (string-match "^\\(\\([.0-9]+\\)*\\)\\.[0-9]+$" emacs-version)
-      (setq topic (concat (match-string 1 emacs-version) "; " topic))))
+  (setq topic (concat emacs-version "; " topic))
   (let ((from-buffer (current-buffer))
        (can-insert-mail (or (report-emacs-bug-can-use-xdg-email)
                             (report-emacs-bug-can-use-osx-open)))
index 99ab3519a7e55cef4ad572f103caefb6b95a990d..ea6f1b46948295c65572f1f7d6b6cab86b71c241 100644 (file)
@@ -44,6 +44,12 @@ This variable first existed in version 19.23.")
 (defconst emacs-build-time (if emacs-build-system (current-time))
   "Time at which Emacs was dumped out, or nil if not available.")
 
+(defconst emacs-build-number 1          ; loadup.el may increment this
+  "The build number of this version of Emacs.
+This is an integer that increments each time Emacs is built in a given
+directory (without cleaning).  This is likely to only be relevant when
+developing Emacs.")
+
 (defvar motif-version-string)
 (defvar gtk-version-string)
 (defvar ns-version-string)
@@ -56,8 +62,9 @@ Don't use this function in programs to choose actions according
 to the system configuration; look at `system-configuration' instead."
   (interactive "P")
   (let ((version-string
-         (format "GNU Emacs %s (%s%s%s%s)%s"
+         (format "GNU Emacs %s (build %s, %s%s%s%s)%s"
                  emacs-version
+                 emacs-build-number
                 system-configuration
                 (cond ((featurep 'motif)
                        (concat ", " (substring motif-version-string 4)))
index 3083d0df302af7f709e899e57b523327a07cc94e..e5305e274171508cc110610f9d7d6e4ecb0e0193 100644 (file)
@@ -2607,7 +2607,12 @@ This is nil during initialization.  */);
   Vemacs_copyright = build_string (emacs_copyright);
 
   DEFVAR_LISP ("emacs-version", Vemacs_version,
-              doc: /* Version numbers of this version of Emacs.  */);
+              doc: /* Version numbers of this version of Emacs.
+This has the form: MAJOR.MINOR[.MICRO], where MAJOR/MINOR/MICRO are integers.
+MICRO is only present in unreleased development versions,
+and is not especially meaningful.  Prior to Emacs 26.1, an extra final
+component .BUILD is present.  This is now stored separately in
+`emacs-build-number'.  */);
   Vemacs_version = build_string (emacs_version);
 
   DEFVAR_LISP ("report-emacs-bug-address", Vreport_emacs_bug_address,