* bug#27222: emacs-build-system install phase doesn't honor directory hierarchy @ 2017-06-03 23:02 Maxim Cournoyer 2017-06-04 6:53 ` bug#27222: [PATCH] " Maxim Cournoyer 2017-06-06 16:35 ` bug#27222: [PATCH] Fix ert-runner regression (was: emacs-build-system install phase doesn't honor directory hierarchy) Maxim Cournoyer 0 siblings, 2 replies; 18+ messages in thread From: Maxim Cournoyer @ 2017-06-03 23:02 UTC (permalink / raw) To: 27222 It seems the recent changes made to the emacs-build-system broke ert-runner; it always output the following: Invalid reporter: dot A quick investigation revealed that ert-runner.el is looking for reporters under the reporters/ sudbdirectory. Here's the arborescence in the original source: --8<---------------cut here---------------start------------->8--- find . -name '*.el' ./reporters/ert-runner-reporter-ert.el ./reporters/ert-runner-reporter-dot.el ./features/step-definitions/ert-runner-steps.el ./features/support/env.el ./ert-runner.el ./ert-compat.el --8<---------------cut here---------------end--------------->8--- And here's what got installed in the store: --8<---------------cut here---------------start------------->8--- find . -name '*.el' ./ert-runner-autoloads.el ./ert-runner.el ./ert-compat.el --8<---------------cut here---------------end--------------->8--- I'm guessing the current inclusion regexp: (include '("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) must be extended/adapted. What should "^[^/]*\\.el$" become? I've tried ".*\\.el" without success. Ideas? Maxim ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy 2017-06-03 23:02 bug#27222: emacs-build-system install phase doesn't honor directory hierarchy Maxim Cournoyer @ 2017-06-04 6:53 ` Maxim Cournoyer 2017-06-04 12:59 ` Alex Kost 2017-06-06 16:35 ` bug#27222: [PATCH] Fix ert-runner regression (was: emacs-build-system install phase doesn't honor directory hierarchy) Maxim Cournoyer 1 sibling, 1 reply; 18+ messages in thread From: Maxim Cournoyer @ 2017-06-04 6:53 UTC (permalink / raw) To: 27222 [-- Attachment #1: Type: text/plain, Size: 339 bytes --] Hello, The previous regexp would have worked, but what got me was that the default keyword arguments values were duplicated (and I was fixing the useless version in build/emac-build-system.scm instead of the one used in build-system/emacs.scm). The attached patch fixes this particular problem (tested with ert-runner). Thanks, Maxim [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-build-system-emacs-Install-elisp-files-from-subdirec.patch --] [-- Type: text/x-patch, Size: 2028 bytes --] From a035d07dfa6cbddccfa0476e2009d19bdf296941 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer <maxim.cournoyer@gmail.com> Date: Sat, 3 Jun 2017 23:43:02 -0700 Subject: [PATCH] build-system: emacs: Install elisp files from subdirectories * guix/build/emacs-build-system.scm (install)[include]: Get rid of default value. [exclude]: Likewise. * guix/build/emacs-build-system.scm (emacs-build)[include]: Modify default regexp value so that elisp files get matched (and installed) for any directory depth level. --- guix/build-system/emacs.scm | 2 +- guix/build/emacs-build-system.scm | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm index 9a46ecfd2..a97fcedc3 100644 --- a/guix/build-system/emacs.scm +++ b/guix/build-system/emacs.scm @@ -83,7 +83,7 @@ (phases '(@ (guix build emacs-build-system) %standard-phases)) (outputs '("out")) - (include ''("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) + (include ''("\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) (exclude ''("^\\.dir-locals\\.el$" "-pkg\\.el$" "^[^/]*tests?\\.el$")) (search-paths '()) (system (%current-system)) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index 50af4be36..1373cb6f7 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -95,10 +95,7 @@ store in '.el' files." (substitute-cmd)))) #t)) -(define* (install #:key outputs - (include '("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) - (exclude '("^\\.dir-locals\\.el$" "-pkg\\.el$" "^[^/]*tests?\\.el$")) - #:allow-other-keys) +(define* (install #:key outputs include exclude #:allow-other-keys) "Install the package contents." (define source (getcwd)) -- 2.13.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy 2017-06-04 6:53 ` bug#27222: [PATCH] " Maxim Cournoyer @ 2017-06-04 12:59 ` Alex Kost 2017-06-04 16:44 ` Maxim Cournoyer ` (2 more replies) 0 siblings, 3 replies; 18+ messages in thread From: Alex Kost @ 2017-06-04 12:59 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 27222 I Cc-ed Arun, the author of the mentioned change (commit d879685176d23c111f4fc665698251b25cdf9124). [...] > From a035d07dfa6cbddccfa0476e2009d19bdf296941 Mon Sep 17 00:00:00 2001 > From: Maxim Cournoyer <maxim.cournoyer@gmail.com> > Date: Sat, 3 Jun 2017 23:43:02 -0700 > Subject: [PATCH] build-system: emacs: Install elisp files from subdirectories > > * guix/build/emacs-build-system.scm (install)[include]: Get rid of default > value. > [exclude]: Likewise. > * guix/build/emacs-build-system.scm (emacs-build)[include]: Modify default > regexp value so that elisp files get matched (and installed) for any directory > depth level. > --- > guix/build-system/emacs.scm | 2 +- > guix/build/emacs-build-system.scm | 5 +---- > 2 files changed, 2 insertions(+), 5 deletions(-) > > diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm > index 9a46ecfd2..a97fcedc3 100644 > --- a/guix/build-system/emacs.scm > +++ b/guix/build-system/emacs.scm > @@ -83,7 +83,7 @@ > (phases '(@ (guix build emacs-build-system) > %standard-phases)) > (outputs '("out")) > - (include ''("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) > + (include ''("\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) 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? > (exclude ''("^\\.dir-locals\\.el$" "-pkg\\.el$" "^[^/]*tests?\\.el$")) > (search-paths '()) > (system (%current-system)) > diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm > index 50af4be36..1373cb6f7 100644 > --- a/guix/build/emacs-build-system.scm > +++ b/guix/build/emacs-build-system.scm > @@ -95,10 +95,7 @@ store in '.el' files." > (substitute-cmd)))) > #t)) > > -(define* (install #:key outputs > - (include '("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) > - (exclude '("^\\.dir-locals\\.el$" "-pkg\\.el$" "^[^/]*tests?\\.el$")) > - #:allow-other-keys) > +(define* (install #:key outputs include exclude #:allow-other-keys) > "Install the package contents." I also think these arguments are redundant! I suggested to remove this duplication at: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26559#41 -- Alex ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy 2017-06-04 12:59 ` Alex Kost @ 2017-06-04 16:44 ` Maxim Cournoyer 2017-06-04 19:41 ` Alex Kost 2017-06-04 19:25 ` Arun Isaac [not found] ` <0efe58d4.AEUAK47aAUsAAAAAAAAAAAO2CsUAAAACwQwAAAAAAAW9WABZNF6l@mailjet.com> 2 siblings, 1 reply; 18+ messages in thread From: Maxim Cournoyer @ 2017-06-04 16:44 UTC (permalink / raw) To: Alex Kost; +Cc: 27222 Hello, Alex Kost <alezost@gmail.com> writes: > I Cc-ed Arun, the author of the mentioned change (commit > d879685176d23c111f4fc665698251b25cdf9124). > > [...] >> From a035d07dfa6cbddccfa0476e2009d19bdf296941 Mon Sep 17 00:00:00 2001 >> From: Maxim Cournoyer <maxim.cournoyer@gmail.com> >> Date: Sat, 3 Jun 2017 23:43:02 -0700 >> Subject: [PATCH] build-system: emacs: Install elisp files from subdirectories >> >> * guix/build/emacs-build-system.scm (install)[include]: Get rid of default >> value. >> [exclude]: Likewise. >> * guix/build/emacs-build-system.scm (emacs-build)[include]: Modify default >> regexp value so that elisp files get matched (and installed) for any directory >> depth level. >> --- >> guix/build-system/emacs.scm | 2 +- >> guix/build/emacs-build-system.scm | 5 +---- >> 2 files changed, 2 insertions(+), 5 deletions(-) >> >> diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm >> index 9a46ecfd2..a97fcedc3 100644 >> --- a/guix/build-system/emacs.scm >> +++ b/guix/build-system/emacs.scm >> @@ -83,7 +83,7 @@ >> (phases '(@ (guix build emacs-build-system) >> %standard-phases)) >> (outputs '("out")) >> - (include ''("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) >> + (include ''("\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) > > 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 acknowledge the intent, but I think the default set of rexgeps should be more lenient; filtering (inoffensive) files is desirable, but not at the cost of breaking perfectly valid packages. That's one extra hurdle the packagers shouldn't have to bear in my opinion. 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. What do you think? Maxim ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy 2017-06-04 16:44 ` Maxim Cournoyer @ 2017-06-04 19:41 ` Alex Kost 0 siblings, 0 replies; 18+ messages in thread From: Alex Kost @ 2017-06-04 19:41 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 27222 Maxim Cournoyer (2017-06-04 09:44 -0700) wrote: [...] >>> (phases '(@ (guix build emacs-build-system) >>> %standard-phases)) >>> (outputs '("out")) >>> - (include ''("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) >>> + (include ''("\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) >> >> 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 acknowledge the intent, but I think the default set of rexgeps > should be more lenient; filtering (inoffensive) files is desirable, but > not at the cost of breaking perfectly valid packages. That's one extra > hurdle the packagers shouldn't have to bear in my opinion. > > 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. > > What do you think? I think my view is not what most people would like: I am for excluding as much as possible (as it is now), and for manual adjusting packages when it is needed. -- Alex ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy 2017-06-04 12:59 ` Alex Kost 2017-06-04 16:44 ` Maxim Cournoyer @ 2017-06-04 19:25 ` Arun Isaac 2017-06-05 5:07 ` Maxim Cournoyer [not found] ` <0efe58d4.AEUAK47aAUsAAAAAAAAAAAO2CsUAAAACwQwAAAAAAAW9WABZNF6l@mailjet.com> 2 siblings, 1 reply; 18+ messages in thread From: Arun Isaac @ 2017-06-04 19:25 UTC (permalink / raw) To: Alex Kost; +Cc: Maxim Cournoyer, 27222 > 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." 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. > 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. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy 2017-06-04 19:25 ` Arun Isaac @ 2017-06-05 5:07 ` Maxim Cournoyer 2017-06-05 10:03 ` Arun Isaac ` (2 more replies) 0 siblings, 3 replies; 18+ messages in thread From: Maxim Cournoyer @ 2017-06-05 5:07 UTC (permalink / raw) To: Arun Isaac; +Cc: Alex Kost, 27222 [-- Attachment #1.1: Type: text/plain, Size: 2961 bytes --] Hello, Arun Isaac <arunisaac@systemreboot.net> 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 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.2: 0001-build-system-emacs-Factorize-include-exclude-default.patch --] [-- Type: text/x-patch, Size: 3709 bytes --] From 626eb2b0551aee16836b7ec796a8ad1759be5a52 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer <maxim.cournoyer@gmail.com> Date: Sat, 3 Jun 2017 23:43:02 -0700 Subject: [PATCH 1/2] build-system: emacs: Factorize include/exclude default args The `install' phase of the emac-build-system builder side contained arguments duplicated from the higer level `emacs-build' procedure. This change factorizes them so that: 1. They are not duplicated; 2. They can be reused and extended easily when defining Emacs packages. * guix/build/emacs-build-system.scm (%default-include): New symbol. (%default-exclude): Likewise. (install)[include]: Use %default-include variable. [exclude]: Use %default exclude variable. --- guix/build-system/emacs.scm | 11 ++++++++--- guix/build/emacs-build-system.scm | 11 +++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm index 9a46ecfd2..02296829c 100644 --- a/guix/build-system/emacs.scm +++ b/guix/build-system/emacs.scm @@ -17,6 +17,8 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix build-system emacs) + #:use-module ((guix build emacs-build-system) + #:select (%default-include %default-exclude)) #:use-module (guix store) #:use-module (guix utils) #:use-module (guix packages) @@ -28,7 +30,10 @@ #:use-module (srfi srfi-26) #:export (%emacs-build-system-modules emacs-build - emacs-build-system)) + emacs-build-system) + #:re-export (%default-include ;for convenience + %default-exclude)) + ;; Commentary: ;; @@ -83,8 +88,8 @@ (phases '(@ (guix build emacs-build-system) %standard-phases)) (outputs '("out")) - (include ''("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) - (exclude ''("^\\.dir-locals\\.el$" "-pkg\\.el$" "^[^/]*tests?\\.el$")) + (include (quote %default-include)) + (exclude (quote %default-exclude)) (search-paths '()) (system (%current-system)) (guile #f) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index 50af4be36..bda699ddf 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -29,6 +29,8 @@ #:use-module (ice-9 regex) #:use-module (ice-9 match) #:export (%standard-phases + %default-include + %default-exclude emacs-build)) ;; Commentary: @@ -42,6 +44,11 @@ ;; archive signature. (define %install-suffix "/share/emacs/site-lisp/guix.d") +;; These are the default inclusion/exclusion regexps for the install phase. +(define %default-include '("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) +(define %default-exclude '("^\\.dir-locals\\.el$" "-pkg\\.el$" + "^[^/]*tests?\\.el$")) + (define gnu:unpack (assoc-ref gnu:%standard-phases 'unpack)) (define (store-file->elisp-source-file file) @@ -96,8 +103,8 @@ store in '.el' files." #t)) (define* (install #:key outputs - (include '("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) - (exclude '("^\\.dir-locals\\.el$" "-pkg\\.el$" "^[^/]*tests?\\.el$")) + (include %default-include) + (exclude %default-exclude) #:allow-other-keys) "Install the package contents." -- 2.13.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.3: 0002-gnu-emacs-Fix-ert-runner-by-adding-reporters-subdir.patch --] [-- Type: text/x-patch, Size: 1210 bytes --] From ffb86810fe945a6cded4b5363ef0b8ce4ea58d02 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer <maxim.cournoyer@gmail.com> Date: Sun, 4 Jun 2017 20:57:03 -0700 Subject: [PATCH 2/2] gnu: emacs: Fix ert-runner by adding 'reporters' subdir Previous this change, ert-runner would fail with error: "Invalid reporter: dot". * gnu/packages/emacs.scm (ert-runner)[include]: Add regexp to match elisp files under the 'reporters' subdirectory. --- gnu/packages/emacs.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 81a74d1fb..52118099e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4814,7 +4814,8 @@ Emacs.") ;; determined by emacs' standard initialization ;; procedure (list "")))) - #t)))))) + #t)))) + #:include (cons* "^reporters/.*\\.el$" %default-include))) (home-page "https://github.com/rejeep/ert-runner.el") (synopsis "Opinionated Ert testing workflow") (description "@code{ert-runner} is a tool for Emacs projects tested -- 2.13.0 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply related [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy 2017-06-05 5:07 ` Maxim Cournoyer @ 2017-06-05 10:03 ` Arun Isaac [not found] ` <73a30871.AEQALMWm9gcAAAAAAAAAAAPHPfsAAAACwQwAAAAAAAW9WABZNSx9@mailjet.com> [not found] ` <a444cf1b.AEQALMWm9gYAAAAAAAAAAAO2CsUAAAACwQwAAAAAAAW9WABZNSx9@mailjet.com> 2 siblings, 0 replies; 18+ messages in thread From: Arun Isaac @ 2017-06-05 10:03 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: Alex Kost, 27222 > 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 > ;). Exactly! :-) > 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. Thanks! Both patches LGTM. I just have a few doubts and minor comments. > (define-module (guix build-system emacs) > + #:use-module ((guix build emacs-build-system) > + #:select (%default-include %default-exclude)) Interesting solution to the problem. I didn't think of this earlier. Importing host side to build side would be a problem, but you are importing build side to host side, and I think that's ok. > #:use-module (guix store) > #:use-module (guix utils) > #:use-module (guix packages) > @@ -28,7 +30,10 @@ > #:use-module (srfi srfi-26) > #:export (%emacs-build-system-modules > emacs-build > - emacs-build-system)) > + emacs-build-system) > + #:re-export (%default-include ;for convenience > + %default-exclude)) What is this re-export for? ert-runner seems to build fine without this. I don't understand what you mean by "convenience" here. Also, perhaps we should deduplicate default values of arguments in the gnu-build-system as well. But, I don't know if it is worth deduplicating simple default values like #t. WDYT? @Alex Kost: Please make any other changes you think are necessary, and push. Thanks! ^ permalink raw reply [flat|nested] 18+ messages in thread
[parent not found: <73a30871.AEQALMWm9gcAAAAAAAAAAAPHPfsAAAACwQwAAAAAAAW9WABZNSx9@mailjet.com>]
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy [not found] ` <73a30871.AEQALMWm9gcAAAAAAAAAAAPHPfsAAAACwQwAAAAAAAW9WABZNSx9@mailjet.com> @ 2017-06-05 14:54 ` Maxim Cournoyer 0 siblings, 0 replies; 18+ messages in thread From: Maxim Cournoyer @ 2017-06-05 14:54 UTC (permalink / raw) To: Arun Isaac; +Cc: Alex Kost, 27222 Hello Arun, Arun Isaac <arunisaac@systemreboot.net> writes: >> 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 >> ;). > > Exactly! :-) > >> 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. > > Thanks! Both patches LGTM. I just have a few doubts and minor comments. > Thanks for the prompt review! >> (define-module (guix build-system emacs) >> + #:use-module ((guix build emacs-build-system) >> + #:select (%default-include %default-exclude)) > > Interesting solution to the problem. I didn't think of this > earlier. Importing host side to build side would be a problem, but you > are importing build side to host side, and I think that's ok. > >> #:use-module (guix store) >> #:use-module (guix utils) >> #:use-module (guix packages) >> @@ -28,7 +30,10 @@ >> #:use-module (srfi srfi-26) >> #:export (%emacs-build-system-modules >> emacs-build >> - emacs-build-system)) >> + emacs-build-system) >> + #:re-export (%default-include ;for convenience >> + %default-exclude)) > > What is this re-export for? ert-runner seems to build fine without > this. I don't understand what you mean by "convenience" here. If you take another look at the second patch I sent, you'll see I build the include argument value of the emacs-build-sysltem by consing the new regexp in front of %default-include instead of building it from scratch. That's what these re-exports are for: they enable their use in gnu/packages/emacs.scm (and anywhere we've imported (guix build-system emacs). > Also, perhaps we should deduplicate default values of arguments in the > gnu-build-system as well. But, I don't know if it is worth deduplicating > simple default values like #t. WDYT? There's not much value in deduplicating simple things such as a boolean flag, but for more complicated ones it could be useful; although it would be very nice if instead of having to do this Scheme/Guile offered something for "querying" the defaults values of function. One could then go and extend the defaults rather than override them them in a similar way to what we can do with records. Maxim ^ permalink raw reply [flat|nested] 18+ messages in thread
[parent not found: <a444cf1b.AEQALMWm9gYAAAAAAAAAAAO2CsUAAAACwQwAAAAAAAW9WABZNSx9@mailjet.com>]
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy [not found] ` <a444cf1b.AEQALMWm9gYAAAAAAAAAAAO2CsUAAAACwQwAAAAAAAW9WABZNSx9@mailjet.com> @ 2017-06-05 20:13 ` Alex Kost 2017-06-08 14:31 ` Arun Isaac [not found] ` <ad8c9523.AEUALD4wqa8AAAAAAAAAAAPHPfsAAAACwQwAAAAAAAW9WABZOV_H@mailjet.com> 0 siblings, 2 replies; 18+ messages in thread From: Alex Kost @ 2017-06-05 20:13 UTC (permalink / raw) To: Arun Isaac; +Cc: Maxim Cournoyer, 27222 Arun Isaac (2017-06-05 15:33 +0530) wrote: > Please make any other changes you think are necessary, and push. Thanks! Thanks, but I'm afraid I'm not competent to judge about the first patch. I don't really know what is used on build side and on host side, and whether these things can be mixed like that. -- Alex ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy 2017-06-05 20:13 ` Alex Kost @ 2017-06-08 14:31 ` Arun Isaac [not found] ` <ad8c9523.AEUALD4wqa8AAAAAAAAAAAPHPfsAAAACwQwAAAAAAAW9WABZOV_H@mailjet.com> 1 sibling, 0 replies; 18+ messages in thread From: Arun Isaac @ 2017-06-08 14:31 UTC (permalink / raw) To: Alex Kost; +Cc: Maxim Cournoyer, 27222-done Pushed! :-) Made a few minor modifications to the commit message... ^ permalink raw reply [flat|nested] 18+ messages in thread
[parent not found: <ad8c9523.AEUALD4wqa8AAAAAAAAAAAPHPfsAAAACwQwAAAAAAAW9WABZOV_H@mailjet.com>]
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy [not found] ` <ad8c9523.AEUALD4wqa8AAAAAAAAAAAPHPfsAAAACwQwAAAAAAAW9WABZOV_H@mailjet.com> @ 2017-06-08 14:58 ` Maxim Cournoyer 0 siblings, 0 replies; 18+ messages in thread From: Maxim Cournoyer @ 2017-06-08 14:58 UTC (permalink / raw) To: Arun Isaac; +Cc: Alex Kost, 27222-done Arun Isaac <arunisaac@systemreboot.net> writes: > Pushed! :-) > > Made a few minor modifications to the commit message... Thank you, Arun! Maxim ^ permalink raw reply [flat|nested] 18+ messages in thread
[parent not found: <0efe58d4.AEUAK47aAUsAAAAAAAAAAAO2CsUAAAACwQwAAAAAAAW9WABZNF6l@mailjet.com>]
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy [not found] ` <0efe58d4.AEUAK47aAUsAAAAAAAAAAAO2CsUAAAACwQwAAAAAAAW9WABZNF6l@mailjet.com> @ 2017-06-05 20:07 ` Alex Kost 2017-06-06 17:44 ` Arun Isaac 0 siblings, 1 reply; 18+ messages in thread From: Alex Kost @ 2017-06-05 20:07 UTC (permalink / raw) To: Arun Isaac; +Cc: Maxim Cournoyer, 27222 Arun Isaac (2017-06-05 00:55 +0530) wrote: [...] >> 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 Sure, I didn't mean I was ignored, I just wanted to say that I got the same thought about those arguments as Maxim. >> ... 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? As I said, I think this duplication can be avoided simply by removing the values of 'include'/'exclude' arguments from 'install' procedures of (guix build emacs-build-system) module. > Even the gnu-build-system duplicates default values of arguments. I don't know about gnu-build-system, but I don't see a reason to have these values in 'install' procedure of emacs-build-system. -- Alex ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] emacs-build-system install phase doesn't honor directory hierarchy 2017-06-05 20:07 ` Alex Kost @ 2017-06-06 17:44 ` Arun Isaac 0 siblings, 0 replies; 18+ messages in thread From: Arun Isaac @ 2017-06-06 17:44 UTC (permalink / raw) To: Alex Kost; +Cc: Maxim Cournoyer, 27222 Alex Kost writes: > Sure, I didn't mean I was ignored, I just wanted to say that I got the > same thought about those arguments as Maxim. No hard feelings! :-) debbugs can be a pain to read. I thought you missed that message from me. > As I said, I think this duplication can be avoided simply by removing > the values of 'include'/'exclude' arguments from 'install' procedures of > (guix build emacs-build-system) module. I tried something similar when I wrote the original patch, but I couldn't get it working. Probably something to do with all the quotes and build side/host side stuff. I didn't pursue it further when I noticed that even the gnu-build-system duplicates default arguments. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] Fix ert-runner regression (was: emacs-build-system install phase doesn't honor directory hierarchy) 2017-06-03 23:02 bug#27222: emacs-build-system install phase doesn't honor directory hierarchy Maxim Cournoyer 2017-06-04 6:53 ` bug#27222: [PATCH] " Maxim Cournoyer @ 2017-06-06 16:35 ` Maxim Cournoyer 2017-06-06 23:02 ` bug#27222: [PATCH] Fix ert-runner regression Ludovic Courtès 1 sibling, 1 reply; 18+ messages in thread From: Maxim Cournoyer @ 2017-06-06 16:35 UTC (permalink / raw) To: ludo; +Cc: alezost, 27222 Hello Ludovic, Alex Kost (2017-06-05) wrote: > Arun Isaac (2017-06-05) wrote: > > Please make any other changes you think are necessary, and push. Thanks! > Thanks, but I'm afraid I'm not competent to judge about the first > patch. I don't really know what is used on build side and on host side, > and whether these things can be mixed like that. > -- > Alex Could you please have a quick look at the small change I did in the first patch at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27222#23? If it is sane, feel free to merge those (as suggested by Arun) and close this bug :) Thanks, Maxim ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] Fix ert-runner regression 2017-06-06 16:35 ` bug#27222: [PATCH] Fix ert-runner regression (was: emacs-build-system install phase doesn't honor directory hierarchy) Maxim Cournoyer @ 2017-06-06 23:02 ` Ludovic Courtès 2017-06-07 10:28 ` Arun Isaac 0 siblings, 1 reply; 18+ messages in thread From: Ludovic Courtès @ 2017-06-06 23:02 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: alezost, 27222 Hi Maxim, Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > Alex Kost (2017-06-05) wrote: > >> Arun Isaac (2017-06-05) wrote: > >> > Please make any other changes you think are necessary, and push. Thanks! > >> Thanks, but I'm afraid I'm not competent to judge about the first >> patch. I don't really know what is used on build side and on host side, >> and whether these things can be mixed like that. > >> -- >> Alex > > Could you please have a quick look at the small change I did in the > first patch at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27222#23? > If it is sane, feel free to merge those (as suggested by Arun) and close > this bug :) Sorry I haven’t closely followed this discussion. Arun: Could you merge it if that looks good to you? I trust your judgment, comrades. :-) TIA! Ludo’. PS: Apologies, I’ll be less responsive over the next few days. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] Fix ert-runner regression 2017-06-06 23:02 ` bug#27222: [PATCH] Fix ert-runner regression Ludovic Courtès @ 2017-06-07 10:28 ` Arun Isaac 2017-06-07 20:11 ` Alex Kost 0 siblings, 1 reply; 18+ messages in thread From: Arun Isaac @ 2017-06-07 10:28 UTC (permalink / raw) To: Ludovic Courtès; +Cc: alezost, Maxim Cournoyer, 27222 > Sorry I haven’t closely followed this discussion. Arun: Could you merge > it if that looks good to you? I trust your judgment, comrades. :-) The patches are fine by me. Alex Kost is reviewing this patch. So, I think he should push. Thanks! ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#27222: [PATCH] Fix ert-runner regression 2017-06-07 10:28 ` Arun Isaac @ 2017-06-07 20:11 ` Alex Kost 0 siblings, 0 replies; 18+ messages in thread From: Alex Kost @ 2017-06-07 20:11 UTC (permalink / raw) To: Arun Isaac; +Cc: 27222, Maxim Cournoyer Arun Isaac (2017-06-07 15:58 +0530) wrote: >> Sorry I haven’t closely followed this discussion. Arun: Could you merge >> it if that looks good to you? I trust your judgment, comrades. :-) > > The patches are fine by me. Alex Kost is reviewing this patch. So, I > think he should push. Thanks! Wow, so if someone replies to some message, (s)he is considered to be a reviewer? I didn't realize this is so strict :-) I just replied to the original Maxim's proposal to include elisp files from subdirs. After that, the patch changed completely, and I'm not confident in the potential consequences, so I let other people judge on that patch. Arun, please commit it, if it looks good to you. -- Alex ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2017-06-08 14:59 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-06-03 23:02 bug#27222: emacs-build-system install phase doesn't honor directory hierarchy Maxim Cournoyer 2017-06-04 6:53 ` bug#27222: [PATCH] " Maxim Cournoyer 2017-06-04 12:59 ` Alex Kost 2017-06-04 16:44 ` Maxim Cournoyer 2017-06-04 19:41 ` Alex Kost 2017-06-04 19:25 ` Arun Isaac 2017-06-05 5:07 ` Maxim Cournoyer 2017-06-05 10:03 ` Arun Isaac [not found] ` <73a30871.AEQALMWm9gcAAAAAAAAAAAPHPfsAAAACwQwAAAAAAAW9WABZNSx9@mailjet.com> 2017-06-05 14:54 ` Maxim Cournoyer [not found] ` <a444cf1b.AEQALMWm9gYAAAAAAAAAAAO2CsUAAAACwQwAAAAAAAW9WABZNSx9@mailjet.com> 2017-06-05 20:13 ` Alex Kost 2017-06-08 14:31 ` Arun Isaac [not found] ` <ad8c9523.AEUALD4wqa8AAAAAAAAAAAPHPfsAAAACwQwAAAAAAAW9WABZOV_H@mailjet.com> 2017-06-08 14:58 ` Maxim Cournoyer [not found] ` <0efe58d4.AEUAK47aAUsAAAAAAAAAAAO2CsUAAAACwQwAAAAAAAW9WABZNF6l@mailjet.com> 2017-06-05 20:07 ` Alex Kost 2017-06-06 17:44 ` Arun Isaac 2017-06-06 16:35 ` bug#27222: [PATCH] Fix ert-runner regression (was: emacs-build-system install phase doesn't honor directory hierarchy) Maxim Cournoyer 2017-06-06 23:02 ` bug#27222: [PATCH] Fix ert-runner regression Ludovic Courtès 2017-06-07 10:28 ` Arun Isaac 2017-06-07 20:11 ` Alex Kost
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).