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

From: Stefan Kangas <[email-masked]>
Date: Mon, 3 Jun 2024 13:24:36 -0400

Joseph Turner <[email-masked]> writes:

>> Of course, that was also the change proposed in my first patch but I
>> didn't notice the change in Joseph's suggestion.

Ah, right.  I somehow missed that part.

> Thanks for the correction.  Are the attached patches appropriate?

Looks good to me, except for a few comments below.

> 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

Bonus points if you add a test for this one.

> * lisp/emacs-lisp/lisp-mnt.el (lm-version)

See CONTRIBUTE for details, but this should read:

* lisp/emacs-lisp/lisp-mnt.el (lm-version): Prefer version in the
"Package-Version:" header.  (Bug#69528)

> ---
>  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."

It would be good to fix the docstring here to clarify that it can come
from the "Version" or "Package-Version" headers too.

>    (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)

This should read something like this instead:

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
Prefer 'lm-version'.  (Bug#69528)

> ---
>  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