Tags: patch 0. cd "$(mktemp -d)" 1. touch .dir-locals.el 2. HOME="${PWD}" XDG_CONFIG_HOME="${PWD}/.config" emacs-28.2 3. M-x toggle-debug-on-error RET 4. M-: (setq project-vc-extra-root-markers (list dir-locals-file)) RET 5. M-x package-install RET eglot RET 6. C-x p g Package-Requires RET Debugger entered--Lisp error: (void-function xref-show-xrefs) xref-show-xrefs(#f(compiled-function (&rest args2) #) nil) project-find-regexp("Package-Requires") funcall-interactively(project-find-regexp "Package-Requires") call-interactively(project-find-regexp nil nil) command-execute(project-find-regexp) Emacs 28 ships with Xref 1.3.0, and without Eglot. Eglot depends on Project 0.9.3 directly and on Xref 1.4.0 transitively. Yet package.el for some reason deems that the built-in Xref 1.3.0 satisfies this requirement, and does not pull a more recent version from GNU ELPA. [ BTW, there is nothing special about steps 1, 4, 6 in the recipe above: they just demonstrate that the expected version of Xref is missing. ] At first glance this sounds like a package.el bug, but since there won't be an Emacs 28.3, and until someone checks whether it's present in Emacs 29+, perhaps something like the following is needed as a workaround?