Subject: Re: bug#69528: 30.0.50; [BUG] transient.el is not a member of package--builtin-versions

From: Joseph Turner <[email-masked]>
Date: Sun, 02 Jun 2024 11:26:42 -0700

Philip Kaludercic <[email-masked]> writes:

> Stefan Kangas <[email-masked]> writes:
>
>> Philip Kaludercic <[email-masked]> writes:
>>
>>>> 2. The way I read the manual, it seems like "Package-Version" should be
>>>>    preferred over "Version", if it exists:
>>>>
>>>>         ‘Package-Version’
>>>>              If ‘Version’ is not suitable for use by the package manager, then a
>>>>              package can define ‘Package-Version’; it will be used instead.
>>>>              This is handy if ‘Version’ is an RCS id or something else that
>>>>              cannot be parsed by ‘version-to-list’.
>>>
>>> FWIW I use this for some of my own scripts that I version using RCS, so
>>> I'd appreciate it if that functionality would stay.
>>
>> OK, so let's keep it.  But shouldn't the below be the correct order
>> according to the above quoted documentation?
>>
>> diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
>> index f111a77663c..5db0b50adc3 100644
>> --- a/lisp/emacs-lisp/lisp-mnt.el
>> +++ b/lisp/emacs-lisp/lisp-mnt.el
>> @@ -415,7 +415,8 @@ lm-version
>>    "Return the version listed in file FILE, or current buffer if FILE is nil.
>>  This can be found in an RCS or SCCS header."
>>    (lm-with-file file
>> -    (or (lm-header "version")
>> +    (or (lm-header "package-version")
>> +        (lm-header "version")
>>          (let ((header-max (lm-code-start)))
>>  	  (goto-char (point-min))
>>  	  (cond
>
> Of course, that was also the change proposed in my first patch but I
> didn't notice the change in Joseph's suggestion.

Thanks for the correction.  Are the attached patches appropriate?

>From a666581f2a58568bb7f83a369e1040920a6b2c14 Mon Sep 17 00:00:00 2001
From: Joseph Turner <[email-masked]>
Date: Mon, 4 Mar 2024 22:14:26 -0800
Subject: [PATCH 1/2] Check Package-Version: header in lm-version also

* lisp/emacs-lisp/lisp-mnt.el (lm-version)
---
 lisp/emacs-lisp/lisp-mnt.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
index f111a77663c..5db0b50adc3 100644
--- a/lisp/emacs-lisp/lisp-mnt.el
+++ b/lisp/emacs-lisp/lisp-mnt.el
@@ -415,7 +415,8 @@ lm-version
   "Return the version listed in file FILE, or current buffer if FILE is nil.
 This can be found in an RCS or SCCS header."
   (lm-with-file file
-    (or (lm-header "version")
+    (or (lm-header "package-version")
+        (lm-header "version")
         (let ((header-max (lm-code-start)))
 	  (goto-char (point-min))
 	  (cond
-- 
2.41.0

>From 6c4262d7236c64bbc938f7b4e76988d95049b7c1 Mon Sep 17 00:00:00 2001
From: Joseph Turner <[email-masked]>
Date: Mon, 4 Mar 2024 22:15:50 -0800
Subject: [PATCH 2/2] Use lm-version instead of lm-header "version"

bug#69528

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file)
---
 lisp/emacs-lisp/loaddefs-gen.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el
index 50e90cdf94c..f0355b25f57 100644
--- a/lisp/emacs-lisp/loaddefs-gen.el
+++ b/lisp/emacs-lisp/loaddefs-gen.el
@@ -433,7 +433,7 @@ loaddefs-generate--parse-file
           ;; loaddefs for packages so that `syntax-ppss' later gives
           ;; correct results.
           (emacs-lisp-mode)
-        (let ((version (lm-header "version"))
+        (let ((version (lm-version))
               package)
           (when (and version
                      (setq version (ignore-errors (version-to-list version)))
-- 
2.41.0