From unknown Sat Aug 16 23:47:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63338: 29.0.90; package-vc-install'ing the same package multiple times results in duplication in package-selected-packages Resent-From: Jimmy Yuen Ho Wong Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 06 May 2023 23:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 63338 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 63338@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.168341567114413 (code B ref -1); Sat, 06 May 2023 23:28:01 +0000 Received: (at submit) by debbugs.gnu.org; 6 May 2023 23:27:51 +0000 Received: from localhost ([127.0.0.1]:35963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvRJd-0003kO-QC for submit@debbugs.gnu.org; Sat, 06 May 2023 19:27:51 -0400 Received: from lists.gnu.org ([209.51.188.17]:44860) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvRJZ-0003kD-AX for submit@debbugs.gnu.org; Sat, 06 May 2023 19:27:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvRJZ-0000r8-18 for bug-gnu-emacs@gnu.org; Sat, 06 May 2023 19:27:45 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pvRJM-0004FG-7y for bug-gnu-emacs@gnu.org; Sat, 06 May 2023 19:27:44 -0400 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-3f3331f928cso21085805e9.2 for ; Sat, 06 May 2023 16:27:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683415650; x=1686007650; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=hGM/2BYId30lJtYqkpZx0MK+dkZkeIk2FJBTi3q/g6g=; b=aJxQdSaiQu2QCD+rqYczPflW2lyPlBGeyD21+72RWwscqdW1cW0X/+c8pTGLWst6WW 2gR3v7rJzezkXc2gQC3hGVj96ty3g9K/ciuLFY5huIrFWbpiMBAgzorq26QTyl/z1ph1 JKHrp3itl18+n1CYkF1g3Cwr9fF3B49wds1clzMhyP575Eu/HgjBO5orZwu1ISgdqTQ1 lQs5Q7eSv7P0Z3TL+t9B2r9gpyVPFc523iQ/WR9EUCCuXCUT6EuuslzfVJfKl5T94Aaf xNqCP0bTa4YkT+off/+Su3BkheuE4odlwv+qZ+Lo1gjlbwVgvDtkKoDlc4hsKAN9BFvd R8yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683415650; x=1686007650; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=hGM/2BYId30lJtYqkpZx0MK+dkZkeIk2FJBTi3q/g6g=; b=mAX4G7W92okbWxG6+gUhWybJjd8qPGEbVY8e+0bdKRHeOibZRWeZR7mBKw5OnAOoPu O/IyS68z8sVeJ72ew+kkDFmTFIGZlmp3w8JflElJEiodtmGKHG8n+mETV3V6uZL+PQPo 9U48yqXV8JsRw01zp2heeycmvQHmvIeds7+R9xNzJh87xBm7hZYT6VpyNv8EGF5EmtnT dToTeo5/ffgob5tFWJuQxvwOnLGoLddoilwh5kaKl/pro/kgEg+cxBmxEmEvapDX133D 7+cbYJmDsZNGYQRVebHXhUi6EyGZRQCtWbO/lIcEXwxwc6YfB+egKROuPa17F0sHwSzY 5lWg== X-Gm-Message-State: AC+VfDyaKzoAcRoMWCVEzz1/01yOP5XlTBLmWBvjq5bjTvuy54cFYhN1 IkHrvyQIlp1V7+IZeFXwz7crXJJ+SnE= X-Google-Smtp-Source: ACHHUZ5iNQURYTCmHjtiEkJ2t+EtsEHp1uDoradp1tFQhqDc32mm3gW4A+URSgIkFuKHtYpTUMaPxg== X-Received: by 2002:a7b:c7d6:0:b0:3f1:72ec:4024 with SMTP id z22-20020a7bc7d6000000b003f172ec4024mr3927757wmk.21.1683415649369; Sat, 06 May 2023 16:27:29 -0700 (PDT) Received: from MobileCat.localdomain ([2a01:4b00:89a0:2400:1881:f28:f743:c6cd]) by smtp.gmail.com with ESMTPSA id q7-20020a1ce907000000b003f180d5b145sm12126916wmc.40.2023.05.06.16.27.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 06 May 2023 16:27:28 -0700 (PDT) From: Jimmy Yuen Ho Wong Date: Sun, 07 May 2023 00:27:24 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=wyuenho@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) 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`. In GNU Emacs 29.0.90 (build 1, aarch64-apple-darwin22.4.0, NS appkit-2299.50 Version 13.3.1 (a) (Build 22E772610a)) of 2023-05-04 built on MobileCat.localdomain Windowing system distributor 'Apple', version 10.3.2299 System Description: macOS 13.3.1 Configured using: 'configure --prefix=/opt/local --disable-silent-rules --without-dbus --without-gconf --without-libotf --without-m17n-flt --with-libgmp --with-gnutls --with-json --with-xml2 --with-modules --infodir /opt/local/share/info/emacs --with-sqlite3 --with-webp --with-ns --with-lcms2 --without-harfbuzz --without-imagemagick --without-xaw3d --with-tree-sitter --with-rsvg --with-xwidgets --with-native-compilation=aot 'CFLAGS=-pipe -Os -Wno-attributes -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch arm64' 'CPPFLAGS=-I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk' 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath /opt/local/lib/gcc12 -Wl,-no_pie -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch arm64'' Configured features: ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XWIDGETS ZLIB Important settings: value of $LANG: en_GB.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: which-key-mode: t smooth-scrolling-mode: t auto-compile-on-save-mode: t auto-compile-mode: t amx-mode: t pdf-occur-global-minor-mode: t global-whitespace-cleanup-mode: t whitespace-cleanup-mode: t global-move-dup-mode: t move-dup-mode: t global-aggressive-indent-mode: t magit-todos-mode: t diff-hl-flydiff-mode: t projectile-rails-global-mode: t elisp-def-mode: t company-quickhelp-mode: t company-quickhelp-local-mode: t company-prescient-mode: t rainbow-mode: t display-line-numbers-mode: t beginend-prog-mode: t page-break-lines-mode: t ido-vertical-mode: t ido-ubiquitous-mode: t crm-custom-mode: t direnv-mode: t imenu-list-minor-mode: t purpose-mode: t dap-tooltip-mode: t show-smartparens-global-mode: t show-smartparens-mode: t smartparens-global-mode: t smartparens-mode: t projectile-mode: t editorconfig-mode: t rxt-global-mode: t rxt-mode: t global-origami-mode: t origami-mode: t flx-ido-mode: t global-git-commit-mode: t global-flycheck-mode: t subword-mode: t global-diff-hl-show-hunk-mouse-mode: t diff-hl-show-hunk-mouse-mode: t global-diff-hl-mode: t diff-hl-mode: t dap-ui-many-windows-mode: t dap-ui-controls-mode: t dap-ui-mode: t dap-auto-configure-mode: t dap-mode: t treemacs-filewatch-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t csv-field-index-mode: t prescient-persist-mode: t global-company-mode: t company-mode: t windmove-mode: t yas-minor-mode: t shell-dirtrack-mode: t winner-mode: t which-function-mode: t server-mode: t savehist-mode: t save-place-mode: t recentf-mode: t minibuffer-depth-indicate-mode: t ido-everywhere: t global-so-long-mode: t global-hl-line-mode: t global-auto-revert-mode: t icomplete-vertical-mode: t icomplete-mode: t desktop-save-mode: t delete-selection-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t window-divider-mode: t buffer-read-only: t size-indication-mode: t column-number-mode: t line-number-mode: t visual-line-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t temp-buffer-resize-mode: t Load-path shadows: /Users/wyuenho/.emacs.d/elpa/all-the-icons/all-the-icons-faces hides /Users/wyuenho/.emacs.d/elpa/all-the-icons-20230505.1635/all-the-icons-faces /Users/wyuenho/.emacs.d/elpa/all-the-icons/all-the-icons-pkg hides /Users/wyuenho/.emacs.d/elpa/all-the-icons-20230505.1635/all-the-icons-pkg /Users/wyuenho/.emacs.d/elpa/all-the-icons/all-the-icons hides /Users/wyuenho/.emacs.d/elpa/all-the-icons-20230505.1635/all-the-icons /Users/wyuenho/.emacs.d/elpa/all-the-icons/all-the-icons-autoloads hides /Users/wyuenho/.emacs.d/elpa/all-the-icons-20230505.1635/all-the-icons-autoloads /Users/wyuenho/.emacs.d/elpa/cmake-mode-20230422.828/cmake-mode hides /opt/local/share/emacs/site-lisp/cmake-mode /Users/wyuenho/.emacs.d/elpa/transient-20230501.1034/transient hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/transient /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-jump hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-jump /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-ensure hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-ensure /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-core hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-core /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-delight hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-delight /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-diminish hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-diminish /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-bind-key hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-bind-key /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-lint hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-lint Features: (shadow mail-extr emacsbug two-column misearch multi-isearch visual-regexp-steroids tabify which-key smooth-scrolling auto-compile amx cus-start pdf-occur all-the-icons-dired dired-collapse flycheck-cask flycheck-inline whitespace-cleanup-mode move-dup aggressive-indent vc-bzr vc-src vc-sccs vc-cvs vc-rcs window-purpose-x shut-up ibuffer-vc dired-hide-dotfiles shrink-path git-timemachine magit-lfs magit-todos diff-hl-flydiff projectile-rails lsp-metals lsp-sourcekit cargo rust-ts-mode yard-mode lsp-pyright pet lsp-jedi python-pytest python-isort python-black python-insert-docstring jq-format prettier flycheck-package elisp-def eterm-256color company-quickhelp company-prescient company-yasnippet quick-peek rainbow-mode display-line-numbers beginend smartparens-config smartparens-javascript smartparens-ml smartparens-rst smartparens-org smartparens-python smartparens-html smartparens-c page-break-lines lsp-ui lsp-ui-flycheck pdf-loader iedit ido-vertical-mode ido-completing-read+ crm-custom scroll-on-jump browse-kill-ring direnv exec-path-from-shell all-the-icons-data-clockface all-the-icons-data-material-icons all-the-icons-data-fluentui-system-icons all-the-icons-data-fontawesome-4 all-the-icons-data-weather-icons all-the-icons-data-vscode-codicons all-the-icons-data-octicons all-the-icons-data-mfixx all-the-icons-data-file-icons all-the-icons-data-devopicons company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-files company-clang company-capf company-cmake company-semantic company-bbdb package-vc spaceline-config solarized-dark-theme solarized-theme delight quelpa-use-package quelpa eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util exec-path-from-shell-autoloads quelpa-use-package-autoloads quelpa-autoloads yasnippet-snippets-autoloads yasnippet-snippets yarn-mode-autoloads yard-mode-autoloads imenu-list window-purpose window-purpose-fixes window-purpose-prefix-overload window-purpose-layout window-purpose-switch window-purpose-core window-purpose-configuration window-purpose-utils window-purpose-autoloads whitespace whitespace-cleanup-mode-autoloads which-key-autoloads wgrep-ag-autoloads web-mode-autoloads vundo-autoloads term/xterm xterm vterm-autoloads visual-regexp visual-regexp-steroids-autoloads visual-regexp-autoloads verb verb-autoloads mc-separate-operations rectangular-region-mode mc-mark-pop mc-edit-lines mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core multiple-cursors-autoloads use-package-autoloads dap-mouse udev-mode-autoloads tuareg tuareg-compat tuareg-opam flymake-proc flymake caml-types caml-help tuareg-autoloads caml caml-autoloads ts-comint-autoloads hcl-mode terraform-mode-autoloads hcl-mode-autoloads swift-mode-imenu swift-mode-repl swift-mode-font-lock swift-mode-fill swift-mode-standard-types swift-mode-beginning-of-defun swift-mode-indent swift-mode-lexer swift-mode-autoloads svg-lib svg-lib-autoloads string-inflection-autoloads generic ssh-config-mode-autoloads sphinx-doc-autoloads spaceline-segments spaceline powerline spaceline-autoloads solarized-palettes solarized solarized-faces solarized-theme-autoloads smooth-scrolling-autoloads smartparens-markdown smartparens-text smartparens-ruby smartparens loadhist smartparens-autoloads smart-semicolon-autoloads shut-up-autoloads shrink-path-autoloads shift-number-autoloads scroll-on-jump-autoloads sbt-mode sbt-mode-rgrep sbt-mode-comint sbt-mode-buffer sbt-mode-project sbt-mode-vars sbt-mode-autoloads haml-mode sass-mode-autoloads js c-ts-common css-mode eww url-queue shr pixel-fill kinsoku url-file svg mm-url gnus nnheader range haml-mode-autoloads ron-mode-autoloads rg rg-info-hack rg-menu rg-ibuffer rg-result wgrep-rg wgrep rg-history rg-header rg-autoloads wgrep-autoloads repeat repeat-help-autoloads reason-interaction refmt reason-indent reason-mode-autoloads rainbow-mode-autoloads quick-peek-autoloads python-pytest-autoloads python-isort-autoloads python-insert-docstring-autoloads python-docstring-autoloads python-black-autoloads protobuf-mode-autoloads rake inflections inf-ruby autoinsert projectile projectile-rails-autoloads inflections-autoloads inf-ruby-autoloads rake-autoloads editorconfig nvm iter2 prettier-autoloads iter2-autoloads nvm-autoloads powerline-separators powerline-themes powerline-autoloads po-mode-autoloads pet-autoloads pdf-links pdf-tools pdf-isearch tablist pdf-misc pdf-view pdf-cache pdf-info tq pdf-util pdf-macs pdf-tools-autoloads tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent tablist-autoloads page-break-lines-autoloads package-utils-autoloads restart-emacs-autoloads package-build package-build-badges package-recipe package-build-autoloads osx-trash-autoloads olivetti-autoloads nodejs-repl-autoloads move-dup-autoloads monky-autoloads pcre2el rxt hl-todo magit-todos-autoloads smtpmail dired-aux async async-autoloads re-builder pcre2el-autoloads magit-lfs-autoloads cmacexp macrostep macrostep-autoloads lsp-ui-doc xwidget image-mode exif lsp-ui-imenu lsp-ui-peek lsp-ui-sideline goto-addr lsp-ui-util lsp-ui-autoloads lsp lsp-sourcekit-autoloads lsp-pyright-autoloads origami lsp-origami-autoloads origami-parsers origami-autoloads view lsp-metals-treeview treemacs-extensions lsp-metals-protocol lsp-metals-autoloads scala-mode-prettify-symbols scala-mode-imenu scala-mode-map scala-mode-fontlock scala-mode-paragraph scala-mode-indent scala-mode-lib scala-mode-syntax scala-mode-autoloads lsp-jedi-autoloads dap-java lsp-java request lsp-java-autoloads request-autoloads lorem-ipsum-autoloads kurecolor-autoloads jsonian-autoloads jq-mode jq-mode-autoloads reformatter jq-format-autoloads impostman-autoloads hideshow imenu-list-autoloads imenu-anywhere-autoloads help-macro iedit-lib rect iedit-autoloads ido-vertical-mode-autoloads flx-ido memoize minibuf-eldef ido-completing-read+-autoloads memoize-autoloads ibuffer-vc-autoloads align ialign-autoloads hl-todo-autoloads highlight-indent-guides-autoloads trace edebug info-look help-fns elisp-refs helpful-autoloads groovy-mode groovy-mode-autoloads graphviz-dot-mode-autoloads graphql-mode-autoloads find-file ffap go-mode-autoloads git-timemachine-autoloads gitignore-mode gitconfig-mode gitattributes-mode git-modes-autoloads forge-list forge-commands forge-semi forge-bitbucket forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github forge-notify forge-revnote forge-pullreq forge-issue forge-topic bug-reference forge-post forge-repo forge forge-core forge-db closql buck forge-autoloads closql-autoloads sqlite emacsql-sqlite-common emacsql emacsql-compiler emacsql-autoloads ghub-graphql treepy gsexp ghub ghub-autoloads treepy-autoloads ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util magit-bookmark magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode git-commit magit-core magit-autorevert magit-margin magit-transient magit-process magit-mode magit-git magit-base magit-section crm magit-autoloads with-editor transient log-edit add-log git-commit-autoloads benchmark cursor-sensor magit-section-autoloads with-editor-autoloads edmacro kmacro compat transient-autoloads ert-x compat-macs compat-autoloads fontify-face-autoloads focus-autoloads flycheck-projectile-autoloads skeleton ibuf-macs grep ibuf-ext ibuffer ibuffer-loaddefs projectile-autoloads plantuml-mode flycheck-plantuml-autoloads plantuml-mode-autoloads package-lint flycheck-package-autoloads flycheck-inline-autoloads flycheck-golangci-lint-autoloads flycheck-cask-autoloads flycheck jka-compr flycheck-autoloads epl pkg-info-autoloads epl-autoloads flx-isearch-autoloads flx flx-ido-autoloads flx-autoloads org-element org-persist xdg org-id org-refile avl-tree cap-words superword subword ruby-mode smie rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-enc xmltok html-mode-expansions sgml-mode facemenu er-basic-expansions expand-region-core expand-region-custom expand-region-autoloads xterm-color eterm-256color-autoloads xterm-color-autoloads enh-ruby-mode-autoloads cl emmet-mode-autoloads elisp-refs-autoloads elisp-def-autoloads editorconfig-core editorconfig-core-handle editorconfig-fnmatch conf-mode editorconfig-autoloads dotenv-mode-autoloads docker-compose-mode-autoloads yaml-mode-autoloads direnv-autoloads dired-single-autoloads dired-hide-dotfiles-autoloads dired-hacks-utils dired-collapse-autoloads dired-hacks-utils-autoloads diff-hl-show-hunk diff-hl-inline-popup diff-hl-dired diff diff-hl face-remap vc-hg log-view pcvs-util vc-dir vc diff-hl-autoloads delight-autoloads default-text-scale-autoloads lsp-pwsh lsp-kotlin dap-ui lsp-treemacs gdb-mi bindat gud bui lsp-lens dap-utils xml dap-mode dap-tasks dap-launch lsp-docker dap-overlays dap-mode-autoloads bui-list bui-info bui-entry bui-core bui-history bui-button bui-utils cus-edit bui-autoloads lsp-treemacs-generic lsp-treemacs-themes treemacs-treelib lsp-treemacs-autoloads treemacs treemacs-header-line treemacs-compatibility treemacs-mode treemacs-bookmarks vc-git diff-mode vc-dispatcher treemacs-mouse-interface thunk treemacs-tags treemacs-faces treemacs-interface treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering treemacs-annotations bookmark treemacs-async treemacs-visuals treemacs-fringe-indicator treemacs-icons treemacs-themes pulse treemacs-workspaces treemacs-scope treemacs-dom treemacs-core-utils treemacs-macros treemacs-logging treemacs-customization pfuture treemacs-autoloads ace-window avy ace-window-autoloads avy-autoloads pfuture-autoloads org org-macro org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp org-table org-loaddefs cal-menu calendar cal-loaddefs hydra hydra-autoloads cfrs-autoloads posframe posframe-autoloads yaml lsp-docker-autoloads lsp-javascript lsp-html lsp-icons lsp-completion lsp-semantic-tokens dom lsp-mode lsp-protocol lv ht f f-shortdoc lsp-mode-autoloads lv-autoloads f-autoloads yaml-autoloads inline ht-autoloads python treesit cycle-quotes cycle-quotes-autoloads csv-mode sort csv-mode-autoloads crux-autoloads crm-custom-autoloads ov coverage-autoloads ov-autoloads pos-tip company-quickhelp-autoloads pos-tip-autoloads prescient company-prescient-autoloads char-fold prescient-autoloads native-complete company-native-complete-autoloads native-complete-autoloads tempo make-mode ispell etags fileloop generator company-dabbrev company-template company company-autoloads cmake-font-lock-autoloads rst cmake-mode-autoloads cask-mode-autoloads xref project cargo-process tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp cargo-autoloads buttercup-compat buttercup-autoloads bug-hunter ert ewoc debug backtrace bug-hunter-autoloads windmove buffer-move-autoloads advice browse-kill-ring-autoloads beginend-autoloads yasnippet auto-yasnippet-autoloads yasnippet-autoloads auto-compile-autoloads ob ob-tangle ol org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-core org-cycle org-fold org-fold-core ob-eval org-keys oc org-compat org-version org-macs format-spec ede/srecode srecode semantic/db semantic/util-modes semantic/util semantic pp semantic/tag semantic/lex semantic/fw mode-local ede/speedbar ede/files ede ede/detect ede/base ede/source eieio-speedbar speedbar ezimage dframe eieio-custom cedet term disp-table shell pcomplete ehelp cc-langs spinner cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs arduino-mode-autoloads ede/auto eieio-base spinner-autoloads markdown-mode apib-mode-autoloads color thingatpt noutline outline markdown-mode-autoloads amx-autoloads all-the-icons all-the-icons-dired-autoloads aggressive-indent-autoloads vc-svn find-dired dash ag-autoloads info dash-autoloads s add-node-modules-path-autoloads s-autoloads finder find-func package-lint-autoloads reformatter-autoloads all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons compile comint ansi-osc ansi-color all-the-icons-autoloads loaddefs-gen lisp-mnt radix-tree tar-mode arc-mode archive-mode finder-inf mm-archive message sendmail yank-media dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 gnus-util text-property-search mailabbrev gmm-utils mailheader mm-decode mm-bodies mm-encode mail-utils gnutls network-stream url-cache url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm puny epg-config winner ring which-func imenu server savehist saveplace recentf tree-widget wid-edit package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source eieio eieio-core password-cache json url-vars mb-depth ido help-at-pt so-long hl-line autorevert icomplete desktop frameset delsel use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core map byte-opt let-alist filenotify cus-load time-date comp comp-cstr warnings icons subr-x rx cl-seq cl-macs cl-extra help-mode bytecomp byte-compile gv pcase bootstrap-theme cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads xwidget-internal kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 2754798 929244) (symbols 48 129069 796) (strings 32 514353 275062) (string-bytes 1 15792171) (vectors 16 254829) (vector-slots 8 6368133 1332292) (floats 8 1804 6041) (intervals 56 16202 12601) (buffers 984 117)) From unknown Sat Aug 16 23:47:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63338: 29.0.90; package-vc-install'ing the same package multiple times results in duplication in package-selected-packages Resent-From: Philip Kaludercic Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 May 2023 10:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63338 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Jimmy Yuen Ho Wong Cc: 63338@debbugs.gnu.org Received: via spool by 63338-submit@debbugs.gnu.org id=B63338.168354223222262 (code B ref 63338); Mon, 08 May 2023 10:38:02 +0000 Received: (at 63338) by debbugs.gnu.org; 8 May 2023 10:37:12 +0000 Received: from localhost ([127.0.0.1]:39384 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvyEy-0005n0-9Q for submit@debbugs.gnu.org; Mon, 08 May 2023 06:37:12 -0400 Received: from mout01.posteo.de ([185.67.36.65]:48481) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvyEo-0005mL-0F for 63338@debbugs.gnu.org; Mon, 08 May 2023 06:37:11 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id EDF472401C3 for <63338@debbugs.gnu.org>; Mon, 8 May 2023 12:36:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1683542216; bh=43de+NwT7grO7Px8c9KJkdZemcmQDsR8bdE8Orxj8IY=; h=From:To:Cc:Subject:Autocrypt:Date:From; b=UeHM/OGMFRgUEP0p/fzf1CmhnyRPA6GdGPgMZSqFhfsYXgkY7lg+yU6gHk3d99r89 OUqPUA9Beq3rqpdXiARpkeCUsJe43bYksV3A/iPx/dt/Yp59A4fLKU45r4nhoQr0MD VRczSlNIExu4VUQlaZFtXANfchTB0op77j94y656uNYpmPOevcuGihLM+W8+sp2Fw5 RLgP8zfwQgblCFjM7H7XrAJ+d0yKwaDWiVe+bt+QjHQaaMuWSd4WMNHYUCBBPAV5DZ MzO2EYuRhlu0f3COQnXsN2NZxdWwx9bhK+raJ6/AK/ESlA2dYhNpGuUzxCRXog8/UW p1mCiASf78VqA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4QFHlq3W65z6tvd; Mon, 8 May 2023 12:36:55 +0200 (CEST) From: Philip Kaludercic In-Reply-To: (Jimmy Yuen Ho Wong's message of "Sun, 07 May 2023 00:27:24 +0100") References: Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM Date: Mon, 08 May 2023 10:36:55 +0000 Message-ID: <873547jeig.fsf@posteo.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain 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: --=-=-= Content-Type: text/plain Content-Disposition: inline diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index bbe2b8bb4af..988b92da75b 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -1992,7 +1992,7 @@ package--find-non-dependencies (defun package--save-selected-packages (&optional value) "Set and save `package-selected-packages' to VALUE." (when value - (setq package-selected-packages value)) + (setq package-selected-packages (delete-dups value))) (if after-init-time (customize-save-variable 'package-selected-packages package-selected-packages) (add-hook 'after-init-hook #'package--save-selected-packages))) --=-=-=-- From unknown Sat Aug 16 23:47:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63338: 29.0.90; package-vc-install'ing the same package multiple times results in duplication in package-selected-packages Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 May 2023 12:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63338 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Philip Kaludercic Cc: wyuenho@gmail.com, 63338@debbugs.gnu.org Received: via spool by 63338-submit@debbugs.gnu.org id=B63338.16835473999737 (code B ref 63338); Mon, 08 May 2023 12:04:02 +0000 Received: (at 63338) by debbugs.gnu.org; 8 May 2023 12:03:19 +0000 Received: from localhost ([127.0.0.1]:39490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvzaJ-0002Wy-Gw for submit@debbugs.gnu.org; Mon, 08 May 2023 08:03:19 -0400 Received: from eggs.gnu.org ([209.51.188.92]:60134) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvzaH-0002Wl-7V for 63338@debbugs.gnu.org; Mon, 08 May 2023 08:03:17 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvzaA-0005Jf-V2; Mon, 08 May 2023 08:03:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=U0NbsbOco/N/axs+kKssN6wWuoLyca+FJFPzyNvk3M0=; b=MB6QN22AdKRv j3oA9dMIQhSc9CLdHQygVMLI3U6uQqijM/2L8mQJFTP/tDXf6ZM3aQiZVjRt/tJaTQTHHZkOuY1fu VH2FIwCIRce26nquecTiGLYqaRqA6FFk/zb38MB+rpQ1wNkEVyouiPG+5guGiW+1p1wdkkLN72KEp 33Xp6BqO+xjNfXTF9LrTCF1AjNsL2jpNajFYa6uEuRnUc/I3815ZckVnH9j/bXX9BOgDojVEMxx9J tev58wzWJcgXxqA6DQKGqiOC543bron7Gp2OpX5vd/EKTGOKZBaTIx1qHBi9AkqN9I0JFpDMMlyQP 6FFMc/+UEIZKLrRKw5F2SA==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvzaA-0002Bb-EH; Mon, 08 May 2023 08:03:10 -0400 Date: Mon, 08 May 2023 15:04:11 +0300 Message-Id: <83h6snc9ms.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <873547jeig.fsf@posteo.net> (message from Philip Kaludercic on Mon, 08 May 2023 10:36:55 +0000) References: <873547jeig.fsf@posteo.net> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > 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. From unknown Sat Aug 16 23:47:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63338: 29.0.90; package-vc-install'ing the same package multiple times results in duplication in package-selected-packages Resent-From: Jimmy Wong Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 09 May 2023 02:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63338 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Philip Kaludercic , Eli Zaretskii Cc: 63338@debbugs.gnu.org Received: via spool by 63338-submit@debbugs.gnu.org id=B63338.16836010335517 (code B ref 63338); Tue, 09 May 2023 02:58:02 +0000 Received: (at 63338) by debbugs.gnu.org; 9 May 2023 02:57:13 +0000 Received: from localhost ([127.0.0.1]:42088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pwDXM-0001Qu-KT for submit@debbugs.gnu.org; Mon, 08 May 2023 22:57:13 -0400 Received: from mail-wm1-f44.google.com ([209.85.128.44]:45062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pwDXK-0001Qg-M7 for 63338@debbugs.gnu.org; Mon, 08 May 2023 22:57:11 -0400 Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-3f1950f569eso34594085e9.2 for <63338@debbugs.gnu.org>; Mon, 08 May 2023 19:57:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683601024; x=1686193024; h=mime-version:subject:references:in-reply-to:message-id:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=+MO9o0LEAr/DOS42vUQ16jtl4wS3HQNYjoIAuzKMnTA=; b=cmjdfYSH2TPQILeeYhgyPF7xq8dZAlCvq8ypWqdZYYevFasAHvzZjGvdVCcMNGj2FV GrW7O9X5w/7IdtiIWIyYLbXz5T1vDO9R1eNqVZ+Bdr/bKWNwqTVjRpqhkApgu8kx62pW fj7dmbPOnBLCGix++LWRaUwhsxGrx6IrofHkzdV/zuhg1qmoUNTWbDHXzbzBGUAHwG/L aLuFJngaqUWdw1+fjRF7oyhwYytkzlMUIG4WfIfzvKA1Nx5YXojnGYjhqYp6gu2ujfrw sbqU8zi1wpONji5fCOxWCnxnWUx0hHPkbngiMnN7+lYLsVUkMff7xuHVDtzxah8ls/KS AzsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683601024; x=1686193024; h=mime-version:subject:references:in-reply-to:message-id:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+MO9o0LEAr/DOS42vUQ16jtl4wS3HQNYjoIAuzKMnTA=; b=NzMgiVKtjMqPLnYgOFubn2F/J5zh2tC9o9OF/UC9r9IWCU8Z6Uy9P+juwDHbMD1ooJ h66xjfwP5t1w9+EjYNekjEIFKnryw6wLX7ZiWB0Pcq8PXL54kH/N02KEmQrG943BUUQY 5SX9Zpd2fEO8d2X+mo79V4BPsxDIpmujlZeinDLxwNJ1AjYl0IdtZgBi8VdJ0zLIGKRi NIUrGZ+q3lzXQeR1b6+/LL1VtwP9SJYEbFXtKNT5U8YOoV6pX5pC9ENcBJrh5c4zdkRh T4eXFoDHxG/NmNw6d6PYrOKdIsyrEopOwAGjkZIQMuiJc4M2Nb2BOBVnCgTu4EsXph8l 1VjA== X-Gm-Message-State: AC+VfDxRI8H0B1zg8E72CZuvW+ng8Nfg9z9H3ay6oI4sfqxdhVDG6Ioq J3sF69pIOkjuhqztbcxsHgo= X-Google-Smtp-Source: ACHHUZ4EFks7G2gk3b0uV7W2pcQNpVC2ybtHrJJW/p3T3uDcd55+HNDiM+8dVYm6ZL5w5NwuKrr6SA== X-Received: by 2002:a05:600c:22ca:b0:3f4:2158:289b with SMTP id 10-20020a05600c22ca00b003f42158289bmr5451434wmg.18.1683601024335; Mon, 08 May 2023 19:57:04 -0700 (PDT) Received: from [192.168.86.143] ([152.37.102.187]) by smtp.gmail.com with ESMTPSA id o17-20020a5d4091000000b003078a3f3a24sm9030597wrp.114.2023.05.08.19.57.03 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 May 2023 19:57:03 -0700 (PDT) Date: Tue, 9 May 2023 03:56:46 +0100 From: Jimmy Wong Message-ID: <5727a6ad-b2c6-4c8f-ac85-b6478c57a749@Spark> In-Reply-To: <83h6snc9ms.fsf@gnu.org> References: <873547jeig.fsf@posteo.net> <83h6snc9ms.fsf@gnu.org> X-Readdle-Message-ID: 5727a6ad-b2c6-4c8f-ac85-b6478c57a749@Spark MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="6459b67e_6d501062_115a" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --6459b67e_6d501062_115a Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline I don=E2=80=99t think you should dedup the variable that could have been = modified by something else such as package-install. This may make debuggi= ng harder should package.el itself introduce a bug that duplicates pacaka= ges in the variable. How about just using good old add-to-list=3F On 8 May 2023 at 1:03 PM +0100, Eli Zaretskii , wrote: > > Cc: 63338=40debbugs.gnu.org > > =46rom: 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 =22custom.el=22)) > > > 1. M-x package-vc-install company > > > 2. M-x package-vc-install company RET y > > > 3. C-x C-f =7E/.emacs/custom.el > > > 4. Observe that =60company=60 has been listed twice under > > > =60package-selected-packages=60. > > > > > > Expectation: > > > > > > Installing the same package twice should not result in its duplicat= ion > > > in =60package-selected-packages=60. > > > > 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. --6459b67e_6d501062_115a Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
I don=E2=80=99t 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=3F
On 8 May 2023 at 1:03 PM +0100, Eli= Zaretskii <eliz=40gnu.org>, wrote:
Cc: 63338=40debbugs.gnu.org
=46rom: Philip Kaludercic <philipk=40posteo.net>
Date: Mon, 08 May 2023 10:36:55 +0000

Jimmy Yuen Ho Wong <wyuenho=40gmail.com> writes:

Reproduction:

0. (setq custom-file (const user-emacs-directory =22custom.el=22))
1. M-x package-vc-install company
2. M-x package-vc-install company RET y
3. C-x C-f =7E/.emacs/custom.el
4. Observe that =60company=60 has been listed twice under
=60package-selected-packages=60.

Expectation:

Installing the same package twice should not result in its duplication in =60package-selected-packages=60.

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.
--6459b67e_6d501062_115a-- From unknown Sat Aug 16 23:47:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63338: 29.0.90; package-vc-install'ing the same package multiple times results in duplication in package-selected-packages Resent-From: Philip Kaludercic Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 10 May 2023 06:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63338 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Jimmy Wong Cc: Eli Zaretskii , 63338@debbugs.gnu.org Received: via spool by 63338-submit@debbugs.gnu.org id=B63338.168370177711065 (code B ref 63338); Wed, 10 May 2023 06:57:01 +0000 Received: (at 63338) by debbugs.gnu.org; 10 May 2023 06:56:17 +0000 Received: from localhost ([127.0.0.1]:45062 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pwdkH-0002sP-4m for submit@debbugs.gnu.org; Wed, 10 May 2023 02:56:17 -0400 Received: from mout01.posteo.de ([185.67.36.65]:37795) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pwdkE-0002sB-MI for 63338@debbugs.gnu.org; Wed, 10 May 2023 02:56:15 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id C03152404D1 for <63338@debbugs.gnu.org>; Wed, 10 May 2023 08:56:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1683701768; bh=1g2Q8aROlmJsraS5itNJiSKbEmatm7+5M1amYdDNrOc=; h=From:To:Cc:Subject:Autocrypt:Date:From; b=CXTPXdCC4lw6j7p696Jlss1Et3tYaMPUIKDLDeoAL1lG5ajMlMJFgGG9KLTzKcAkb 2WBqtOsoJzRrZpY2HSizFCgjtH8Ne+0zh+8NPQVuCOGm/9OvKEVZ9lT4h/9W3T6xOv d8FZwisMN2GGJCrLNnULv29buJNq3Jh75q52LAT+Fo50WUAKnYiFGQBg/WnFpGmPBc PbIiRkJLL3idi0CF3ABm2H64qFq03jM5xP0UOT4E5FsVcVd/Oe49bYQEnN77KIRI9b JeuJTI8x0tKEEvCAQCwhfYYNhepEUhnxnPuRJy0zrdMVHIzCWCeEer4cGdBCcrhB5Z poUGg5XGFxc5g== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4QGQm80lcwz9rxN; Wed, 10 May 2023 08:56:08 +0200 (CEST) From: Philip Kaludercic In-Reply-To: <5727a6ad-b2c6-4c8f-ac85-b6478c57a749@Spark> (Jimmy Wong's message of "Tue, 9 May 2023 03:56:46 +0100") References: <873547jeig.fsf@posteo.net> <83h6snc9ms.fsf@gnu.org> <5727a6ad-b2c6-4c8f-ac85-b6478c57a749@Spark> Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM Date: Wed, 10 May 2023 06:56:07 +0000 Message-ID: <87h6skfzeg.fsf@posteo.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Jimmy Wong writes: > I don=E2=80=99t 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: --=-=-= Content-Type: text/plain Content-Disposition: inline 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 --=-=-= Content-Type: text/plain > 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. --=-=-=-- From unknown Sat Aug 16 23:47:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63338: 29.0.90; package-vc-install'ing the same package multiple times results in duplication in package-selected-packages Resent-From: Philip Kaludercic Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 May 2023 17:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63338 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Jimmy Wong Cc: Eli Zaretskii , 63338@debbugs.gnu.org Received: via spool by 63338-submit@debbugs.gnu.org id=B63338.168399832410127 (code B ref 63338); Sat, 13 May 2023 17:19:02 +0000 Received: (at 63338) by debbugs.gnu.org; 13 May 2023 17:18:44 +0000 Received: from localhost ([127.0.0.1]:39495 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pxstH-0002dG-HW for submit@debbugs.gnu.org; Sat, 13 May 2023 13:18:43 -0400 Received: from mout02.posteo.de ([185.67.36.66]:36157) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pxstG-0002d4-7Z for 63338@debbugs.gnu.org; Sat, 13 May 2023 13:18:42 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id B3A31240105 for <63338@debbugs.gnu.org>; Sat, 13 May 2023 19:18:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1683998316; bh=ejtRnX/Vc0owsHfBttITD46z3TlRgkDcIaD499NpI0U=; h=From:To:Cc:Subject:Autocrypt:Date:Message-ID:MIME-Version: Content-Transfer-Encoding:From; b=gH21ridTzZq0uFtmUjMP8mYPtifMmYKrZMSD2p3Giz62/makl6tAMFeAPYghCTtLG TnvMhahmlW0bVdSmuxsbQMscO8Fk/VUN6zK8hA6U9AGDjimVq7NmIvfDHSxDC9DG2Q Ew9+hMMHOeCvPweBQbLZQOB/KLiOL4gx5uOcOKsZgKDt33ierNYiULifgCb3cdpS6J e5f5mktHN5EOnQwfHvUQv97wYe/8GQUIaCxVf41iKUAUgGb0/6RFXhXzjP1Py1NWbD ZrrVGuzpoHdDM5k5osQQdlRB7kkQcbl7JmbFfdv+MmFrAX/UgNYTmlgDHvGn4oNJHp M8fqZYu9G2/iQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4QJXR02Qnpz6txR; Sat, 13 May 2023 19:18:36 +0200 (CEST) From: Philip Kaludercic In-Reply-To: <87h6skfzeg.fsf@posteo.net> (Philip Kaludercic's message of "Wed, 10 May 2023 06:56:07 +0000") References: <873547jeig.fsf@posteo.net> <83h6snc9ms.fsf@gnu.org> <5727a6ad-b2c6-4c8f-ac85-b6478c57a749@Spark> <87h6skfzeg.fsf@posteo.net> Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM Date: Sat, 13 May 2023 17:18:35 +0000 Message-ID: <87mt28880k.fsf@posteo.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) ping? Philip Kaludercic writes: > Jimmy Wong writes: > >> I don=E2=80=99t 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))) >=20=20 > ;; 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) >=20=20 > ;; 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 duplicat= ion >>> > > 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. From unknown Sat Aug 16 23:47:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63338: 29.0.90; package-vc-install'ing the same package multiple times results in duplication in package-selected-packages Resent-From: Jimmy Wong Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 14 May 2023 12:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63338 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Philip Kaludercic Cc: Eli Zaretskii , 63338@debbugs.gnu.org Received: via spool by 63338-submit@debbugs.gnu.org id=B63338.16840687147797 (code B ref 63338); Sun, 14 May 2023 12:52:02 +0000 Received: (at 63338) by debbugs.gnu.org; 14 May 2023 12:51:54 +0000 Received: from localhost ([127.0.0.1]:40550 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pyBCb-00021f-GH for submit@debbugs.gnu.org; Sun, 14 May 2023 08:51:53 -0400 Received: from mail-wr1-f54.google.com ([209.85.221.54]:47338) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pyBCZ-00021S-7w for 63338@debbugs.gnu.org; Sun, 14 May 2023 08:51:52 -0400 Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-30786c87cdaso8981028f8f.2 for <63338@debbugs.gnu.org>; Sun, 14 May 2023 05:51:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684068705; x=1686660705; h=mime-version:subject:references:in-reply-to:message-id:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=NjrX+YSmGjcz8gSmyVhyS4Kuf9DaPVO4YfHYtu3wYA0=; b=NWxirBCZguKKTlsPOrlWVsmyFv9CSiZwV18AE7RKJnaG4jFR2yZzQLsA0L4Xj/iFp4 41LqDZKrOA3LAnlzJ2FgTz4lRZrnudlQ5VFT0EVyeccjfI2rHrZEVaeW377dZ3ua6Sj7 Cgsbp2rBgFwJo15N89eDJZtx9jY+1f7tMBmYSrc2hQSKvuNzSq2ANWe1Tg4tyVZHnWTd cvP1oBo9EVOfIFYNawA7vfhB+IZtQYQ8kAJEnTE4rD2A8jAINNbfL9YvYVp4hXfASLwP Y4ISEGu15LOy3G2D5zea/OtNBo3YCctY7pLwBVbkXlooFH2r9iyOlJpXoykb2wHKM6s8 rzFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684068705; x=1686660705; h=mime-version:subject:references:in-reply-to:message-id:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=NjrX+YSmGjcz8gSmyVhyS4Kuf9DaPVO4YfHYtu3wYA0=; b=D9IgQE/wcnUPLq2XtnDT4dh6Ky+x+lf0UosBtgisQRWzA4fgWAZR9L7s6cNFi6YiCR +y6HFileIIumXgijy0yOxmy1si3/vRrml5exI+Vk5YygznEWQtyLeVa6uQJzSR2Ial1W JhNjGeVm0V8efBjvW0KGicjLfxWCC0gGXxJtw7gGpn4QHbwKoUSjK5UNgEAt+jPhiHVN zI3tXFc+YA31c8+fp0v0z+CdB2cAhH6R+EvBuNmVu4333baeuQgxPDgegrmACvLoHArg 5pszk2kAAUMgyU5h/o97TBthhon5iwz+Vfmt3NYsKIR8ZmUp4vVR+hzWsbtbAc3MxL51 OXpw== X-Gm-Message-State: AC+VfDwzOx9U0+U6nBajnfRA/qRjFbQlLgL6HloD1d4zAfONesVqc0Qf cuGryy3+egeI6KyPCTUCmAs= X-Google-Smtp-Source: ACHHUZ7Ydj74LqFUzZIZy3PTWnILpYkuR63Z1DG1Gh0ndzXMjWfiLL0jEC56FDsFOavjIGxyoeK2Hg== X-Received: by 2002:adf:e787:0:b0:2f6:519c:6aa6 with SMTP id n7-20020adfe787000000b002f6519c6aa6mr22993936wrm.9.1684068705061; Sun, 14 May 2023 05:51:45 -0700 (PDT) Received: from [192.168.86.97] ([152.37.102.187]) by smtp.gmail.com with ESMTPSA id h14-20020a5d6e0e000000b0030631dcbea6sm29239808wrz.77.2023.05.14.05.51.44 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 14 May 2023 05:51:44 -0700 (PDT) Date: Sun, 14 May 2023 13:51:38 +0100 From: Jimmy Wong Message-ID: In-Reply-To: <87mt28880k.fsf@posteo.net> References: <873547jeig.fsf@posteo.net> <83h6snc9ms.fsf@gnu.org> <5727a6ad-b2c6-4c8f-ac85-b6478c57a749@Spark> <87h6skfzeg.fsf@posteo.net> <87mt28880k.fsf@posteo.net> X-Readdle-Message-ID: baf82aa8-e9b6-47b0-90db-a382dce77210@Spark MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="6460d95f_3c1fe6c6_b973" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --6460d95f_3c1fe6c6_b973 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline This is acceptable to me On 13 May 2023 at 6:18 PM +0100, Philip Kaludercic = , wrote: > ping=3F > > Philip Kaludercic writes: > > > Jimmy Wong writes: > > > > > I don=E2=80=99t 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=3F > > > > The issue is that we want to go through package--save-selected-packag= es, > > that is given a new value to assign to =60package-selected-packages'.= > > An otherwise, I my understanding is that add-to-list is not conventio= nal > > in executed code. > > > > The alternative is to check for duplicates before invoking the functi= on: > > > > 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 > > =40=40 -507,9 +507,10 =40=40 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 , wro= te: > > > > > Cc: 63338=40debbugs.gnu.org > > > > > =46rom: 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 =22custom.el= =22)) > > > > > > 1. M-x package-vc-install company > > > > > > 2. M-x package-vc-install company RET y > > > > > > 3. C-x C-f =7E/.emacs/custom.el > > > > > > 4. Observe that =60company=60 has been listed twice under > > > > > > =60package-selected-packages=60. > > > > > > > > > > > > Expectation: > > > > > > > > > > > > Installing the same package twice should not result in its du= plication > > > > > > in =60package-selected-packages=60. > > > > > > > > > > An easy fix would be just to ensure that package-selected-packa= ges is > > > > > always deduplicated before assigning the value: > > > > > > > > This is OK for the emacs-29 branch, thanks. --6460d95f_3c1fe6c6_b973 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
This is acceptable to me
On 13 May 2023 at 6:18 PM +0100, Ph= ilip Kaludercic <philipk=40posteo.net>, wrote:
ping=3F

