 (defun doom-update-package (name &optional force-p)
   "Updates package NAME (a symbol) if it is out of date, using quelpa or
 package.el as appropriate."
+  (cl-check-type name symbol)
+  (doom-initialize-packages)
   (unless (package-installed-p name)
     (user-error "%s isn't installed" name))
   (when (doom-package-different-backend-p name)

  "Determine whether NAME (a symbol) is outdated or not. If outdated, returns a
list, whose car is NAME, and cdr the current version list and latest version
list of the package."
  (cl-assert (symbolp name) t)
  (when-let* ((desc (cadr (assq name package-alist))))
    (let* ((old-version (package-desc-version desc))
           (new-version

;;;###autoload
(defun doom-get-depending-on (name)
  "Return a list of packages that depend on the package named NAME."
  (cl-check-type name symbol)
  (when (package-built-in-p name)
    (error "Can't get the dependency tree for built-in packages"))
  (if-let* ((desc (cadr (assq name package-alist))))
      (mapcar #'package-desc-name (package--used-elsewhere-p desc nil t))
    (error "Couldn't find %s, is it installed?" name)))

;;;###autoload
(defun doom-get-dependencies-for (name &optional only)
  "Return a list of dependencies for a package."
  (cl-check-type name symbol)
  (when (package-built-in-p name)
    (error "Can't get the dependency tree for built-in packages"))
  (package--get-deps name only))
