* [bug#28832] [PATCH 0/3] gnu: Add emacs-json-mode.
@ 2017-10-14 9:51 Oleg Pykhalov
2017-10-14 10:29 ` [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat Oleg Pykhalov
0 siblings, 1 reply; 26+ messages in thread
From: Oleg Pykhalov @ 2017-10-14 9:51 UTC (permalink / raw)
To: 28832
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: [PATCH 0/3] gnu: Add emacs-json-mode. --]
[-- Type: text/x-patch, Size: 476 bytes --]
From b3b7b79f85e3b2aca6322e9c994b0fe0a666825d Mon Sep 17 00:00:00 2001
From: Oleg Pykhalov <go.wigust@gmail.com>
Date: Sat, 14 Oct 2017 12:50:21 +0300
Subject: [PATCH 0/3] gnu: Add emacs-json-mode.
2 tests fails in emacs-json-reformat.
Oleg Pykhalov (3):
gnu: Add emacs-json-reformat.
gnu: Add emacs-json-snatcher.
gnu: Add emacs-json-mode.
gnu/packages/emacs.scm | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
--
2.14.2
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-10-14 9:51 [bug#28832] [PATCH 0/3] gnu: Add emacs-json-mode Oleg Pykhalov
@ 2017-10-14 10:29 ` Oleg Pykhalov
2017-10-14 10:29 ` [bug#28832] [PATCH 2/3] gnu: Add emacs-json-snatcher Oleg Pykhalov
` (2 more replies)
0 siblings, 3 replies; 26+ messages in thread
From: Oleg Pykhalov @ 2017-10-14 10:29 UTC (permalink / raw)
To: 28832
* gnu/packages/emacs.scm (emacs-json-reformat): New variable.
---
gnu/packages/emacs.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 66f0a2ebe..8d94341ab 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -5569,6 +5569,55 @@ pair of minor modes which suppress all mouse events by intercepting them and
running a customisable handler command (@code{ignore} by default). ")
(license license:gpl3+)))
+(define-public emacs-json-reformat
+ (package
+ (name "emacs-json-reformat")
+ (version "0.0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/gongo/json-reformat/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))))
+ (build-system emacs-build-system)
+ (propagated-inputs `(("emacs-undercover" ,emacs-undercover)))
+ (inputs
+ `(("emacs-dash" ,emacs-dash) ; for tests
+ ("emacs-shut-up" ,emacs-shut-up))) ; for tests
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'check
+ (lambda* (#:key inputs #:allow-other-keys)
+ (zero? (system* "emacs" "--batch" "-L" "."
+ "-L" (string-append
+ (assoc-ref inputs "emacs-undercover")
+ "/share/emacs/site-lisp/guix.d/undercover-"
+ ,(package-version emacs-undercover))
+ "-L" (string-append
+ (assoc-ref inputs "emacs-dash")
+ "/share/emacs/site-lisp/guix.d/dash-"
+ ,(package-version emacs-dash))
+ "-L" (string-append
+ (assoc-ref inputs "emacs-shut-up")
+ "/share/emacs/site-lisp/guix.d/shut-up-"
+ ,(package-version emacs-shut-up))
+ "-l" "test/test-helper.el"
+ "-l" "test/json-reformat-test.el"
+ "-f" "ert-run-tests-batch-and-exit"))
+ ;; Fails
+ ;; json-reformat-test:json-reformat-region-occur-error
+ ;; json-reformat-test:string-to-string
+ #t)))))
+ (home-page "https://github.com/gongo/json-reformat")
+ (synopsis "Reformatting tool for JSON")
+ (description "@code{json-reformat} provides a reformatting tool for
+@url{http://json.org/, JSON}.")
+ (license license:gpl3+)))
+
(define-public emacs-restclient
(let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
(revision "1")) ;Guix package revision,
--
2.14.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 2/3] gnu: Add emacs-json-snatcher.
2017-10-14 10:29 ` [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat Oleg Pykhalov
@ 2017-10-14 10:29 ` Oleg Pykhalov
2017-10-20 12:41 ` Ludovic Courtès
2017-10-14 10:29 ` [bug#28832] [PATCH 3/3] gnu: Add emacs-json-mode Oleg Pykhalov
2017-10-20 12:34 ` [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat Ludovic Courtès
2 siblings, 1 reply; 26+ messages in thread
From: Oleg Pykhalov @ 2017-10-14 10:29 UTC (permalink / raw)
To: 28832
* gnu/packages/emacs.scm (emacs-json-snatcher): New variable.
---
gnu/packages/emacs.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 8d94341ab..9bf7acf0b 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -5618,6 +5618,26 @@ running a customisable handler command (@code{ignore} by default). ")
@url{http://json.org/, JSON}.")
(license license:gpl3+)))
+(define-public emacs-json-snatcher
+ (package
+ (name "emacs-json-snatcher")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/sterlingg/json-snatcher")
+ (synopsis "Grabs the path to JSON values in a JSON file")
+ (description "@code{emacs-json-snatcher} grabs the path to JSON values in
+a @url{http://json.org/, JSON} file.")
+ (license license:gpl3+)))
+
(define-public emacs-restclient
(let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
(revision "1")) ;Guix package revision,
--
2.14.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 3/3] gnu: Add emacs-json-mode.
2017-10-14 10:29 ` [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat Oleg Pykhalov
2017-10-14 10:29 ` [bug#28832] [PATCH 2/3] gnu: Add emacs-json-snatcher Oleg Pykhalov
@ 2017-10-14 10:29 ` Oleg Pykhalov
2017-10-20 12:34 ` [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat Ludovic Courtès
2 siblings, 0 replies; 26+ messages in thread
From: Oleg Pykhalov @ 2017-10-14 10:29 UTC (permalink / raw)
To: 28832
* gnu/packages/emacs.scm (emacs-json-mode): New variable.
---
gnu/packages/emacs.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 9bf7acf0b..78a950900 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -5638,6 +5638,29 @@ running a customisable handler command (@code{ignore} by default). ")
a @url{http://json.org/, JSON} file.")
(license license:gpl3+)))
+(define-public emacs-json-mode
+ (package
+ (name "emacs-json-mode")
+ (version "1.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
+ "v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-json-reformat" ,emacs-json-reformat)
+ ("emacs-json-snatcher" ,emacs-json-snatcher)))
+ (home-page "https://github.com/joshwnj/json-mode")
+ (synopsis "Major mode for editing JSON files")
+ (description "@code{json-mode} extends the builtin js-mode syntax
+highlighting.")
+ (license license:gpl3+)))
+
(define-public emacs-restclient
(let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
(revision "1")) ;Guix package revision,
--
2.14.2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-10-14 10:29 ` [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat Oleg Pykhalov
2017-10-14 10:29 ` [bug#28832] [PATCH 2/3] gnu: Add emacs-json-snatcher Oleg Pykhalov
2017-10-14 10:29 ` [bug#28832] [PATCH 3/3] gnu: Add emacs-json-mode Oleg Pykhalov
@ 2017-10-20 12:34 ` Ludovic Courtès
2017-12-01 10:23 ` Ludovic Courtès
2 siblings, 1 reply; 26+ messages in thread
From: Ludovic Courtès @ 2017-10-20 12:34 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832
Hello,
Oleg Pykhalov <go.wigust@gmail.com> skribis:
> * gnu/packages/emacs.scm (emacs-json-reformat): New variable.
[...]
> + (modify-phases %standard-phases
> + (add-before 'install 'check
> + (lambda* (#:key inputs #:allow-other-keys)
> + (zero? (system* "emacs" "--batch" "-L" "."
> + "-L" (string-append
> + (assoc-ref inputs "emacs-undercover")
> + "/share/emacs/site-lisp/guix.d/undercover-"
> + ,(package-version emacs-undercover))
> + "-L" (string-append
> + (assoc-ref inputs "emacs-dash")
> + "/share/emacs/site-lisp/guix.d/dash-"
> + ,(package-version emacs-dash))
> + "-L" (string-append
> + (assoc-ref inputs "emacs-shut-up")
> + "/share/emacs/site-lisp/guix.d/shut-up-"
> + ,(package-version emacs-shut-up))
> + "-l" "test/test-helper.el"
> + "-l" "test/json-reformat-test.el"
> + "-f" "ert-run-tests-batch-and-exit"))
> + ;; Fails
> + ;; json-reformat-test:json-reformat-region-occur-error
> + ;; json-reformat-test:string-to-string
> + #t)))))
Did you have a chance to investigate the test failures? It’s not
confidence-inspiring ;-), so it would be good to at least have a link to
an upstream bug report.
Besides, I wonder: shouldn’t ‘emacs-build-system’ define the
‘EMACSLOADPATH’ env. var. so we don’t have to carry all these -L flags?
Is there any downside?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 2/3] gnu: Add emacs-json-snatcher.
2017-10-14 10:29 ` [bug#28832] [PATCH 2/3] gnu: Add emacs-json-snatcher Oleg Pykhalov
@ 2017-10-20 12:41 ` Ludovic Courtès
0 siblings, 0 replies; 26+ messages in thread
From: Ludovic Courtès @ 2017-10-20 12:41 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832
Oleg Pykhalov <go.wigust@gmail.com> skribis:
> * gnu/packages/emacs.scm (emacs-json-snatcher): New variable.
Applied, thanks!
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-10-20 12:34 ` [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat Ludovic Courtès
@ 2017-12-01 10:23 ` Ludovic Courtès
2017-12-11 23:12 ` Oleg Pykhalov
0 siblings, 1 reply; 26+ messages in thread
From: Ludovic Courtès @ 2017-12-01 10:23 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832
Hi Oleg,
Ping! :-)
ludo@gnu.org (Ludovic Courtès) skribis:
> Oleg Pykhalov <go.wigust@gmail.com> skribis:
>
>> * gnu/packages/emacs.scm (emacs-json-reformat): New variable.
>
> [...]
>
>> + (modify-phases %standard-phases
>> + (add-before 'install 'check
>> + (lambda* (#:key inputs #:allow-other-keys)
>> + (zero? (system* "emacs" "--batch" "-L" "."
>> + "-L" (string-append
>> + (assoc-ref inputs "emacs-undercover")
>> + "/share/emacs/site-lisp/guix.d/undercover-"
>> + ,(package-version emacs-undercover))
>> + "-L" (string-append
>> + (assoc-ref inputs "emacs-dash")
>> + "/share/emacs/site-lisp/guix.d/dash-"
>> + ,(package-version emacs-dash))
>> + "-L" (string-append
>> + (assoc-ref inputs "emacs-shut-up")
>> + "/share/emacs/site-lisp/guix.d/shut-up-"
>> + ,(package-version emacs-shut-up))
>> + "-l" "test/test-helper.el"
>> + "-l" "test/json-reformat-test.el"
>> + "-f" "ert-run-tests-batch-and-exit"))
>> + ;; Fails
>> + ;; json-reformat-test:json-reformat-region-occur-error
>> + ;; json-reformat-test:string-to-string
>> + #t)))))
>
> Did you have a chance to investigate the test failures? It’s not
> confidence-inspiring ;-), so it would be good to at least have a link to
> an upstream bug report.
>
> Besides, I wonder: shouldn’t ‘emacs-build-system’ define the
> ‘EMACSLOADPATH’ env. var. so we don’t have to carry all these -L flags?
> Is there any downside?
>
> Thanks,
> Ludo’.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-01 10:23 ` Ludovic Courtès
@ 2017-12-11 23:12 ` Oleg Pykhalov
2017-12-12 9:17 ` Ludovic Courtès
0 siblings, 1 reply; 26+ messages in thread
From: Oleg Pykhalov @ 2017-12-11 23:12 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 28832
[-- Attachment #1.1: Type: text/plain, Size: 2207 bytes --]
Hello Ludovic,
Apologies for late reply and thank you for review.
ludo@gnu.org (Ludovic Courtès) writes:
[...]
>>> + (modify-phases %standard-phases
>>> + (add-before 'install 'check
>>> + (lambda* (#:key inputs #:allow-other-keys)
>>> + (zero? (system* "emacs" "--batch" "-L" "."
>>> + "-L" (string-append
>>> + (assoc-ref inputs "emacs-undercover")
>>> + "/share/emacs/site-lisp/guix.d/undercover-"
>>> + ,(package-version emacs-undercover))
>>> + "-L" (string-append
>>> + (assoc-ref inputs "emacs-dash")
>>> + "/share/emacs/site-lisp/guix.d/dash-"
>>> + ,(package-version emacs-dash))
>>> + "-L" (string-append
>>> + (assoc-ref inputs "emacs-shut-up")
>>> + "/share/emacs/site-lisp/guix.d/shut-up-"
>>> + ,(package-version emacs-shut-up))
>>> + "-l" "test/test-helper.el"
>>> + "-l" "test/json-reformat-test.el"
>>> + "-f" "ert-run-tests-batch-and-exit"))
>>> + ;; Fails
>>> + ;; json-reformat-test:json-reformat-region-occur-error
>>> + ;; json-reformat-test:string-to-string
>>> + #t)))))
>>
>> Did you have a chance to investigate the test failures? It’s not
>> confidence-inspiring ;-), so it would be good to at least have a link to
>> an upstream bug report.
Yes I looked at those tests. Here is a little review of them.
json-reformat-test:string-to-string basically just calls
a reimplemented in Emacs 25 json-encode-string function.
json-reformat-test:json-reformat-region-occur-error emulates error and
produce a message. This message is differ from Emacs 24 in symbol '`'.
So, I think those test fails are harmless. I attach the new patch with
fixing those failing tests.
[-- Attachment #1.2: [PATCH] gnu: Add emacs-json-reformat. --]
[-- Type: text/x-patch, Size: 5700 bytes --]
From d589de21acb02d0fba7aee3b48e5f42d7bd8957e Mon Sep 17 00:00:00 2001
From: Oleg Pykhalov <go.wigust@gmail.com>
Date: Tue, 12 Dec 2017 01:41:08 +0300
Subject: [PATCH] gnu: Add emacs-json-reformat.
* gnu/packages/patches/emacs-json-reformat-fix-tests.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add this.
* gnu/packages/emacs.scm (emacs-json-reformat): New variable.
---
gnu/local.mk | 1 +
gnu/packages/emacs.scm | 47 ++++++++++++++++++++++
.../patches/emacs-json-reformat-fix-tests.patch | 28 +++++++++++++
3 files changed, 76 insertions(+)
create mode 100644 gnu/packages/patches/emacs-json-reformat-fix-tests.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 46829756b..ec5ba06d3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -613,6 +613,7 @@ dist_patch_DATA = \
%D%/packages/patches/einstein-build.patch \
%D%/packages/patches/emacs-exec-path.patch \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
+ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
%D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index fd0305629..1aa139c92 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -5914,6 +5914,53 @@ pair of minor modes which suppress all mouse events by intercepting them and
running a customisable handler command (@code{ignore} by default). ")
(license license:gpl3+)))
+(define-public emacs-json-reformat
+ (package
+ (name "emacs-json-reformat")
+ (version "0.0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/gongo/json-reformat/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
+ (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
+ (build-system emacs-build-system)
+ (propagated-inputs `(("emacs-undercover" ,emacs-undercover)))
+ (inputs
+ `(("emacs-dash" ,emacs-dash) ; for tests
+ ("emacs-shut-up" ,emacs-shut-up))) ; for tests
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'check
+ (lambda* (#:key inputs #:allow-other-keys)
+ (zero? (system* "emacs" "--batch" "-L" "."
+ "-L" (string-append
+ (assoc-ref inputs "emacs-undercover")
+ "/share/emacs/site-lisp/guix.d/undercover-"
+ ,(package-version emacs-undercover))
+ "-L" (string-append
+ (assoc-ref inputs "emacs-dash")
+ "/share/emacs/site-lisp/guix.d/dash-"
+ ,(package-version emacs-dash))
+ "-L" (string-append
+ (assoc-ref inputs "emacs-shut-up")
+ "/share/emacs/site-lisp/guix.d/shut-up-"
+ ,(package-version emacs-shut-up))
+ "-l" "test/test-helper.el"
+ "-l" "test/json-reformat-test.el"
+ "-f" "ert-run-tests-batch-and-exit"))
+ #t)))))
+ (home-page "https://github.com/gongo/json-reformat")
+ (synopsis "Reformatting tool for JSON")
+ (description "@code{json-reformat} provides a reformatting tool for
+@url{http://json.org/, JSON}.")
+ (license license:gpl3+)))
+
(define-public emacs-json-snatcher
(package
(name "emacs-json-snatcher")
diff --git a/gnu/packages/patches/emacs-json-reformat-fix-tests.patch b/gnu/packages/patches/emacs-json-reformat-fix-tests.patch
new file mode 100644
index 000000000..23a239582
--- /dev/null
+++ b/gnu/packages/patches/emacs-json-reformat-fix-tests.patch
@@ -0,0 +1,28 @@
+Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
+
+This patch fixes tests for Emacs 25.
+
+diff --git a/test/json-reformat-test.el b/test/json-reformat-test.el
+index 7de3be1..b4a4dde 100644
+--- a/test/json-reformat-test.el
++++ b/test/json-reformat-test.el
+@@ -58,7 +58,7 @@
+ (ert-deftest json-reformat-test:string-to-string ()
+ (should (string= "\"foobar\"" (json-reformat:string-to-string "foobar")))
+ (should (string= "\"fo\\\"o\\nbar\"" (json-reformat:string-to-string "fo\"o\nbar")))
+- (should (string= "\"\\u2661\"" (json-reformat:string-to-string "\u2661")))
++ (should (string= "\"♡\"" (json-reformat:string-to-string "\u2661")))
+
+ (should (string= "\"^(amq\\\\.gen.*|amq\\\\.default)$\"" (json-reformat:string-to-string "^(amq\\.gen.*|amq\\.default)$")))
+ )
+@@ -148,6 +148,6 @@ bar\"" (json-reformat:string-to-string "fo\"o\nbar")))
+ [{ foo : \"bar\" }, { \"foo\" : \"baz\" }]") ;; At 3 (line)
+ (json-reformat-region (point-min) (point-max)))
+ (should (string=
+- "JSON parse error [Reason] Bad string format: \"doesn't start with '\\\"'!\" [Position] In buffer, line 3 (char 6)"
++ "JSON parse error [Reason] Bad string format: \"doesn't start with \`\\\"'!\" [Position] In buffer, line 3 (char 6)"
+ message-string))
+ )))
+--
+2.15.1
+
--
2.15.1
[-- Attachment #1.3: Type: text/plain, Size: 566 bytes --]
The upstream is quite: https://github.com/gongo/json-reformat/issues/33
>> Besides, I wonder: shouldn’t ‘emacs-build-system’ define the
>> ‘EMACSLOADPATH’ env. var. so we don’t have to carry all these -L flags?
>> Is there any downside?
As I see from the documentation¹ EMACSLOADPATH is a list of directories
with *.el files in it. If we will use it, then it will be almost the
same carring bunch of directories in package recipes, will it?
¹ https://www.gnu.org/software/emacs/manual/html_node/emacs/General-Variables.html
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-11 23:12 ` Oleg Pykhalov
@ 2017-12-12 9:17 ` Ludovic Courtès
2017-12-12 17:23 ` Alex Kost
2018-01-11 21:46 ` Ludovic Courtès
0 siblings, 2 replies; 26+ messages in thread
From: Ludovic Courtès @ 2017-12-12 9:17 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832, Alex Kost
Hi Oleg,
Oleg Pykhalov <go.wigust@gmail.com> skribis:
> ludo@gnu.org (Ludovic Courtès) writes:
[...]
>>> Did you have a chance to investigate the test failures? It’s not
>>> confidence-inspiring ;-), so it would be good to at least have a link to
>>> an upstream bug report.
>
> Yes I looked at those tests. Here is a little review of them.
>
> json-reformat-test:string-to-string basically just calls
> a reimplemented in Emacs 25 json-encode-string function.
>
> json-reformat-test:json-reformat-region-occur-error emulates error and
> produce a message. This message is differ from Emacs 24 in symbol '`'.
>
> So, I think those test fails are harmless. I attach the new patch with
> fixing those failing tests.
Indeed.
> From d589de21acb02d0fba7aee3b48e5f42d7bd8957e Mon Sep 17 00:00:00 2001
> From: Oleg Pykhalov <go.wigust@gmail.com>
> Date: Tue, 12 Dec 2017 01:41:08 +0300
> Subject: [PATCH] gnu: Add emacs-json-reformat.
>
> * gnu/packages/patches/emacs-json-reformat-fix-tests.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add this.
> * gnu/packages/emacs.scm (emacs-json-reformat): New variable.
[...]
> diff --git a/gnu/packages/patches/emacs-json-reformat-fix-tests.patch b/gnu/packages/patches/emacs-json-reformat-fix-tests.patch
> new file mode 100644
> index 000000000..23a239582
> --- /dev/null
> +++ b/gnu/packages/patches/emacs-json-reformat-fix-tests.patch
> @@ -0,0 +1,28 @@
> +Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
> +
> +This patch fixes tests for Emacs 25.
Please mention <https://github.com/gongo/json-reformat/issues/33> here.
OK with these changes!
> >> Besides, I wonder: shouldn’t ‘emacs-build-system’ define the
> >> ‘EMACSLOADPATH’ env. var. so we don’t have to carry all these -L flags?
> >> Is there any downside?
>
> As I see from the documentation¹ EMACSLOADPATH is a list of directories
> with *.el files in it. If we will use it, then it will be almost the
> same carring bunch of directories in package recipes, will it?
If ‘emacs-build-system’ sets ‘EMACSLOADPATH’ automatically, then
individual package definitions won’t need those -L flags. Dunno if
there are good reasons not to do so. Maybe Alex has an opinion?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-12 9:17 ` Ludovic Courtès
@ 2017-12-12 17:23 ` Alex Kost
2017-12-13 4:55 ` Oleg Pykhalov
2017-12-15 9:36 ` Oleg Pykhalov
2018-01-11 21:46 ` Ludovic Courtès
1 sibling, 2 replies; 26+ messages in thread
From: Alex Kost @ 2017-12-12 17:23 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 28832
Ludovic Courtès (2017-12-12 10:17 +0100) wrote:
> Oleg Pykhalov <go.wigust@gmail.com> skribis:
>
>> ludo@gnu.org (Ludovic Courtès) writes:
>>
>>> Besides, I wonder: shouldn’t ‘emacs-build-system’ define the
>>> ‘EMACSLOADPATH’ env. var. so we don’t have to carry all these -L flags?
>>> Is there any downside?
>>
>> As I see from the documentation¹ EMACSLOADPATH is a list of directories
>> with *.el files in it. If we will use it, then it will be almost the
>> same carring bunch of directories in package recipes, will it?
>
> If ‘emacs-build-system’ sets ‘EMACSLOADPATH’ automatically, then
> individual package definitions won’t need those -L flags. Dunno if
> there are good reasons not to do so. Maybe Alex has an opinion?
I would rather ask Federico who wrote ‘emacs-build-system’ :)
Yeah, maybe ‘emacs-build-system’ could benefit from using EMACSLOADPATH,
I don't know, someone should probably give it a try ;-)
BTW, Oleg, did you try to use 'ert-runner' instead of running emacs for
tests manually? Perhaps, it will work; look at commit
8505d34829b99744a36d72dd583768f1e49210a6 for example.
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-12 17:23 ` Alex Kost
@ 2017-12-13 4:55 ` Oleg Pykhalov
2017-12-15 20:35 ` Alex Kost
2017-12-15 9:36 ` Oleg Pykhalov
1 sibling, 1 reply; 26+ messages in thread
From: Oleg Pykhalov @ 2017-12-13 4:55 UTC (permalink / raw)
To: Alex Kost; +Cc: 28832
[-- Attachment #1.1: Type: text/plain, Size: 869 bytes --]
Hello Alex and Ludovic,
Alex Kost <alezost@gmail.com> writes:
[...]
>> If ‘emacs-build-system’ sets ‘EMACSLOADPATH’ automatically, then
>> individual package definitions won’t need those -L flags. Dunno if
>> there are good reasons not to do so. Maybe Alex has an opinion?
>
> I would rather ask Federico who wrote ‘emacs-build-system’ :)
Do you mean Federico Beffa <beffa@fbengineering.ch>? He is quite in
Guix git repository for 9 months as I see. Is it a good idea to CC him?
> Yeah, maybe ‘emacs-build-system’ could benefit from using EMACSLOADPATH,
> I don't know, someone should probably give it a try ;-)
I succeeded to implement this, but the patch needs some more love. The
biggest issue is how to get an Emacs version in setup-environment.
You could test it on emacs-git-messenger or emacs-json-reformat.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: EMACSLOADPATH --]
[-- Type: text/x-patch, Size: 2575 bytes --]
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index bd0d2e026..269038744 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -183,6 +183,10 @@ store in '.el' files."
"Check if NAME correspond to the name of an Emacs package."
(string-prefix? "emacs-" name))
+(define (string-drop-emacs x)
+ "Drops `emacs-' from a string."
+ (string-drop x 6))
+
(define (emacs-inputs inputs)
"Retrieve the list of Emacs packages from INPUTS."
(filter (match-lambda
@@ -222,6 +226,38 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages."
strip-store-file-name)
store-dir))
+;; Copied from haskell-build-system.scm
+(define (package-name-version store-dir)
+ "Given a store directory STORE-DIR return 'name-version' of the package."
+ (let* ((base (basename store-dir)))
+ (string-drop base (+ 1 (string-index base #\-)))))
+
+(define* (setup-environment #:key inputs outputs #:allow-other-keys)
+ "Export the variable EMACSLOADPATH, which are based on INPUTS and OUTPUTS,
+respectively."
+ (let ((out (assoc-ref outputs "out")))
+ ;; EMACSLOADPATH is where Emacs looks for the source code of the build's
+ ;; dependencies.
+ (set-path-environment-variable
+ "EMACSLOADPATH"
+ ;; XXX Matching "." hints that we could do
+ ;; something simpler here...
+ (list ".")
+ (cons (let ((store-item (cdr (assoc "emacs" (emacs-inputs inputs)))))
+ ;; TODO: Get a version from inputs
+ (string-append store-item "/share/emacs/25.3/lisp"))
+ (map
+ (lambda (foobar)
+ (let ((store-item (cdr foobar)))
+ (string-append store-item
+ %install-suffix "/"
+ (string-drop-emacs
+ (package-name-version store-item)))))
+ (alist-delete "emacs"
+ (alist-delete "source"
+ (emacs-inputs inputs))))))
+ #t))
+
(define %standard-phases
(modify-phases gnu:%standard-phases
(replace 'unpack unpack)
@@ -229,6 +265,7 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages."
(delete 'check)
(delete 'install)
(replace 'build build)
+ (add-before 'build 'setup-environment setup-environment)
(add-before 'build 'install install)
(add-after 'install 'make-autoloads make-autoloads)
(add-after 'make-autoloads 'patch-el-files patch-el-files)
[-- Attachment #1.3: Type: text/plain, Size: 250 bytes --]
> BTW, Oleg, did you try to use 'ert-runner' instead of running emacs for
> tests manually? Perhaps, it will work; look at commit
> 8505d34829b99744a36d72dd583768f1e49210a6 for example.
Nope, but I will. Thank you for notice this!
Thanks,
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-12 17:23 ` Alex Kost
2017-12-13 4:55 ` Oleg Pykhalov
@ 2017-12-15 9:36 ` Oleg Pykhalov
2017-12-15 14:02 ` Ludovic Courtès
2017-12-15 20:35 ` Alex Kost
1 sibling, 2 replies; 26+ messages in thread
From: Oleg Pykhalov @ 2017-12-15 9:36 UTC (permalink / raw)
To: Alex Kost; +Cc: 28832
[-- Attachment #1.1: [PATCH] emacs-build-system: Add EMACSLOADPATH. --]
[-- Type: text/x-patch, Size: 3790 bytes --]
From adda59022a61dfcf2add1d9f01d02df4be90a0f1 Mon Sep 17 00:00:00 2001
From: Oleg Pykhalov <go.wigust@gmail.com>
Date: Wed, 13 Dec 2017 08:10:21 +0300
Subject: [PATCH] emacs-build-system: Add EMACSLOADPATH.
* guix/build/emacs-build-system.scm: Add EMACSLOADPATH.
---
guix/build/emacs-build-system.scm | 47 +++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index bd0d2e026..06479bf6b 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -183,6 +184,10 @@ store in '.el' files."
"Check if NAME correspond to the name of an Emacs package."
(string-prefix? "emacs-" name))
+(define (string-drop-emacs value)
+ "Drops `emacs-' from a string."
+ (string-drop value 6))
+
(define (emacs-inputs inputs)
"Retrieve the list of Emacs packages from INPUTS."
(filter (match-lambda
@@ -222,6 +227,47 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages."
strip-store-file-name)
store-dir))
+(define (store-directory->package-name store-dir)
+ "Extract package name from STORE-DIR."
+ (let-values (((name _) ((compose package-name->name+version
+ strip-store-file-name)
+ store-dir)))
+ name))
+
+(define (store-directory->package-version store-dir)
+ "Extract package version from STORE-DIR."
+ (let-values (((_ version) ((compose package-name->name+version
+ strip-store-file-name)
+ store-dir)))
+ version))
+
+(define* (setup-environment #:key inputs #:allow-other-keys)
+ "Export the variable EMACSLOADPATH, which are based on INPUTS respectively."
+ (let* ((filtered-inputs (emacs-inputs inputs))
+ (emacs-input-dir (cdr (assoc "emacs" filtered-inputs)))
+ (inputs-dirs (cdr filtered-inputs)))
+ ;; EMACSLOADPATH is where Emacs looks for the source code of the build's
+ ;; dependencies.
+ (setenv "EMACSLOADPATH"
+ (string-append emacs-input-dir "/share/emacs/"
+ (store-directory->package-version emacs-input-dir)
+ "/lisp"))
+ (for-each
+ (lambda (input)
+ (let ((store-item (cdr input)))
+ (setenv "EMACSLOADPATH"
+ (string-append
+ (or (getenv "EMACSLOADPATH") "")
+ ":" store-item %install-suffix "/"
+ ((compose string-drop-emacs store-directory->package-name)
+ store-item)))))
+ ((compose (lambda (inputs) (alist-delete "emacs" inputs))
+ (lambda (inputs) (alist-delete "source" inputs)))
+ (delete-duplicates inputs-dirs)))
+ (format #t "environment variable EMACSLOADPATH set to `~a'~%"
+ (getenv "EMACSLOADPATH"))
+ #t))
+
(define %standard-phases
(modify-phases gnu:%standard-phases
(replace 'unpack unpack)
@@ -229,6 +275,7 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages."
(delete 'check)
(delete 'install)
(replace 'build build)
+ (add-before 'build 'setup-environment setup-environment)
(add-before 'build 'install install)
(add-after 'install 'make-autoloads make-autoloads)
(add-after 'make-autoloads 'patch-el-files patch-el-files)
--
2.15.1
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-15 9:36 ` Oleg Pykhalov
@ 2017-12-15 14:02 ` Ludovic Courtès
2017-12-19 10:46 ` Oleg Pykhalov
2017-12-15 20:35 ` Alex Kost
1 sibling, 1 reply; 26+ messages in thread
From: Ludovic Courtès @ 2017-12-15 14:02 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: Alex Kost, 28832
Hi Oleg,
I think it would have been better to open a separate issue for this.
Here are some superficial comments. I hope someone more knowledgeable
about Emacs can comment.
Oleg Pykhalov <go.wigust@gmail.com> skribis:
> From adda59022a61dfcf2add1d9f01d02df4be90a0f1 Mon Sep 17 00:00:00 2001
> From: Oleg Pykhalov <go.wigust@gmail.com>
> Date: Wed, 13 Dec 2017 08:10:21 +0300
> Subject: [PATCH] emacs-build-system: Add EMACSLOADPATH.
>
> * guix/build/emacs-build-system.scm: Add EMACSLOADPATH.
Please see ‘C-x v l’ in that file for the syntax of commit logs. :-)
> +(define (store-directory->package-name store-dir)
> + "Extract package name from STORE-DIR."
> + (let-values (((name _) ((compose package-name->name+version
> + strip-store-file-name)
> + store-dir)))
> + name))
It’s enough to write it like this:
(define store-directory->package-name
(compose package-name->name+version
strip-store-file-name))
Guile does automatic “multiple-value truncation”, which means that the
second value that the procedure returns can be ignored by the caller.
> +(define (store-directory->package-version store-dir)
> + "Extract package version from STORE-DIR."
> + (let-values (((_ version) ((compose package-name->name+version
> + strip-store-file-name)
> + store-dir)))
> + version))
Likewise.
> +(define* (setup-environment #:key inputs #:allow-other-keys)
> + "Export the variable EMACSLOADPATH, which are based on INPUTS respectively."
> + (let* ((filtered-inputs (emacs-inputs inputs))
> + (emacs-input-dir (cdr (assoc "emacs" filtered-inputs)))
> + (inputs-dirs (cdr filtered-inputs)))
Nitpick: Please see the guidelines mentioned in
<https://www.gnu.org/software/guix/manual/html_node/Formatting-Code.html>
on how to choose identifiers. I’d write:
(let* ((inputs (emacs-inputs inputs))
(emacs (assoc-ref inputs "emacs")))
…)
‘inputs-dirs’ is unneeded AIUI (see below).
> + ;; EMACSLOADPATH is where Emacs looks for the source code of the build's
> + ;; dependencies.
> + (setenv "EMACSLOADPATH"
> + (string-append emacs-input-dir "/share/emacs/"
> + (store-directory->package-version emacs-input-dir)
> + "/lisp"))
> + (for-each
> + (lambda (input)
> + (let ((store-item (cdr input)))
Rather:
(for-each (match-lambda
((name . input)
…))
…)
> + (setenv "EMACSLOADPATH"
> + (string-append
> + (or (getenv "EMACSLOADPATH") "")
> + ":" store-item %install-suffix "/"
> + ((compose string-drop-emacs store-directory->package-name)
> + store-item)))))
Rather:
(string-drop-emacs (store-directory->package-name item))
IMO ‘compose’ makes things less readable in this case.
> + ((compose (lambda (inputs) (alist-delete "emacs" inputs))
> + (lambda (inputs) (alist-delete "source" inputs)))
> + (delete-duplicates inputs-dirs)))
Rather:
(fold alist-delete inputs '("emacs" "source"))
Did you try rebuilding Emacs packages, and to simplify those that
explicitly pass -L flags?
Thanks a lot for working on it!
Ludo’.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-13 4:55 ` Oleg Pykhalov
@ 2017-12-15 20:35 ` Alex Kost
0 siblings, 0 replies; 26+ messages in thread
From: Alex Kost @ 2017-12-15 20:35 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832
Oleg Pykhalov (2017-12-13 07:55 +0300) wrote:
> Hello Alex and Ludovic,
>
> Alex Kost <alezost@gmail.com> writes:
>
> [...]
>
>>> If ‘emacs-build-system’ sets ‘EMACSLOADPATH’ automatically, then
>>> individual package definitions won’t need those -L flags. Dunno if
>>> there are good reasons not to do so. Maybe Alex has an opinion?
>>
>> I would rather ask Federico who wrote ‘emacs-build-system’ :)
>
> Do you mean Federico Beffa <beffa@fbengineering.ch>? He is quite in
> Guix git repository for 9 months as I see. Is it a good idea to CC him?
Yeah, I meant this Federico. I'm not sure if it is a good idea...,
probably..., I don't know :-)
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-15 9:36 ` Oleg Pykhalov
2017-12-15 14:02 ` Ludovic Courtès
@ 2017-12-15 20:35 ` Alex Kost
2017-12-19 11:07 ` Oleg Pykhalov
1 sibling, 1 reply; 26+ messages in thread
From: Alex Kost @ 2017-12-15 20:35 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832
Hello, I have only one addition to the Ludovic's comments.
Oleg Pykhalov (2017-12-15 12:36 +0300) wrote:
[...]
> +(define* (setup-environment #:key inputs #:allow-other-keys)
> + "Export the variable EMACSLOADPATH, which are based on INPUTS respectively."
> + (let* ((filtered-inputs (emacs-inputs inputs))
> + (emacs-input-dir (cdr (assoc "emacs" filtered-inputs)))
> + (inputs-dirs (cdr filtered-inputs)))
> + ;; EMACSLOADPATH is where Emacs looks for the source code of the build's
> + ;; dependencies.
> + (setenv "EMACSLOADPATH"
> + (string-append emacs-input-dir "/share/emacs/"
> + (store-directory->package-version emacs-input-dir)
> + "/lisp"))
> + (for-each
> + (lambda (input)
> + (let ((store-item (cdr input)))
> + (setenv "EMACSLOADPATH"
> + (string-append
> + (or (getenv "EMACSLOADPATH") "")
> + ":" store-item %install-suffix "/"
> + ((compose string-drop-emacs store-directory->package-name)
> + store-item)))))
> + ((compose (lambda (inputs) (alist-delete "emacs" inputs))
> + (lambda (inputs) (alist-delete "source" inputs)))
"emacs" and "source" may not be the only inputs that should be deleted.
For example, 'emacs-exwm-x' package also has "xhost" and "dbus" inputs.
And your 'string-drop-emacs' will fail on these names, right?
Since there is 'emacs-package?' function in this module, perhaps it
would be better to use it instead (to add only emacs packages to
EMACSLOADPATH), WDYT?
P.S. Actually, I didn't test your patch, so maybe I just didn't
understand the code properly :-)
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-15 14:02 ` Ludovic Courtès
@ 2017-12-19 10:46 ` Oleg Pykhalov
2017-12-19 20:57 ` Alex Kost
0 siblings, 1 reply; 26+ messages in thread
From: Oleg Pykhalov @ 2017-12-19 10:46 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: Alex Kost, bug-guix, 28832
[-- Attachment #1.1: Type: text/plain, Size: 1422 bytes --]
Hello Ludovic,
Thank you for refactoring notes!
ludo@gnu.org (Ludovic Courtès) writes:
> I think it would have been better to open a separate issue for this.
> Here are some superficial comments. I hope someone more knowledgeable
> about Emacs can comment.
OK, I CC bug-guix@gnu.org in this message.
Previos discussion: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28832#17
> Oleg Pykhalov <go.wigust@gmail.com> skribis:
[...]
> Please see ‘C-x v l’ in that file for the syntax of commit logs. :-)
Oh, nice tip. Thanks!
[...]
> Did you try rebuilding Emacs packages, and to simplify those that
> explicitly pass -L flags?
I tried it on emacs-json-reformat which wants many -L flags and
succeeded build a manifest with following packages and patch:
emacs-aggressive-indent emacs-company emacs-company-quickhelp
emacs-debbugs emacs-elfeed emacs-erc-hl-nicks emacs-default-encrypt
emacs-god-mode emacs-ggtags emacs-git-gutter emacs-gitpatch emacs-guix
emacs-helm emacs-helm-make emacs-helm-projectile
emacs-highlight-stages emacs-ivy emacs-markdown-mode
emacs-multiple-cursors emacs-nix-mode emacs-org emacs-projectile
emacs-rainbow-delimiters emacs-rainbow-mode emacs-slime
emacs-smartparens emacs-transmission emacs-transpose-frame
emacs-use-package emacs-w3m emacs-which-key emacs-yasnippet
emacs-yasnippet-snippets flycheck geiser magit
[-- Attachment #1.2: [PATCH] emacs-build-system: Add EMACSLOADPATH. --]
[-- Type: text/x-patch, Size: 3217 bytes --]
From c66f03c09517571a03fdf97b86bc571a71e969bf Mon Sep 17 00:00:00 2001
From: Oleg Pykhalov <go.wigust@gmail.com>
Date: Wed, 13 Dec 2017 08:10:21 +0300
Subject: [PATCH] emacs-build-system: Handle EMACSLOADPATH environment
variable.
Define the 'EMACSLOADPATH' environment variable to carry all inputs in tests.
* guix/build/emacs-build-system.scm (setup-environment): New procedure.
(%standard-phases): Use the new setup-environment procedure.
---
guix/build/emacs-build-system.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index bd0d2e026..9897abf9e 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -222,6 +223,37 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages."
strip-store-file-name)
store-dir))
+(define* (setup-environment #:key inputs #:allow-other-keys)
+ "Export the variable EMACSLOADPATH, which are based on INPUTS respectively."
+ (define (name+version input)
+ (package-name->name+version (strip-store-file-name input)))
+ (match (assoc "emacs" inputs)
+ ((name . input)
+ (setenv "EMACSLOADPATH"
+ (string-join (list input "share" name
+ ((compose (lambda (_ version) version)
+ name+version)
+ input)
+ "lisp")
+ "/"))))
+ (for-each (match-lambda
+ ((name . input)
+ (setenv "EMACSLOADPATH"
+ (string-append
+ (or (getenv "EMACSLOADPATH") "")
+ ":" input %install-suffix "/"
+ ((compose (lambda (name version)
+ (string-append
+ (string-drop name
+ (string-length "emacs-"))
+ "-" version))
+ name+version)
+ input)))))
+ (fold alist-delete (emacs-inputs inputs) '("emacs" "source")))
+ (format #t "environment variable EMACSLOADPATH set to `~a'~%"
+ (getenv "EMACSLOADPATH"))
+ #t)
+
(define %standard-phases
(modify-phases gnu:%standard-phases
(replace 'unpack unpack)
@@ -229,6 +261,7 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages."
(delete 'check)
(delete 'install)
(replace 'build build)
+ (add-before 'build 'setup-environment setup-environment)
(add-before 'build 'install install)
(add-after 'install 'make-autoloads make-autoloads)
(add-after 'make-autoloads 'patch-el-files patch-el-files)
--
2.15.1
[-- Attachment #1.3: Type: text/plain, Size: 7 bytes --]
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-15 20:35 ` Alex Kost
@ 2017-12-19 11:07 ` Oleg Pykhalov
0 siblings, 0 replies; 26+ messages in thread
From: Oleg Pykhalov @ 2017-12-19 11:07 UTC (permalink / raw)
To: Alex Kost; +Cc: 28832
[-- Attachment #1: Type: text/plain, Size: 610 bytes --]
Hello Alex,
Alex Kost <alezost@gmail.com> writes:
[...]
> "emacs" and "source" may not be the only inputs that should be deleted.
> For example, 'emacs-exwm-x' package also has "xhost" and "dbus" inputs.
> And your 'string-drop-emacs' will fail on these names, right?
>
> Since there is 'emacs-package?' function in this module, perhaps it
> would be better to use it instead (to add only emacs packages to
> EMACSLOADPATH), WDYT?
Yes, this is why I used 'emacs-inputs'. It evaluates 'emacs-package?'
as I see. So we peek only "/gnu/store/…-emacs-" packages.
[...]
Thanks,
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-19 10:46 ` Oleg Pykhalov
@ 2017-12-19 20:57 ` Alex Kost
2017-12-20 3:26 ` Oleg Pykhalov
0 siblings, 1 reply; 26+ messages in thread
From: Alex Kost @ 2017-12-19 20:57 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832
Oleg Pykhalov (2017-12-19 13:46 +0300) wrote:
[...]
> + (for-each (match-lambda
> + ((name . input)
> + (setenv "EMACSLOADPATH"
> + (string-append
> + (or (getenv "EMACSLOADPATH") "")
> + ":" input %install-suffix "/"
> + ((compose (lambda (name version)
> + (string-append
> + (string-drop name
> + (string-length "emacs-"))
I would move this code into its own 'string-drop-emacs' function (as you
did in the previous patch) and I would make it more robust: there is a
problem with this code: (string-drop "geiser" 6) does not return what
you mean, and (string-drop "dash" 6) errors! I think we shouldn't rely
on the assumption that all emacs inputs have "emacs-" prefix, so I think
this procedure should check whether the input name begins with "emacs-"
before trying to remove this substring.
> + "-" version))
> + name+version)
> + input)))))
> + (fold alist-delete (emacs-inputs inputs) '("emacs" "source")))
Since you already take only emacs inputs, is it really needed to remove
"emacs" and "source"? I mean emacs inputs do not contain "emacs" and
"source" anyway, right?
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-19 20:57 ` Alex Kost
@ 2017-12-20 3:26 ` Oleg Pykhalov
2017-12-20 22:10 ` Alex Kost
0 siblings, 1 reply; 26+ messages in thread
From: Oleg Pykhalov @ 2017-12-20 3:26 UTC (permalink / raw)
To: Alex Kost; +Cc: 28832
[-- Attachment #1.1: Type: text/plain, Size: 824 bytes --]
Alex Kost <alezost@gmail.com> writes:
> and I would make it more robust: there is a
> problem with this code: (string-drop "geiser" 6) does not return what
> you mean
Yes, because "geiser" differs from most of Emacs packages:
ls /gnu/store/7rl2k8ismmyq9ic6ha6vzv38a3hrrni2-emacs-dash-2.13.0/share/emacs/site-lisp/guix.d/dash-2.13.0/
dash-autoloads.el dash.el dash.elc dash-functional.el dash-functional.elc
ls /gnu/store/7lh77fmapmjjv3kj2q69dy58kjniw9am-geiser-0.9/share/emacs/site-lisp/
geiser-autodoc.el geiser-chibi.elc …
Maybe we just need to fix "geiser"?
> , and (string-drop "dash" 6) errors!
Do you really mean emacs-dash or dash? For me both succeeded.
As I see emacs-dash is OK, except "emacs-minimal" in EMACSLOADPATH.
Here is a log-file with DEBUG-INPUTS:
[-- Attachment #1.2: emacs-dash build log-file --]
[-- Type: application/octet-stream, Size: 3697 bytes --]
[-- Attachment #1.3: Type: text/plain, Size: 1891 bytes --]
> I think we shouldn't rely on the assumption that all emacs inputs have
> "emacs-" prefix
Then, how to determine that a package is Emacs package?
> , so I think
> this procedure should check whether the input name begins with "emacs-"
> before trying to remove this substring.
>> + "-" version))
>> + name+version)
>> + input)))))
>> + (fold alist-delete (emacs-inputs inputs) '("emacs" "source")))
>
> Since you already take only emacs inputs, is it really needed to remove
> "emacs" and "source"? I mean emacs inputs do not contain "emacs" and
> "source" anyway, right?
emacs inputs contain "emacs-minimal" and "source". So we actually need
to remove "emacs-minimal" instead "emacs".
(emacs-inputs '(("emacs" . "/gnu/store/g1ldcr600kmdf2n1gsphk04hm30jr4bn-emacs-25.3")
("emacs-minimal" . "/gnu/store/p4smq1mw13lmpkdbs59d7w827hy7mvgy-emacs-minimal-25.3")
("emacs-dash" . "/gnu/store/dn7mygbi0pm985lz6qc64fsaz9f8zmfi-emacs-dash-2.13.0")
("emacs-shut-up" . "/gnu/store/k0zddbwfwpdgj1ih2ypl50n09dfxhq1f-emacs-shut-up-0.3.2")
("emacs-undercover" . "/gnu/store/ypcyxb3wpqlnf962k8ygp5csr6cmi6w3-emacs-undercover-0.6.0")
("source" . "/gnu/store/gyxjrmhk4xqd8r78blxb92f9xc1z92fr-emacs-pos-tip-0.4.6.tar.gz")))
(("emacs-minimal" . "/gnu/store/p4smq1mw13lmpkdbs59d7w827hy7mvgy-emacs-minimal-25.3")
("emacs-dash" . "/gnu/store/dn7mygbi0pm985lz6qc64fsaz9f8zmfi-emacs-dash-2.13.0")
("emacs-shut-up" . "/gnu/store/k0zddbwfwpdgj1ih2ypl50n09dfxhq1f-emacs-shut-up-0.3.2")
("emacs-undercover" . "/gnu/store/ypcyxb3wpqlnf962k8ygp5csr6cmi6w3-emacs-undercover-0.6.0")
("source" . "/gnu/store/gyxjrmhk4xqd8r78blxb92f9xc1z92fr-emacs-pos-tip-0.4.6.tar.gz"))
Thanks,
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-20 3:26 ` Oleg Pykhalov
@ 2017-12-20 22:10 ` Alex Kost
2017-12-21 4:48 ` Oleg Pykhalov
0 siblings, 1 reply; 26+ messages in thread
From: Alex Kost @ 2017-12-20 22:10 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832
Oleg Pykhalov (2017-12-20 06:26 +0300) wrote:
> Alex Kost <alezost@gmail.com> writes:
>
>> and I would make it more robust: there is a
>> problem with this code: (string-drop "geiser" 6) does not return what
>> you mean
>
> Yes, because "geiser" differs from most of Emacs packages:
>
> ls
> /gnu/store/7rl2k8ismmyq9ic6ha6vzv38a3hrrni2-emacs-dash-2.13.0/share/emacs/site-lisp/guix.d/dash-2.13.0/
> dash-autoloads.el dash.el dash.elc dash-functional.el dash-functional.elc
>
> ls /gnu/store/7lh77fmapmjjv3kj2q69dy58kjniw9am-geiser-0.9/share/emacs/site-lisp/
> geiser-autodoc.el geiser-chibi.elc …
>
> Maybe we just need to fix "geiser"?
Sorry, I don't understand what you mean. What is wrong with geiser and
why/how should it be fixed?
Also do other non-"emacs-" packages (magit, emms) have the same problem?
>> , and (string-drop "dash" 6) errors!
>
> Do you really mean emacs-dash or dash? For me both succeeded.
I meant just "dash" name.
> As I see emacs-dash is OK, except "emacs-minimal" in EMACSLOADPATH.
> Here is a log-file with DEBUG-INPUTS:
No-no, I didn't mean that the build process of 'emacs-dash' would fail,
I meant that your code uses 'string-drop' and it may fail:
--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> (string-drop "dash" 6)
ERROR: In procedure string-drop:
Value out of range 0 to 4: 6
Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]>
--8<---------------cut here---------------end--------------->8---
All I wanted to say is that emacs inputs do not necessarily have
"emacs-" prefix. For example, 'emacs-direnv' and 'emacs-ag' packages
have "dash" input, but not "emacs-dash".
But now I see that it's not a problem: I mistakenly thought that the
names are taken from the input names, but now I see they are extracted
from the store file names, so my above concern is not relevant :-)
>> I think we shouldn't rely on the assumption that all emacs inputs have
>> "emacs-" prefix
>
> Then, how to determine that a package is Emacs package?
I don't know :-) 'emacs-inputs' is probably the best way.
>> , so I think
>> this procedure should check whether the input name begins with "emacs-"
>> before trying to remove this substring.
>>> + "-" version))
>>> + name+version)
>>> + input)))))
>>> + (fold alist-delete (emacs-inputs inputs) '("emacs" "source")))
>>
>> Since you already take only emacs inputs, is it really needed to remove
>> "emacs" and "source"? I mean emacs inputs do not contain "emacs" and
>> "source" anyway, right?
>
> emacs inputs contain "emacs-minimal" and "source".
> So we actually need to remove "emacs-minimal" instead "emacs".
or maybe both? since some packages uses 'emacs' instead of
'emacs-minimal' (emacs-auctex, emacs-exwm, etc.).
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-20 22:10 ` Alex Kost
@ 2017-12-21 4:48 ` Oleg Pykhalov
2017-12-22 20:20 ` Alex Kost
0 siblings, 1 reply; 26+ messages in thread
From: Oleg Pykhalov @ 2017-12-21 4:48 UTC (permalink / raw)
To: Alex Kost; +Cc: 28832
[-- Attachment #1: Type: text/plain, Size: 2518 bytes --]
Hello Alex,
Alex Kost <alezost@gmail.com> writes:
> Oleg Pykhalov (2017-12-20 06:26 +0300) wrote:
>> Yes, because "geiser" differs from most of Emacs packages:
>>
>> ls
>> /gnu/store/7rl2k8ismmyq9ic6ha6vzv38a3hrrni2-emacs-dash-2.13.0/share/emacs/site-lisp/guix.d/dash-2.13.0/
>> dash-autoloads.el dash.el dash.elc dash-functional.el dash-functional.elc
>>
>> ls /gnu/store/7lh77fmapmjjv3kj2q69dy58kjniw9am-geiser-0.9/share/emacs/site-lisp/
>> geiser-autodoc.el geiser-chibi.elc …
>>
>> Maybe we just need to fix "geiser"?
>
> Sorry, I don't understand what you mean. What is wrong with geiser and
> why/how should it be fixed?
Elisp files of Geiser are in different place than others Emacs
packages. There is no 'guix.d/geiser-0.9/'.
(for-each (match-lambda …) …) in 'setup-environment' will failed.
Either we need to handle this case specific for Geiser or just
change where it need to store Elisp files in 'geiser' package recipe.
> Also do other non-"emacs-" packages (magit, emms) have the same problem?
Hm,
/gnu/store/k9zrrzpdw0mld0lqyackba3kwbw41ipr-emacs-emms-4.3/share/emacs/site-lisp/
/gnu/store/zihybmvkccjb310fsxc2sad5j0w5vdi1-magit-2.11.0/share/emacs/stie-lisp/
it seems that it will be easier to handle a case without
'guix.d/PACKAGE-VERSION/'.
But I don't see a way to determine is magit an Emacs package, because
there is no "emacs-" prefix in "/gnu/store/…-magit-2.11.0".
'emacs-inputs' will not help. See below.
>>> I think we shouldn't rely on the assumption that all emacs inputs have
>>> "emacs-" prefix
>>
>> Then, how to determine that a package is Emacs package?
>
> I don't know :-) 'emacs-inputs' is probably the best way.
No :-), it only relies on "emacs-" prefix in store.
emacs-inputs -> emacs-package? -> (string-prefix? "emacs-" name)
>> emacs inputs contain "emacs-minimal" and "source".
>> So we actually need to remove "emacs-minimal" instead "emacs".
>
> or maybe both? since some packages uses 'emacs' instead of
> 'emacs-minimal' (emacs-auctex, emacs-exwm, etc.).
Not both, because 'emacs-inputs' removes all inputs without "emacs-"
prefix, so 'emacs' too.
(emacs-inputs '(("emacs" . "/gnu/store/g1ldcr600kmdf2n1gsphk04hm30jr4bn-emacs-25.3")
("emacs-minimal" . "/gnu/store/p4smq1mw13lmpkdbs59d7w827hy7mvgy-emacs-minimal-25.3")))
$3 = (("emacs-minimal" . "/gnu/store/p4smq1mw13lmpkdbs59d7w827hy7mvgy-emacs-minimal-25.3"))
Thanks,
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-21 4:48 ` Oleg Pykhalov
@ 2017-12-22 20:20 ` Alex Kost
0 siblings, 0 replies; 26+ messages in thread
From: Alex Kost @ 2017-12-22 20:20 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832
Oleg Pykhalov (2017-12-21 07:48 +0300) wrote:
> Hello Alex,
>
> Alex Kost <alezost@gmail.com> writes:
>
>> Oleg Pykhalov (2017-12-20 06:26 +0300) wrote:
[...]
>>> Maybe we just need to fix "geiser"?
>>
>> Sorry, I don't understand what you mean. What is wrong with geiser and
>> why/how should it be fixed?
>
> Elisp files of Geiser are in different place than others Emacs
> packages. There is no 'guix.d/geiser-0.9/'.
Oh, now I see what you mean.
> (for-each (match-lambda …) …) in 'setup-environment' will failed.
>
> Either we need to handle this case specific for Geiser or just
> change where it need to store Elisp files in 'geiser' package recipe.
It is not a specific Geiser case: installing *.el files in
"share/emacs/site-lisp/" is a common practice. Actually, it is the
default place where automake wants to install elisp files (using
AM_PATH_LISPDIR macro), so whenever a package uses gnu-build-system,
most likely it will install elisp files to the site-lisp directory. For
example, the following packages do this: bbdb, gettext, emms, magit,
emacs-wget, emacs-w3m, emacs-mmm-mode,...
>> Also do other non-"emacs-" packages (magit, emms) have the same problem?
>
> Hm,
>
> /gnu/store/k9zrrzpdw0mld0lqyackba3kwbw41ipr-emacs-emms-4.3/share/emacs/site-lisp/
> /gnu/store/zihybmvkccjb310fsxc2sad5j0w5vdi1-magit-2.11.0/share/emacs/stie-lisp/
>
> it seems that it will be easier to handle a case without
> 'guix.d/PACKAGE-VERSION/'.
I also think so, for example, 'emacs-inputs-el-directories' procedure
simply adds "/share/emacs/site-lisp" along with the "guix.d/..." directory.
[...]
>>>> I think we shouldn't rely on the assumption that all emacs inputs have
>>>> "emacs-" prefix
>>>
>>> Then, how to determine that a package is Emacs package?
>>
>> I don't know :-) 'emacs-inputs' is probably the best way.
>
> No :-), it only relies on "emacs-" prefix in store.
> emacs-inputs -> emacs-package? -> (string-prefix? "emacs-" name)
Yeah, I understand this. I meant this is the best way we have at our
disposal. I also don't know how to determine emacs packages without
"emacs-" prefix (well, maybe by looking for *.el files inside the
package store dir, not sure if it's suitable though).
>>> emacs inputs contain "emacs-minimal" and "source".
>>> So we actually need to remove "emacs-minimal" instead "emacs".
>>
>> or maybe both? since some packages uses 'emacs' instead of
>> 'emacs-minimal' (emacs-auctex, emacs-exwm, etc.).
>
> Not both, because 'emacs-inputs' removes all inputs without "emacs-"
> prefix, so 'emacs' too.
Oh right, sorry.
So to clarify the current situation, we have 2 problems:
1. 'emacs-package?' defines emacs package simply by checking "emacs-"
prefix, so it doesn't find such packages as magit or geiser. This
problem does not relate directly to your patch; rather it is the problem
of the current 'emacs-build-system': if some emacs package depends on
'magit' or 'geiser' (currently there are no such packages),
emacs-build-system will not compile *.el files (because it will not find
'magit'/'geiser' needed for compilation).
2. Your patch handles only "/share/emacs/site-lisp/guix.d/<foo>/" but
not "/share/emacs/site-lisp/".
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2017-12-12 9:17 ` Ludovic Courtès
2017-12-12 17:23 ` Alex Kost
@ 2018-01-11 21:46 ` Ludovic Courtès
2018-01-15 12:01 ` bug#28832: " Oleg Pykhalov
1 sibling, 1 reply; 26+ messages in thread
From: Ludovic Courtès @ 2018-01-11 21:46 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832, Alex Kost
Hi Oleg,
ludo@gnu.org (Ludovic Courtès) skribis:
> Oleg Pykhalov <go.wigust@gmail.com> skribis:
>
>> ludo@gnu.org (Ludovic Courtès) writes:
[...]
>> From d589de21acb02d0fba7aee3b48e5f42d7bd8957e Mon Sep 17 00:00:00 2001
>> From: Oleg Pykhalov <go.wigust@gmail.com>
>> Date: Tue, 12 Dec 2017 01:41:08 +0300
>> Subject: [PATCH] gnu: Add emacs-json-reformat.
>>
>> * gnu/packages/patches/emacs-json-reformat-fix-tests.patch: New file.
>> * gnu/local.mk (dist_patch_DATA): Add this.
>> * gnu/packages/emacs.scm (emacs-json-reformat): New variable.
>
> [...]
>
>> diff --git a/gnu/packages/patches/emacs-json-reformat-fix-tests.patch b/gnu/packages/patches/emacs-json-reformat-fix-tests.patch
>> new file mode 100644
>> index 000000000..23a239582
>> --- /dev/null
>> +++ b/gnu/packages/patches/emacs-json-reformat-fix-tests.patch
>> @@ -0,0 +1,28 @@
>> +Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
>> +
>> +This patch fixes tests for Emacs 25.
>
> Please mention <https://github.com/gongo/json-reformat/issues/33> here.
>
> OK with these changes!
We went on discussing other things and forgot about the patch. :-)
Could you commit it with these changes, Oleg?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#28832: [PATCH 1/3] gnu: Add emacs-json-reformat.
2018-01-11 21:46 ` Ludovic Courtès
@ 2018-01-15 12:01 ` Oleg Pykhalov
2018-01-15 13:33 ` [bug#28832] " Ludovic Courtès
0 siblings, 1 reply; 26+ messages in thread
From: Oleg Pykhalov @ 2018-01-15 12:01 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 28832, 28832-done, Alex Kost
[-- Attachment #1: Type: text/plain, Size: 1533 bytes --]
Hello Ludovic,
ludo@gnu.org (Ludovic Courtès) writes:
[...]
>>> From d589de21acb02d0fba7aee3b48e5f42d7bd8957e Mon Sep 17 00:00:00 2001
>>> From: Oleg Pykhalov <go.wigust@gmail.com>
>>> Date: Tue, 12 Dec 2017 01:41:08 +0300
>>> Subject: [PATCH] gnu: Add emacs-json-reformat.
>>>
>>> * gnu/packages/patches/emacs-json-reformat-fix-tests.patch: New file.
>>> * gnu/local.mk (dist_patch_DATA): Add this.
>>> * gnu/packages/emacs.scm (emacs-json-reformat): New variable.
>>
>> [...]
>>
>>> diff --git a/gnu/packages/patches/emacs-json-reformat-fix-tests.patch b/gnu/packages/patches/emacs-json-reformat-fix-tests.patch
>>> new file mode 100644
>>> index 000000000..23a239582
>>> --- /dev/null
>>> +++ b/gnu/packages/patches/emacs-json-reformat-fix-tests.patch
>>> @@ -0,0 +1,28 @@
>>> +Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
>>> +
>>> +This patch fixes tests for Emacs 25.
>>
>> Please mention <https://github.com/gongo/json-reformat/issues/33> here.
>>
>> OK with these changes!
>
> We went on discussing other things and forgot about the patch. :-)
> Could you commit it with these changes, Oleg?
I thought we suspend this until automation of "-L" flags.
Seems like a similar discussion[1] gets stuck too.
Pushed as b0912e9fdbffab15d9a754b2922778cfbd1fac2a
Also pushed emacs-json-mode as dd72837dff128dbb1258826fe39467d1ef000ac1
I'll close current bug report.
Footnotes:
[1] https://lists.nongnu.org/archive/html/guix-patches/2017-12/msg00640.html
Thanks,
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2018-01-15 12:01 ` bug#28832: " Oleg Pykhalov
@ 2018-01-15 13:33 ` Ludovic Courtès
2018-01-16 17:32 ` Alex Kost
0 siblings, 1 reply; 26+ messages in thread
From: Ludovic Courtès @ 2018-01-15 13:33 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 28832, 28832-done, Alex Kost
Hi Oleg,
Oleg Pykhalov <go.wigust@gmail.com> skribis:
> ludo@gnu.org (Ludovic Courtès) writes:
>
> [...]
>
>>>> From d589de21acb02d0fba7aee3b48e5f42d7bd8957e Mon Sep 17 00:00:00 2001
>>>> From: Oleg Pykhalov <go.wigust@gmail.com>
>>>> Date: Tue, 12 Dec 2017 01:41:08 +0300
>>>> Subject: [PATCH] gnu: Add emacs-json-reformat.
>>>>
>>>> * gnu/packages/patches/emacs-json-reformat-fix-tests.patch: New file.
>>>> * gnu/local.mk (dist_patch_DATA): Add this.
>>>> * gnu/packages/emacs.scm (emacs-json-reformat): New variable.
>>>
>>> [...]
>>>
>>>> diff --git a/gnu/packages/patches/emacs-json-reformat-fix-tests.patch b/gnu/packages/patches/emacs-json-reformat-fix-tests.patch
>>>> new file mode 100644
>>>> index 000000000..23a239582
>>>> --- /dev/null
>>>> +++ b/gnu/packages/patches/emacs-json-reformat-fix-tests.patch
>>>> @@ -0,0 +1,28 @@
>>>> +Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
>>>> +
>>>> +This patch fixes tests for Emacs 25.
>>>
>>> Please mention <https://github.com/gongo/json-reformat/issues/33> here.
>>>
>>> OK with these changes!
>>
>> We went on discussing other things and forgot about the patch. :-)
>> Could you commit it with these changes, Oleg?
>
> I thought we suspend this until automation of "-L" flags.
No no, the “OK with these changes” above really means you can go ahead.
:-)
The “-L” discussion is about an improvement we should make, but it
should not block this patch.
> Seems like a similar discussion[1] gets stuck too.
> Pushed as b0912e9fdbffab15d9a754b2922778cfbd1fac2a
Yeah, though I don’t think you should wait for Alex or anyone else to
make a decision: if you have an idea on how to improve this, based on
these discussions, then you’re probably in a good position to do it and
everyone will be happy. ;-)
> Also pushed emacs-json-mode as dd72837dff128dbb1258826fe39467d1ef000ac1
Great, thank you!
Ludo’.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat.
2018-01-15 13:33 ` [bug#28832] " Ludovic Courtès
@ 2018-01-16 17:32 ` Alex Kost
0 siblings, 0 replies; 26+ messages in thread
From: Alex Kost @ 2018-01-16 17:32 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 28832
Ludovic Courtès (2018-01-15 14:33 +0100) wrote:
> Oleg Pykhalov <go.wigust@gmail.com> skribis:
[...]
>> I thought we suspend this until automation of "-L" flags.
>
> No no, the “OK with these changes” above really means you can go ahead.
> :-)
>
> The “-L” discussion is about an improvement we should make, but it
> should not block this patch.
>
>> Seems like a similar discussion[1] gets stuck too.
>> Pushed as b0912e9fdbffab15d9a754b2922778cfbd1fac2a
>
> Yeah, though I don’t think you should wait for Alex or anyone else to
> make a decision: if you have an idea on how to improve this, based on
> these discussions, then you’re probably in a good position to do it and
> everyone will be happy. ;-)
I didn't think someone waits for me. My last message was:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28832#71
and I wasn't going to write anything else until a reply. To make it
clear: I don't mind any decision you make, I participated in this
discussion just because I was CC-ed. Please, go on with whatever seems
appropriate to you.
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2018-01-16 17:33 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-14 9:51 [bug#28832] [PATCH 0/3] gnu: Add emacs-json-mode Oleg Pykhalov
2017-10-14 10:29 ` [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat Oleg Pykhalov
2017-10-14 10:29 ` [bug#28832] [PATCH 2/3] gnu: Add emacs-json-snatcher Oleg Pykhalov
2017-10-20 12:41 ` Ludovic Courtès
2017-10-14 10:29 ` [bug#28832] [PATCH 3/3] gnu: Add emacs-json-mode Oleg Pykhalov
2017-10-20 12:34 ` [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat Ludovic Courtès
2017-12-01 10:23 ` Ludovic Courtès
2017-12-11 23:12 ` Oleg Pykhalov
2017-12-12 9:17 ` Ludovic Courtès
2017-12-12 17:23 ` Alex Kost
2017-12-13 4:55 ` Oleg Pykhalov
2017-12-15 20:35 ` Alex Kost
2017-12-15 9:36 ` Oleg Pykhalov
2017-12-15 14:02 ` Ludovic Courtès
2017-12-19 10:46 ` Oleg Pykhalov
2017-12-19 20:57 ` Alex Kost
2017-12-20 3:26 ` Oleg Pykhalov
2017-12-20 22:10 ` Alex Kost
2017-12-21 4:48 ` Oleg Pykhalov
2017-12-22 20:20 ` Alex Kost
2017-12-15 20:35 ` Alex Kost
2017-12-19 11:07 ` Oleg Pykhalov
2018-01-11 21:46 ` Ludovic Courtès
2018-01-15 12:01 ` bug#28832: " Oleg Pykhalov
2018-01-15 13:33 ` [bug#28832] " Ludovic Courtès
2018-01-16 17:32 ` Alex Kost
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.