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

Previous Next

Package: emacs;

Reported by: No Wayman <iarchivedmywholelife <at> gmail.com>

Date: Sun, 3 Mar 2024 17:26:02 UTC

Severity: normal

Found in version 30.0.50

To reply to this bug, email your comments to 69528 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#69528; Package emacs. (Sun, 03 Mar 2024 17:26:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to No Wayman <iarchivedmywholelife <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 03 Mar 2024 17:26:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: No Wayman <iarchivedmywholelife <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; [BUG] transient.el is not a member of
 package--builtin-versions
Date: Sun, 03 Mar 2024 12:25:16 -0500
Transient.el was added in 28.1 according to NEWS.
It is not a member of package--builtin-versions for any of the 
following Emacs versions: 28.1, 28.2, 29.1, 29.2.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#69528; Package emacs. (Mon, 04 Mar 2024 17:23:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: No Wayman <iarchivedmywholelife <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: 30.0.50; [BUG] transient.el is not a member of
 package--builtin-versions
Date: Mon, 04 Mar 2024 12:22:00 -0500
No Wayman <iarchivedmywholelife <at> gmail.com> writes:

> Transient.el was added in 28.1 according to NEWS.
> It is not a member of package--builtin-versions for any of the 
> following Emacs
> versions: 28.1, 28.2, 29.1, 29.2.

I believe the behavior described here is due to this:
https://www.reddit.com/r/emacs/comments/1b69v1b/let_magit_330_use_builtin_transient/

To summarize, the user has a built-in version of transient.el 
shipped with Emacs 29.2.
They installed magit 3.3.0, which requires transient 0.3.6. 
Instead of package.el seeing magit's transient.el dependency as 
satisfied by the built-in version, it installed the latest 
version.

I've patched Elpaca, which relies on package--builtin-vesrions, 
due to similar complaints about transient.el being pulled in 
despite the built-in version satisfying a dependency. 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#69528; Package emacs. (Mon, 04 Mar 2024 18:43:02 GMT) Full text and rfc822 format available.

Message #11 received at 69528 <at> debbugs.gnu.org (full text, mbox):

From: Philip Kaludercic <philipk <at> posteo.net>
To: No Wayman <iarchivedmywholelife <at> gmail.com>
Cc: 69528 <at> debbugs.gnu.org
Subject: Re: bug#69528: 30.0.50; [BUG] transient.el is not a member of
 package--builtin-versions
Date: Mon, 04 Mar 2024 18:41:26 +0000
[Message part 1 (text/plain, inline)]
No Wayman <iarchivedmywholelife <at> gmail.com> writes:

> No Wayman <iarchivedmywholelife <at> gmail.com> writes:
>
>> Transient.el was added in 28.1 according to NEWS.
>> It is not a member of package--builtin-versions for any of the
>> following Emacs
>> versions: 28.1, 28.2, 29.1, 29.2.

At least on Emacs 30, (assq 'transient package--builtin-versions) gives
me a non-nil value.  I can confirm that this is the case on the emacs-29
branch.

I suspect this commit resolved the issue, since
`loaddefs-generate--parse-file' only checks the version header, not the
package-version header.

--8<---------------cut here---------------start------------->8---
commit fa5f06c1251ff717d661f05fcd240b4792054aae
Author: Jonas Bernoulli <jonas <at> bernoul.li>
Date:   Tue Dec 5 20:01:44 2023 +0100

    ; * lisp/transient.el: Set Version instead of Package-Version
    
    `finder-compile-keywords' only considers the "Version" header.

diff --git a/lisp/transient.el b/lisp/transient.el
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1,35 +1,35 @@
 ;;; transient.el --- Transient commands  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
 
 ;; Author: Jonas Bernoulli <jonas <at> bernoul.li>
 ;; Homepage: https://github.com/magit/transient
 ;; Keywords: extensions
 
-;; Package-Version: 0.5.2
+;; Version: 0.5.2
 ;; Package-Requires: ((emacs "26.1") (compat "29.1.4.4") (seq "2.24"))
 
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published
 ;; by the Free Software Foundation, either version 3 of the License,
 ;; or (at your option) any later version.
 ;;
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 ;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 ;; Transient is the library used to implement the keyboard-driven menus
 ;; in Magit.  It is distributed as a separate package, so that it can be
 ;; used to implement similar menus in other packages.
 
 ;;; Code:

--8<---------------cut here---------------end--------------->8---

So in general, this patch might be appropriate?

[Message part 2 (text/plain, inline)]
diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el
index 581053f6304..42f386933dc 100644
--- a/lisp/emacs-lisp/loaddefs-gen.el
+++ b/lisp/emacs-lisp/loaddefs-gen.el
@@ -433,7 +433,8 @@ 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 (or (lm-header "package-version")
+                           (lm-header "version")))
               package)
           (when (and version
                      (setq version (ignore-errors (version-to-list version)))
[Message part 3 (text/plain, inline)]
>
> I believe the behavior described here is due to this:
> https://www.reddit.com/r/emacs/comments/1b69v1b/let_magit_330_use_builtin_transient/
>
> To summarize, the user has a built-in version of transient.el shipped
> with Emacs 29.2.
> They installed magit 3.3.0, which requires transient 0.3.6. Instead of
> package.el seeing magit's transient.el dependency as satisfied by the
> built-in version, it installed the latest version.
>
> I've patched Elpaca, which relies on package--builtin-vesrions, due to
> similar complaints about transient.el being pulled in despite the
> built-in version satisfying a dependency. 

I suspect that whatever you did, won't help us since this specific issue
will be resolved by the time any package.el-related fix would be published?

-- 
	Philip Kaludercic on peregrine

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#69528; Package emacs. (Tue, 05 Mar 2024 06:21:01 GMT) Full text and rfc822 format available.

Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Joseph Turner <joseph <at> breatheoutbreathe.in>
To: Philip Kaludercic <philipk <at> posteo.net>
Cc: bug-gnu-emacs <at> gnu.org, No Wayman <iarchivedmywholelife <at> gmail.com>,
 69528 <at> debbugs.gnu.org
Subject: Re: bug#69528: 30.0.50; [BUG] transient.el is not a member of
 package--builtin-versions
Date: Mon, 04 Mar 2024 22:17:30 -0800
[Message part 1 (text/plain, inline)]
Philip Kaludercic <philipk <at> posteo.net> writes:
> So in general, this patch might be appropriate?
>
> diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el
> index 581053f6304..42f386933dc 100644
> --- a/lisp/emacs-lisp/loaddefs-gen.el
> +++ b/lisp/emacs-lisp/loaddefs-gen.el
> @@ -433,7 +433,8 @@ 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 (or (lm-header "package-version")
> +                           (lm-header "version")))
>                package)
>            (when (and version
>                       (setq version (ignore-errors (version-to-list version)))
>
>

What about making `lm-version' handle the "package-version" header then
using `lm-version' in loaddefs-generate--parse-file?  See patches.

Joseph

[0002-Use-lm-version-instead-of-lm-header-version.patch (text/x-diff, attachment)]
[0001-Check-Package-Version-header-in-lm-version-also.patch (text/x-diff, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#69528; Package emacs. (Tue, 05 Mar 2024 06:21:02 GMT) Full text and rfc822 format available.

This bug report was last modified 60 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.