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.

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."
  (interactive
   (list (completing-read
          "Upgrade package: " (package--upgradeable-packages t) nil t)))
  (let* ((package (if (symbolp name)
                      name
                    (intern name)))
         (pkg-desc (cadr (assq package 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 package
                       ;; An active built-in has never been "selected"
                       ;; before.  Mark it as installed explicitly.
                       (and pkg-desc 'dont-select)))))