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

From: Philip Kaludercic <[email-masked]>
Date: Thu, 17 Aug 2023 14:08:37 +0000

Adam Porter <[email-masked]> writes:

> 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.

I misphrased my comment, what I meant to say was that my server appears
to only support Element right now.  So nothing is wrong with Ement.

>> 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.

The best way to solve this is my experience is to provide helper
functions like `package-equal' or something like that smooth over
smaller mistakes like this.

>> 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.

I would expect that this patch would be applied to the emacs-29 branch.
There has been a discussion on the topic of adding both package.el and
package-vc.el to ELPA, but there hasn't been any further discussion for
a few months now.

> Thanks for your work,
> Adam