On Mon, Aug 10, 2020 at 2:17 AM Dmitry Gutov wrote: > > Hi Philip! > > On 08.08.2020 19:42, Philip K. wrote: > > > after loading project.el into Emacs 26.3, I noticed that > > project-find-regexp doesn't work, because the xref--show-xrefs function > > has changed it's parameter interpretation. While project.el assumes it > > accepts a function, 26.3's Xref assumes it will recieve a list > > ("xrefs"). There command then fails with a somewhat cryptic error > > message, that probably doesn't make sense for Elisp programmers. > > Thank you very much for testing this. > > > I managed to fix this by installing a newer Xref version from ELPA, but > > I think this situation should be handled more gracefully. Is there a > > reason that project.el doesn't depend on the newer Xref version? > > Unfortunately, that would make project.el and xref recursively depend on > each other. And apparently that would be a problem: > https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg01615.html > > I'm not sure what's the best way to fix this. Cyclic dependencies are bad in any packaging system. If two packages depend on each other as a cycle, they are for packaging purposes "the same package". So Stefan's suggestion to make a multi-file-package seems sensible. The other common way to solve this is to split one of the packages, breaking the cycle. Or maybe creating a third "interface" package and adding an indirection (not sure if that's what Philip is suggesting). So there seem to be escape hatches here, the best one is found by looking exactly at what breaks, what are the external interfaces of each package, why and where they _need_ to depend on each other. I'm afraid I don't have time to do this right now. João