Subject: [bug#43994] [PATCH] gnu: Add r-calculus.

From: zimoun <[email-masked]>
Date: Thu, 15 Oct 2020 13:09:06 +0200

Hi,

Thank you for your contribution.  It is fine.  For the sake of the
learning process, I suggest some minor tweaks and then you can send a v2
patch.  Does it make sense?

In the commit message, it is missing:

* gnu/packages/cran.scm (r-calculus): New variable.

> ---
>  gnu/packages/cran.scm | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
>
> diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
> index 59a409f8e9..8a4f0085f6 100644
> --- a/gnu/packages/cran.scm
> +++ b/gnu/packages/cran.scm
> @@ -24596,3 +24596,30 @@ enrichment analysis (GSEA) calculation with or without the absolute filtering.
>    Without filtering, users can perform (original) two-tailed or one-tailed
>  absolute GSEA.")
>      (license license:gpl2)))
> +
> +(define-public r-calculus
> +  (package
> +    (name "r-calculus")
> +    (version "0.2.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (cran-uri "calculus" version))
> +       (sha256
> +       (base32

Here, and issue of indentation.

       (uri (cran-uri "calculus" version))
       (sha256
        (base32

Usually, with Emacs (with the correct setup “.dir-locals.el“), the
simplest is to go to the first opening parenthesis and press ‘C-M-q’.

> +        "0hs7hzjl6xjza20v9zx9a1piywxa6w3h2rskr52d1dcbc0vwhinp"))))
> +    (properties `((upstream-name . "calculus")))
> +    (build-system r-build-system)
> +    (propagated-inputs `(("r-rcpp" ,r-rcpp)))

Usually, it is preferred to list below:

    (propagated-inputs
     `(("r-rcpp" ,r-rcpp)))

> +    (home-page "https://github.com/emanuele-guidotti/calculus")
> +    (synopsis "High Dimensional Numerical and Symbolic Calculus")
> +    (description
> +     "Efficient C++ optimized functions for numerical and symbolic calculus.
> +It includes basic symbolic arithmetic, tensor calculus, Einstein summing
> +convention, fast computation of the Levi-Civita symbol and generalized 

End of line: extra whitespace 

> +Kronecker delta, Taylor series expansion, multivariate Hermite polynomials,
> +accurate high-order derivatives, differential operators (Gradient, Jacobian,
> +Hessian, Divergence, Curl, Laplacian) and numerical integration in arbitrary
> +orthogonal coordinate systems: cartesian, polar, spherical, cylindrical, 

Idem

Again with Emacs, I personally have ’(whitespace-mode)’ with this
config and then it is really easy to spot out.

--8<---------------cut here---------------start------------->8---
(with-eval-after-load 'whitespace
  (setq whitespace-line-column nil
        whitespace-style '(face trailing lines-tail
                                space-before-tab newline
                                indentation empty space-after-tab)))

--8<---------------cut here---------------end--------------->8---

> +parabolic or user defined by custom scale factors.")
> +    (license license:gpl3)))
> \ No newline at end of file

Add RET. I guess.

Well, now you should do an “interactive rebase” and resend.  Using Emacs
(again!) and Magit , it looks like:

  r i
  edit C-c C-c
  # do your tweaks
  r r
  W c C-m b master C-m v 2 c
  ! git send-email --to=[email-masked] v2-0001-blabla.patch

Does it make sense?

All the best,
simon

PS:
You can use any tools you want. :-) Sorry for the Emacs’s
evangelism. ;-)