Subject: Re: bug#64985: 29.1; [PATCH] Byte-compilation of packages via package-vc doesn't correctly handle .elpaignore wildcards

From: Eli Zaretskii <[email-masked]>
Date: Tue, 01 Aug 2023 14:21:59 +0300

> Date: Mon, 31 Jul 2023 23:20:21 -0700
> From: Jim Porter <[email-masked]>
> 
> When using the various package-vc installation functions, Emacs 
> byte-compiles the source (good). However, it doesn't ignore sources that 
> match wildcards in ".elpaignore" (bad). That's because, even though 
> 'byte-compile-ignore-files' is documented to be a list of regexps, 
> 'byte-recompile-directory' treats it as a list of strings.
> 
> To reproduce this, install a package via VC, for example via M-x 
> package-vc-install RET https://github.com/jimporter/urgrep.git RET. Then 
> notice how "urgrep-tests.el" got compiled, even though it matches a 
> wildcard in ".elpaignore".
> 
> Patch attached to fix this. Eli, would this be safe enough for 29.2? 
> 'byte-compile-ignore-files' is a new feature in 29.1, so hopefully no 
> one else is relying on its current semantics just yet.

If Philip and Stefan agree with the patch, I don't mind installing it
on the release branch.  byte-compile-ignore-files is (a) not
documented anywhere except in its doc string, and (b) is a defvar, so
kind-of internal.  So who will tell us whether the doc string is right
and the code wrong, or the other way around?

Btw, do we have somewhere the documentation of all those features,
including the .elpaignore file and what it can include?  I don't see
this documented anywhere, so it's a small wonder people make such
mistakes (if they are mistakes).