Philip Kaludercic <philipk=40posteo.net> writes:

Jimmy Wong <wyuenho=40gmail.com> writ= es:

I don=E2=80=99t 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=3F

The issue is that we want to go through package--save-selected-packages,<= br /> that is given a new value to assign to =60package-selected-packages'.
An otherwise, I my understanding is that add-to-list is not conventional<= br /> in executed code.

The alternative is to check for duplicates before invoking the function:<= br />
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.e= l
index e9794eac783..b967aaa3d4d 100644
--- a/lisp/emacs-lisp/package-vc.el
+++ b/lisp/emacs-lisp/package-vc.el
=40=40 -507,9 +507,10 =40=40 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 Zaretsk= ii <eliz=40gnu.org>, wrote:
Cc: 63338=40debbugs.gnu.org
=46rom: Philip Kaludercic <philipk=40posteo.net>
Date: Mon, 08 May 2023 10:36:55 +0000

Jimmy Yuen Ho Wong <wyuenho=40gmail.com> writes:

Reproduction:

0. (setq custom-file (const user-emacs-directory =22custom.el=22))
1. M-x package-vc-install company
2. M-x package-vc-install company RET y
3. C-x C-f =7E/.emacs/custom.el
4. Observe that =60company=60 has been listed twice under
=60package-selected-packages=60.

