Function: package-upgrade
package-upgrade is an autoloaded, interactive and byte-compiled
function defined in package.el.gz.
Signature
(package-upgrade NAME)
Documentation
Upgrade package NAME if a newer version exists.
NAME should be a symbol.
Probably introduced at or before Emacs version 29.1.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/package.el.gz
;;;###autoload
(defun package-upgrade (name)
"Upgrade package NAME if a newer version exists.
NAME should be a symbol."
(interactive
(list (intern (completing-read
"Upgrade package: "
(package--upgradeable-packages t) nil t))))
(cl-check-type name symbol)
(let* ((pkg-desc (cadr (assq name package-alist)))
(package-install-upgrade-built-in (not pkg-desc)))
;; `pkg-desc' will be nil when the package is an "active built-in".
(if (and pkg-desc (package-vc-p pkg-desc))
(package-vc-upgrade pkg-desc)
(when pkg-desc
(package-delete pkg-desc 'force 'dont-unselect))
(package-install name
;; An active built-in has never been "selected"
;; before. Mark it as installed explicitly.
(and pkg-desc 'dont-select)))))