Hello, Arun Isaac writes: >> As far as I understand it, it was done for purpose: some packages >> include "uninteresting" (for tests, maintenance, etc.) *.el files in >> subdirs, that's why they are excluded by default. So probably a better >> solution would be to fix 'ert-runner' package (as it is done in commit >> b1d32ec0e23bfec1dab4c56909228a494b2b0d60, for example). WDYT? > > I agree. The solution is to fix the ert-runner package, not the > emacs-build-system. > >> This change also doesn't prevent excluding subfolders if they are truly >> unnecessary (such as tests subfolder), but this should happen due to >> explicit regexp in the exclude option, not because *all* subfolders are >> excluded. > > We adopted the policy of excluding *all* subfolders from MELPA. From > their "Recipe Format" section at https://github.com/melpa/melpa > > "Note that elisp in subdirectories is never included by default, so you > might find it convenient to separate auxiliiary files such as tests into > subdirectories to keep packaging simple." Oh. I didn't know MELPA had such a policy. This is a good point. It's nice to try to stick to whatever MELPA does, as they've pretty much become the authority in Elisp packaging IIUC. > I think this is a good policy. If we include subfolders by default, > we'll have to modify many packages with #:exclude arguments to get rid > of unnecessary subfolders. However, if we exclude subfolders by default, > we'll only have to modify fewer packages with #:include arguments. Although, for the sake of cleanliness, they enforce a project layout that discourage the organization of a project in subdirectories, which I find a bit strange. But if the lack of complaints about it in the MELPA issues tracker tells anything, it doesn't seem to be much of a bother for most projects (this might have to do with the fact that until recently most Elisp projects were organized as a single file of thousands of lines of code ;). >> I also think these arguments are redundant! I suggested to remove this >> duplication at: >> >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26559#41 > > And, I did respond at > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26559#53 > >> ... but I think the include/exclude arguments need to be duplicated in >> two places. For example, look at arguments #:strip-flags and >> #:strip-directories in the `strip' phase of the gnu-build-system. Even >> there, the default values of the arguments are repeated in two places. > Do you know of some way in which we can avoid duplication of the > arguments? Even the gnu-build-system duplicates default values of > arguments. I've decided to go with the flow and modify ert-runner so that it includes the elisp files under the 'reporters' subdirectory. I've also factorized out the default args of the include and exclude option of the emacs-build-system install phase. Please see the two patches attached. Maxim