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.

View in manual

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