Subject: bug#65283: 29.1; package-vc-install fails to install package "ement" because some dependencies installed by it are omitted from load-path

From: Adam Porter <[email-masked]>
Date: Thu, 17 Aug 2023 08:53:17 -0500

Hi Philip,

On 8/15/23 16:52, Philip Kaludercic wrote:

>> So there appears to be a bug somewhere in the package-vc library.
> 
> With a slight modification of `package-vc-install-dependencies', we can
> see in which order the dependencies are installed:
> 
> --8<---------------cut here---------------start------------->8---
> (package-vc-install-dependencies (package-desc-reqs (cadr (assoc 'ement package-archive-contents))))
> ;=> (:to-install (svg-lib persist plz taxy taxy-magit-section) :missing nil)
> ;                ^ mapc runs over this
> --8<---------------cut here---------------end--------------->8---
> 
> This made me suspect that there might be a bug in that function, and
> with these changes, the above command works 

Great.

> (I can't test it because my matrix account AFAIK isn't supported by
> Ement):
This is a bit off-topic, but would you please explain what you mean (via 
private email would be fine)?  AFAIK Ement.el should support any Matrix 
account on any homeserver.  If you've encountered a bug trying to use 
it, I'd like to fix it.

> It boils down to a lack-of-type-safety kind of bug.  It was comparing
> 'package-name with (package-name . "version string"), that always ends
> up being nil.

I've encountered similar issues when dealing with package.el functions. 
The inconsistent use of types can be challenging to work with.

> Not sure about the change to `dependent-order', I'll have to think about
> that in more detail tomorrow.  Perhaps there is an all-together shorter
> patch?

It seems like a reasonable patch to me.

Is there any chance of getting this fix to Emacs 29 users, either via a 
29.2 release or by putting a new version of package-vc on GNU ELPA?  It 
would be a shame for this great new feature to be unusable (or 
unreliable) until Emacs 30 is released.

Thanks for your work,
Adam