Expectation:

Installing the same package twice should not result in its duplication in =60package-selected-packages=60.

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.
--6460d95f_3c1fe6c6_b973-- From unknown Sat Aug 16 23:47:08 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Jimmy Yuen Ho Wong Subject: bug#63338: closed (Re: bug#63338: 29.0.90; package-vc-install'ing the same package multiple times results in duplication in package-selected-packages) Message-ID: References: <87v8gs9ipl.fsf@posteo.net> X-Gnu-PR-Message: they-closed 63338 X-Gnu-PR-Package: emacs Reply-To: 63338@debbugs.gnu.org Date: Tue, 16 May 2023 19:32:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1684265522-23030-1" This is a multi-part message in MIME format... ------------=_1684265522-23030-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #63338: 29.0.90; package-vc-install'ing the same package multiple times res= ults in duplication in package-selected-packages which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 63338@debbugs.gnu.org. --=20 63338: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D63338 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1684265522-23030-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 63338-done) by debbugs.gnu.org; 16 May 2023 19:31:26 +0000 Received: from localhost ([127.0.0.1]:48123 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pz0OM-0005yd-H9 for submit@debbugs.gnu.org; Tue, 16 May 2023 15:31:26 -0400 Received: from mout02.posteo.de ([185.67.36.66]:35687) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pz0OK-0005yQ-4O for 63338-done@debbugs.gnu.org; Tue, 16 May 2023 15:31:24 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 9D55624011A for <63338-done@debbugs.gnu.org>; Tue, 16 May 2023 21:31:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1684265478; bh=3XNOykS+e+J/0EnRG2rVPOBC3juWp9kRJkGlialSDCw=; h=From:To:Cc:Subject:Autocrypt:Date:Message-ID:MIME-Version:From; b=VWR/Kn8IvGmdtmMv1Bm5+zgi1cV93VH77Ym8lpaX9tBO3oBJ0+xh7ZELfyxLz9KTm Te8jwJ5N1vNLuOckhIrGaCMXW+NnPXlP7R2ESnRd+NRHamOdTZXp8csWAAxQcF/kI5 TBLOpQwGdoQ7Gpzs9JelsP8Lic2AtV8wm8XhZXHvrmM/HWaDoMxJJCIDkZ9VjGY3Fe eWIoCa8bYHfBqNUZ8iYqcinviT4QepLQ3EjMtMgeIq+gON3xPwNfOyLuTynn7Pt3rH MV5WvH0c7x3EHC8Llt/MXAlgtp8dYHC92+YaDQPDGGlOWoHLqz5wXxzxFjb13Ymsw/ MB/mo26btBl4A== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4QLRDk21bnz9rxK; Tue, 16 May 2023 21:31:18 +0200 (CEST) From: Philip Kaludercic To: Jimmy Wong Subject: Re: bug#63338: 29.0.90; package-vc-install'ing the same package multiple times results in duplication in package-selected-packages In-Reply-To: (Jimmy Wong's message of "Sun, 14 May 2023 13:51:38 +0100") References: <873547jeig.fsf@posteo.net> <83h6snc9ms.fsf@gnu.org> <5727a6ad-b2c6-4c8f-ac85-b6478c57a749@Spark> <87h6skfzeg.fsf@posteo.net> <87mt28880k.fsf@posteo.net> Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM Date: Tue, 16 May 2023 19:31:18 +0000 Message-ID: <87v8gs9ipl.fsf@posteo.net> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 63338-done Cc: Eli Zaretskii , 63338-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Jimmy Wong writes: > This is acceptable to me OK, I a change like this to emacs-29. Thanks. ------------=_1684265522-23030-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 6 May 2023 23:27:51 +0000 Received: from localhost ([127.0.0.1]:35963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvRJd-0003kO-QC for submit@debbugs.gnu.org; Sat, 06 May 2023 19:27:51 -0400 Received: from lists.gnu.org ([209.51.188.17]:44860) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvRJZ-0003kD-AX for submit@debbugs.gnu.org; Sat, 06 May 2023 19:27:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvRJZ-0000r8-18 for bug-gnu-emacs@gnu.org; Sat, 06 May 2023 19:27:45 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pvRJM-0004FG-7y for bug-gnu-emacs@gnu.org; Sat, 06 May 2023 19:27:44 -0400 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-3f3331f928cso21085805e9.2 for ; Sat, 06 May 2023 16:27:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683415650; x=1686007650; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=hGM/2BYId30lJtYqkpZx0MK+dkZkeIk2FJBTi3q/g6g=; b=aJxQdSaiQu2QCD+rqYczPflW2lyPlBGeyD21+72RWwscqdW1cW0X/+c8pTGLWst6WW 2gR3v7rJzezkXc2gQC3hGVj96ty3g9K/ciuLFY5huIrFWbpiMBAgzorq26QTyl/z1ph1 JKHrp3itl18+n1CYkF1g3Cwr9fF3B49wds1clzMhyP575Eu/HgjBO5orZwu1ISgdqTQ1 lQs5Q7eSv7P0Z3TL+t9B2r9gpyVPFc523iQ/WR9EUCCuXCUT6EuuslzfVJfKl5T94Aaf xNqCP0bTa4YkT+off/+Su3BkheuE4odlwv+qZ+Lo1gjlbwVgvDtkKoDlc4hsKAN9BFvd R8yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683415650; x=1686007650; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=hGM/2BYId30lJtYqkpZx0MK+dkZkeIk2FJBTi3q/g6g=; b=mAX4G7W92okbWxG6+gUhWybJjd8qPGEbVY8e+0bdKRHeOibZRWeZR7mBKw5OnAOoPu O/IyS68z8sVeJ72ew+kkDFmTFIGZlmp3w8JflElJEiodtmGKHG8n+mETV3V6uZL+PQPo 9U48yqXV8JsRw01zp2heeycmvQHmvIeds7+R9xNzJh87xBm7hZYT6VpyNv8EGF5EmtnT dToTeo5/ffgob5tFWJuQxvwOnLGoLddoilwh5kaKl/pro/kgEg+cxBmxEmEvapDX133D 7+cbYJmDsZNGYQRVebHXhUi6EyGZRQCtWbO/lIcEXwxwc6YfB+egKROuPa17F0sHwSzY 5lWg== X-Gm-Message-State: AC+VfDyaKzoAcRoMWCVEzz1/01yOP5XlTBLmWBvjq5bjTvuy54cFYhN1 IkHrvyQIlp1V7+IZeFXwz7crXJJ+SnE= X-Google-Smtp-Source: ACHHUZ5iNQURYTCmHjtiEkJ2t+EtsEHp1uDoradp1tFQhqDc32mm3gW4A+URSgIkFuKHtYpTUMaPxg== X-Received: by 2002:a7b:c7d6:0:b0:3f1:72ec:4024 with SMTP id z22-20020a7bc7d6000000b003f172ec4024mr3927757wmk.21.1683415649369; Sat, 06 May 2023 16:27:29 -0700 (PDT) Received: from MobileCat.localdomain ([2a01:4b00:89a0:2400:1881:f28:f743:c6cd]) by smtp.gmail.com with ESMTPSA id q7-20020a1ce907000000b003f180d5b145sm12126916wmc.40.2023.05.06.16.27.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 06 May 2023 16:27:28 -0700 (PDT) From: Jimmy Yuen Ho Wong To: bug-gnu-emacs@gnu.org Subject: 29.0.90; package-vc-install'ing the same package multiple times results in duplication in package-selected-packages Date: Sun, 07 May 2023 00:27:24 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=wyuenho@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) 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`. In GNU Emacs 29.0.90 (build 1, aarch64-apple-darwin22.4.0, NS appkit-2299.50 Version 13.3.1 (a) (Build 22E772610a)) of 2023-05-04 built on MobileCat.localdomain Windowing system distributor 'Apple', version 10.3.2299 System Description: macOS 13.3.1 Configured using: 'configure --prefix=/opt/local --disable-silent-rules --without-dbus --without-gconf --without-libotf --without-m17n-flt --with-libgmp --with-gnutls --with-json --with-xml2 --with-modules --infodir /opt/local/share/info/emacs --with-sqlite3 --with-webp --with-ns --with-lcms2 --without-harfbuzz --without-imagemagick --without-xaw3d --with-tree-sitter --with-rsvg --with-xwidgets --with-native-compilation=aot 'CFLAGS=-pipe -Os -Wno-attributes -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch arm64' 'CPPFLAGS=-I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk' 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath /opt/local/lib/gcc12 -Wl,-no_pie -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch arm64'' Configured features: ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XWIDGETS ZLIB Important settings: value of $LANG: en_GB.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: which-key-mode: t smooth-scrolling-mode: t auto-compile-on-save-mode: t auto-compile-mode: t amx-mode: t pdf-occur-global-minor-mode: t global-whitespace-cleanup-mode: t whitespace-cleanup-mode: t global-move-dup-mode: t move-dup-mode: t global-aggressive-indent-mode: t magit-todos-mode: t diff-hl-flydiff-mode: t projectile-rails-global-mode: t elisp-def-mode: t company-quickhelp-mode: t company-quickhelp-local-mode: t company-prescient-mode: t rainbow-mode: t display-line-numbers-mode: t beginend-prog-mode: t page-break-lines-mode: t ido-vertical-mode: t ido-ubiquitous-mode: t crm-custom-mode: t direnv-mode: t imenu-list-minor-mode: t purpose-mode: t dap-tooltip-mode: t show-smartparens-global-mode: t show-smartparens-mode: t smartparens-global-mode: t smartparens-mode: t projectile-mode: t editorconfig-mode: t rxt-global-mode: t rxt-mode: t global-origami-mode: t origami-mode: t flx-ido-mode: t global-git-commit-mode: t global-flycheck-mode: t subword-mode: t global-diff-hl-show-hunk-mouse-mode: t diff-hl-show-hunk-mouse-mode: t global-diff-hl-mode: t diff-hl-mode: t dap-ui-many-windows-mode: t dap-ui-controls-mode: t dap-ui-mode: t dap-auto-configure-mode: t dap-mode: t treemacs-filewatch-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t csv-field-index-mode: t prescient-persist-mode: t global-company-mode: t company-mode: t windmove-mode: t yas-minor-mode: t shell-dirtrack-mode: t winner-mode: t which-function-mode: t server-mode: t savehist-mode: t save-place-mode: t recentf-mode: t minibuffer-depth-indicate-mode: t ido-everywhere: t global-so-long-mode: t global-hl-line-mode: t global-auto-revert-mode: t icomplete-vertical-mode: t icomplete-mode: t desktop-save-mode: t delete-selection-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t window-divider-mode: t buffer-read-only: t size-indication-mode: t column-number-mode: t line-number-mode: t visual-line-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t temp-buffer-resize-mode: t Load-path shadows: /Users/wyuenho/.emacs.d/elpa/all-the-icons/all-the-icons-faces hides /Users/wyuenho/.emacs.d/elpa/all-the-icons-20230505.1635/all-the-icons-faces /Users/wyuenho/.emacs.d/elpa/all-the-icons/all-the-icons-pkg hides /Users/wyuenho/.emacs.d/elpa/all-the-icons-20230505.1635/all-the-icons-pkg /Users/wyuenho/.emacs.d/elpa/all-the-icons/all-the-icons hides /Users/wyuenho/.emacs.d/elpa/all-the-icons-20230505.1635/all-the-icons /Users/wyuenho/.emacs.d/elpa/all-the-icons/all-the-icons-autoloads hides /Users/wyuenho/.emacs.d/elpa/all-the-icons-20230505.1635/all-the-icons-autoloads /Users/wyuenho/.emacs.d/elpa/cmake-mode-20230422.828/cmake-mode hides /opt/local/share/emacs/site-lisp/cmake-mode /Users/wyuenho/.emacs.d/elpa/transient-20230501.1034/transient hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/transient /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-jump hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-jump /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-ensure hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-ensure /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-core hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-core /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-delight hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-delight /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-diminish hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-diminish /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-bind-key hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-bind-key /Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-lint hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-lint Features: (shadow mail-extr emacsbug two-column misearch multi-isearch visual-regexp-steroids tabify which-key smooth-scrolling auto-compile amx cus-start pdf-occur all-the-icons-dired dired-collapse flycheck-cask flycheck-inline whitespace-cleanup-mode move-dup aggressive-indent vc-bzr vc-src vc-sccs vc-cvs vc-rcs window-purpose-x shut-up ibuffer-vc dired-hide-dotfiles shrink-path git-timemachine magit-lfs magit-todos diff-hl-flydiff projectile-rails lsp-metals lsp-sourcekit cargo rust-ts-mode yard-mode lsp-pyright pet lsp-jedi python-pytest python-isort python-black python-insert-docstring jq-format prettier flycheck-package elisp-def eterm-256color company-quickhelp company-prescient company-yasnippet quick-peek rainbow-mode display-line-numbers beginend smartparens-config smartparens-javascript smartparens-ml smartparens-rst smartparens-org smartparens-python smartparens-html smartparens-c page-break-lines lsp-ui lsp-ui-flycheck pdf-loader iedit ido-vertical-mode ido-completing-read+ crm-custom scroll-on-jump browse-kill-ring direnv exec-path-from-shell all-the-icons-data-clockface all-the-icons-data-material-icons all-the-icons-data-fluentui-system-icons all-the-icons-data-fontawesome-4 all-the-icons-data-weather-icons all-the-icons-data-vscode-codicons all-the-icons-data-octicons all-the-icons-data-mfixx all-the-icons-data-file-icons all-the-icons-data-devopicons company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-files company-clang company-capf company-cmake company-semantic company-bbdb package-vc spaceline-config solarized-dark-theme solarized-theme delight quelpa-use-package quelpa eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util exec-path-from-shell-autoloads quelpa-use-package-autoloads quelpa-autoloads yasnippet-snippets-autoloads yasnippet-snippets yarn-mode-autoloads yard-mode-autoloads imenu-list window-purpose window-purpose-fixes window-purpose-prefix-overload window-purpose-layout window-purpose-switch window-purpose-core window-purpose-configuration window-purpose-utils window-purpose-autoloads whitespace whitespace-cleanup-mode-autoloads which-key-autoloads wgrep-ag-autoloads web-mode-autoloads vundo-autoloads term/xterm xterm vterm-autoloads visual-regexp visual-regexp-steroids-autoloads visual-regexp-autoloads verb verb-autoloads mc-separate-operations rectangular-region-mode mc-mark-pop mc-edit-lines mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core multiple-cursors-autoloads use-package-autoloads dap-mouse udev-mode-autoloads tuareg tuareg-compat tuareg-opam flymake-proc flymake caml-types caml-help tuareg-autoloads caml caml-autoloads ts-comint-autoloads hcl-mode terraform-mode-autoloads hcl-mode-autoloads swift-mode-imenu swift-mode-repl swift-mode-font-lock swift-mode-fill swift-mode-standard-types swift-mode-beginning-of-defun swift-mode-indent swift-mode-lexer swift-mode-autoloads svg-lib svg-lib-autoloads string-inflection-autoloads generic ssh-config-mode-autoloads sphinx-doc-autoloads spaceline-segments spaceline powerline spaceline-autoloads solarized-palettes solarized solarized-faces solarized-theme-autoloads smooth-scrolling-autoloads smartparens-markdown smartparens-text smartparens-ruby smartparens loadhist smartparens-autoloads smart-semicolon-autoloads shut-up-autoloads shrink-path-autoloads shift-number-autoloads scroll-on-jump-autoloads sbt-mode sbt-mode-rgrep sbt-mode-comint sbt-mode-buffer sbt-mode-project sbt-mode-vars sbt-mode-autoloads haml-mode sass-mode-autoloads js c-ts-common css-mode eww url-queue shr pixel-fill kinsoku url-file svg mm-url gnus nnheader range haml-mode-autoloads ron-mode-autoloads rg rg-info-hack rg-menu rg-ibuffer rg-result wgrep-rg wgrep rg-history rg-header rg-autoloads wgrep-autoloads repeat repeat-help-autoloads reason-interaction refmt reason-indent reason-mode-autoloads rainbow-mode-autoloads quick-peek-autoloads python-pytest-autoloads python-isort-autoloads python-insert-docstring-autoloads python-docstring-autoloads python-black-autoloads protobuf-mode-autoloads rake inflections inf-ruby autoinsert projectile projectile-rails-autoloads inflections-autoloads inf-ruby-autoloads rake-autoloads editorconfig nvm iter2 prettier-autoloads iter2-autoloads nvm-autoloads powerline-separators powerline-themes powerline-autoloads po-mode-autoloads pet-autoloads pdf-links pdf-tools pdf-isearch tablist pdf-misc pdf-view pdf-cache pdf-info tq pdf-util pdf-macs pdf-tools-autoloads tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent tablist-autoloads page-break-lines-autoloads package-utils-autoloads restart-emacs-autoloads package-build package-build-badges package-recipe package-build-autoloads osx-trash-autoloads olivetti-autoloads nodejs-repl-autoloads move-dup-autoloads monky-autoloads pcre2el rxt hl-todo magit-todos-autoloads smtpmail dired-aux async async-autoloads re-builder pcre2el-autoloads magit-lfs-autoloads cmacexp macrostep macrostep-autoloads lsp-ui-doc xwidget image-mode exif lsp-ui-imenu lsp-ui-peek lsp-ui-sideline goto-addr lsp-ui-util lsp-ui-autoloads lsp lsp-sourcekit-autoloads lsp-pyright-autoloads origami lsp-origami-autoloads origami-parsers origami-autoloads view lsp-metals-treeview treemacs-extensions lsp-metals-protocol lsp-metals-autoloads scala-mode-prettify-symbols scala-mode-imenu scala-mode-map scala-mode-fontlock scala-mode-paragraph scala-mode-indent scala-mode-lib scala-mode-syntax scala-mode-autoloads lsp-jedi-autoloads dap-java lsp-java request lsp-java-autoloads request-autoloads lorem-ipsum-autoloads kurecolor-autoloads jsonian-autoloads jq-mode jq-mode-autoloads reformatter jq-format-autoloads impostman-autoloads hideshow imenu-list-autoloads imenu-anywhere-autoloads help-macro iedit-lib rect iedit-autoloads ido-vertical-mode-autoloads flx-ido memoize minibuf-eldef ido-completing-read+-autoloads memoize-autoloads ibuffer-vc-autoloads align ialign-autoloads hl-todo-autoloads highlight-indent-guides-autoloads trace edebug info-look help-fns elisp-refs helpful-autoloads groovy-mode groovy-mode-autoloads graphviz-dot-mode-autoloads graphql-mode-autoloads find-file ffap go-mode-autoloads git-timemachine-autoloads gitignore-mode gitconfig-mode gitattributes-mode git-modes-autoloads forge-list forge-commands forge-semi forge-bitbucket forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github forge-notify forge-revnote forge-pullreq forge-issue forge-topic bug-reference forge-post forge-repo forge forge-core forge-db closql buck forge-autoloads closql-autoloads sqlite emacsql-sqlite-common emacsql emacsql-compiler emacsql-autoloads ghub-graphql treepy gsexp ghub ghub-autoloads treepy-autoloads ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util magit-bookmark magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode git-commit magit-core magit-autorevert magit-margin magit-transient magit-process magit-mode magit-git magit-base magit-section crm magit-autoloads with-editor transient log-edit add-log git-commit-autoloads benchmark cursor-sensor magit-section-autoloads with-editor-autoloads edmacro kmacro compat transient-autoloads ert-x compat-macs compat-autoloads fontify-face-autoloads focus-autoloads flycheck-projectile-autoloads skeleton ibuf-macs grep ibuf-ext ibuffer ibuffer-loaddefs projectile-autoloads plantuml-mode flycheck-plantuml-autoloads plantuml-mode-autoloads package-lint flycheck-package-autoloads flycheck-inline-autoloads flycheck-golangci-lint-autoloads flycheck-cask-autoloads flycheck jka-compr flycheck-autoloads epl pkg-info-autoloads epl-autoloads flx-isearch-autoloads flx flx-ido-autoloads flx-autoloads org-element org-persist xdg org-id org-refile avl-tree cap-words superword subword ruby-mode smie rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-enc xmltok html-mode-expansions sgml-mode facemenu er-basic-expansions expand-region-core expand-region-custom expand-region-autoloads xterm-color eterm-256color-autoloads xterm-color-autoloads enh-ruby-mode-autoloads cl emmet-mode-autoloads elisp-refs-autoloads elisp-def-autoloads editorconfig-core editorconfig-core-handle editorconfig-fnmatch conf-mode editorconfig-autoloads dotenv-mode-autoloads docker-compose-mode-autoloads yaml-mode-autoloads direnv-autoloads dired-single-autoloads dired-hide-dotfiles-autoloads dired-hacks-utils dired-collapse-autoloads dired-hacks-utils-autoloads diff-hl-show-hunk diff-hl-inline-popup diff-hl-dired diff diff-hl face-remap vc-hg log-view pcvs-util vc-dir vc diff-hl-autoloads delight-autoloads default-text-scale-autoloads lsp-pwsh lsp-kotlin dap-ui lsp-treemacs gdb-mi bindat gud bui lsp-lens dap-utils xml dap-mode dap-tasks dap-launch lsp-docker dap-overlays dap-mode-autoloads bui-list bui-info bui-entry bui-core bui-history bui-button bui-utils cus-edit bui-autoloads lsp-treemacs-generic lsp-treemacs-themes treemacs-treelib lsp-treemacs-autoloads treemacs treemacs-header-line treemacs-compatibility treemacs-mode treemacs-bookmarks vc-git diff-mode vc-dispatcher treemacs-mouse-interface thunk treemacs-tags treemacs-faces treemacs-interface treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering treemacs-annotations bookmark treemacs-async treemacs-visuals treemacs-fringe-indicator treemacs-icons treemacs-themes pulse treemacs-workspaces treemacs-scope treemacs-dom treemacs-core-utils treemacs-macros treemacs-logging treemacs-customization pfuture treemacs-autoloads ace-window avy ace-window-autoloads avy-autoloads pfuture-autoloads org org-macro org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp org-table org-loaddefs cal-menu calendar cal-loaddefs hydra hydra-autoloads cfrs-autoloads posframe posframe-autoloads yaml lsp-docker-autoloads lsp-javascript lsp-html lsp-icons lsp-completion lsp-semantic-tokens dom lsp-mode lsp-protocol lv ht f f-shortdoc lsp-mode-autoloads lv-autoloads f-autoloads yaml-autoloads inline ht-autoloads python treesit cycle-quotes cycle-quotes-autoloads csv-mode sort csv-mode-autoloads crux-autoloads crm-custom-autoloads ov coverage-autoloads ov-autoloads pos-tip company-quickhelp-autoloads pos-tip-autoloads prescient company-prescient-autoloads char-fold prescient-autoloads native-complete company-native-complete-autoloads native-complete-autoloads tempo make-mode ispell etags fileloop generator company-dabbrev company-template company company-autoloads cmake-font-lock-autoloads rst cmake-mode-autoloads cask-mode-autoloads xref project cargo-process tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp cargo-autoloads buttercup-compat buttercup-autoloads bug-hunter ert ewoc debug backtrace bug-hunter-autoloads windmove buffer-move-autoloads advice browse-kill-ring-autoloads beginend-autoloads yasnippet auto-yasnippet-autoloads yasnippet-autoloads auto-compile-autoloads ob ob-tangle ol org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-core org-cycle org-fold org-fold-core ob-eval org-keys oc org-compat org-version org-macs format-spec ede/srecode srecode semantic/db semantic/util-modes semantic/util semantic pp semantic/tag semantic/lex semantic/fw mode-local ede/speedbar ede/files ede ede/detect ede/base ede/source eieio-speedbar speedbar ezimage dframe eieio-custom cedet term disp-table shell pcomplete ehelp cc-langs spinner cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs arduino-mode-autoloads ede/auto eieio-base spinner-autoloads markdown-mode apib-mode-autoloads color thingatpt noutline outline markdown-mode-autoloads amx-autoloads all-the-icons all-the-icons-dired-autoloads aggressive-indent-autoloads vc-svn find-dired dash ag-autoloads info dash-autoloads s add-node-modules-path-autoloads s-autoloads finder find-func package-lint-autoloads reformatter-autoloads all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons compile comint ansi-osc ansi-color all-the-icons-autoloads loaddefs-gen lisp-mnt radix-tree tar-mode arc-mode archive-mode finder-inf mm-archive message sendmail yank-media dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 gnus-util text-property-search mailabbrev gmm-utils mailheader mm-decode mm-bodies mm-encode mail-utils gnutls network-stream url-cache url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm puny epg-config winner ring which-func imenu server savehist saveplace recentf tree-widget wid-edit package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source eieio eieio-core password-cache json url-vars mb-depth ido help-at-pt so-long hl-line autorevert icomplete desktop frameset delsel use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core map byte-opt let-alist filenotify cus-load time-date comp comp-cstr warnings icons subr-x rx cl-seq cl-macs cl-extra help-mode bytecomp byte-compile gv pcase bootstrap-theme cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads xwidget-internal kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 2754798 929244) (symbols 48 129069 796) (strings 32 514353 275062) (string-bytes 1 15792171) (vectors 16 254829) (vector-slots 8 6368133 1332292) (floats 8 1804 6041) (intervals 56 16202 12601) (buffers 984 117)) ------------=_1684265522-23030-1--