This is acceptable to me On 13 May 2023 at 6:18 PM +0100, Philip Kaludercic , wrote: > ping? > > Philip Kaludercic writes: > > > Jimmy Wong writes: > > > > > I don’t think you should dedup the variable that could have been > > > modified by something else such as package-install. This may make > > > debugging harder should package.el itself introduce a bug that > > > duplicates pacakages in the variable. How about just using good old > > > add-to-list? > > > > The issue is that we want to go through package--save-selected-packages, > > that is given a new value to assign to `package-selected-packages'. > > An otherwise, I my understanding is that add-to-list is not conventional > > in executed code. > > > > The alternative is to check for duplicates before invoking the function: > > > > diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el > > index e9794eac783..b967aaa3d4d 100644 > > --- a/lisp/emacs-lisp/package-vc.el > > +++ b/lisp/emacs-lisp/package-vc.el > > @@ -507,9 +507,10 @@ package-vc--unpack-1 > > (package--reload-previously-loaded new-desc))) > > > > ;; Mark package as selected > > - (package--save-selected-packages > > - (cons (package-desc-name pkg-desc) > > - package-selected-packages)) > > + (let ((name (package-desc-name pkg-desc))) > > + (unless (memq name package-selected-packages) > > + (package--save-selected-packages > > + (cons name package-selected-packages)))) > > (package--quickstart-maybe-refresh) > > > > ;; Confirm that the installation was successful > > > > > > > > > On 8 May 2023 at 1:03 PM +0100, Eli Zaretskii , wrote: > > > > > Cc: 63338@debbugs.gnu.org > > > > > From: Philip Kaludercic > > > > > Date: Mon, 08 May 2023 10:36:55 +0000 > > > > > > > > > > Jimmy Yuen Ho Wong writes: > > > > > > > > > > > Reproduction: > > > > > > > > > > > > 0. (setq custom-file (const user-emacs-directory "custom.el")) > > > > > > 1. M-x package-vc-install company > > > > > > 2. M-x package-vc-install company RET y > > > > > > 3. C-x C-f ~/.emacs/custom.el > > > > > > 4. Observe that `company` has been listed twice under > > > > > > `package-selected-packages`. > > > > > > > > > > > > Expectation: > > > > > > > > > > > > Installing the same package twice should not result in its duplication > > > > > > in `package-selected-packages`. > > > > > > > > > > An easy fix would be just to ensure that package-selected-packages is > > > > > always deduplicated before assigning the value: > > > > > > > > This is OK for the emacs-29 branch, thanks.