Subject: [bug#32538] [PATCH] Add emacs-elpy

From: [email-masked] (Ludovic Courtès)
Date: Mon, 03 Sep 2018 23:07:03 +0200

Hello Maxim,

I didn’t actually try the patch set but on a quick look it LGTM!
(Including v2 of the emacs-elpy patch itself.)

Maxim Cournoyer <[email-masked]> skribis:

> From 54130c8f5bcf683b1681e1a6c6238421bd0c6459 Mon Sep 17 00:00:00 2001
> From: Maxim Cournoyer <[email-masked]>
> Date: Sun, 26 Aug 2018 23:56:15 -0400
> Subject: [PATCH 2/9] gnu: Add python-toml.
>
> * gnu/packages/python.scm (python-toml, python2-toml): New variables.

[...]

> +    (home-page "https://github.com/uiri/toml")
> +    (synopsis "Library for TOML")
> +    (description
> +     "@code{toml} is a library for Tom's Obvious, Minimal Language (TOML).")
> +    (license license:expat)))

Maybe “parser” instead of “library”?

> +(define-public python2-toml
> +  (package-with-python2 python-toml))

There was a loose consensus that if the Python 2 variant isn’t strictly
needed, then it’s best not to include it; so I think you can remove it.

> From 46ccd0d7093f9adbe091ec6e7846719e5ad267bf Mon Sep 17 00:00:00 2001
> From: Maxim Cournoyer <[email-masked]>
> Date: Mon, 12 Feb 2018 22:08:03 -0500
> Subject: [PATCH 4/9] gnu: Add emacs-el-x.
>
> * gnu/packages/emacs.scm (emacs-el-x): New variable.

[...]

> +    (home-page "https://github.com/sigma/el-x")
> +    (synopsis "Emacs Lisp extensions")
> +    (description "Defines the @code{dflet} macro to provide the historic
> +behavior of @code{flet}, as well as @code{declare-function} stub for older
> +Emacs.")

Full sentence please.  :-)

> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (add-before 'check 'set-shell
> +           ;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
> +           ;; work.
> +           (lambda _
> +             (setenv "SHELL" (which "sh")))))

This still needs to return #t, though I think Mark’s plan is to put an
end to that in the next ‘core-updates’ cycle.

> +    (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
> +    (synopsis "Highlighting indentation for Emacs")
> +    (description "Provides two minor modes to highlight indentation guides in Emacs:
> +@enumerate
> +@item @code{highlight-indentation-mode}, which displays guidelines
> +indentation (space indentation only).
> +@item @code{ighlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
              ^
Typo.

> +    (arguments
> +     `(#:include (cons* "^elpy\\/" "^snippets\\/" %default-include)
> +       #:phases
> +       ;; TODO: Make `elpy-config' display Guix commands :)
> +       (modify-phases %standard-phases
> +         ;; One elpy test depends on being run inside a Python virtual
> +         ;; environment to pass. We have nothing to gain from doing so here,
> +         ;; so we just trick Elpy into thinking we are (see:
> +         ;; https://github.com/jorgenschaefer/elpy/pull/1293).
> +         (add-before 'check 'fake-virtualenv
> +           (lambda _
> +             (setenv "VIRTUAL_ENV" "/tmp")))
> +         ;; TODO: Remove after next release (see:
> +         ;; https://github.com/jorgenschaefer/elpy/pull/1293).
> +         (add-after 'unpack 'fix-broken-test
> +           (lambda _
> +             (substitute* "test/elpy-config-test.el"
> +               (("python-check-command") "elpy-syntax-check-command")))))

Likewise for phase return values.

> +    (home-page "https://github.com/jorgenschaefer/elpy")
> +    (synopsis "Python development environment for Emacs")
> +    (description "Elpy brings powerful Python editing to Emacs.  It combines
> +and configures a number of other packages written in Emacs Lisp as well
> +as Python.")

If you could expound a little bit on the features (completion?
navigation? refactoring?), that would be great.

Otherwise LGTM, thanks!

Ludo’.