diff mbox series

[bug#68448] Add guile-rsv package definition.

Message ID CAK0OjG1J-4bUVxrYvvYAcGUQNde0mwN-RcfDpNoCaUADQbC5kQ@mail.gmail.com
State New
Headers show
Series [bug#68448] Add guile-rsv package definition. | expand

Commit Message

Yuval Langer Jan. 14, 2024, 1:03 p.m. UTC
Hi,

this library implements the Rows of String Vectors file format as
specified by Stenway[1], an alternative to Comma Separated Values and
similar file formats.

It also provides two commands, rsv2scm and scm2rsv, for reading and
writing RSV files to and from a list of lists of strings.

The main repository is on Codeberg[2].

Many thanks,
Yuval Langer.

[1]: https://github.com/Stenway/RSV-Specification
[2]: https://codeberg.org/kakafarm/guile-rsv

Comments

Ludovic Courtès Jan. 28, 2024, 9:34 p.m. UTC | #1
Hi Yulav,

Yuval Langer <yuval.langer@gmail.com> skribis:

> From c5361f0bf17b02a385b4782a2435c52519095c7a Mon Sep 17 00:00:00 2001
> Message-Id: <c5361f0bf17b02a385b4782a2435c52519095c7a.1705236958.git.yuval.langer@gmail.com>
> From: Yuval Langer <yuval.langer@gmail.com>
> Date: Sun, 14 Jan 2024 14:54:10 +0200
> Subject: [PATCH] Add guile-rsv package definition.

Nice!

> +(define-public guile-rsv
> +  (let ((commit-string "ecf0cbd486bb5f73e335e9e04212b0985f3efc35")
> +        (base32-string "0cgnilix4050717xx3b2n45nfvr2hag1asbw92zs6mz6srq7xclq")
> +        (git-repository-url "https://codeberg.org/kakafarm/guile-rsv/"))
> +    (package
> +     (name "guile-rsv")
> +     (version "0.1.0")
> +     (source
> +      (origin
> +       (uri (git-reference
> +             (url git-repository-url)
> +             (commit commit-string)))
> +       (method git-fetch)
> +       (file-name (git-file-name name version))
> +       (sha256 (base32 base32-string))))

[...]

> +          (add-after 'install 'link-and-wrap-executable
> +                     (lambda _
> +                       (let* ([bin (string-append #$output
> +                                                  "/bin")] ;; bin directory for PATH.

[...]

> +     (home-page git-repository-url)
> +     (synopsis "R7RS Scheme library for reading and writing RSV data format")
> +     (description "R7RS Scheme library for reading and writing RSV (Rows of String
> +Values) data format.  Specified in
> +https://github.com/Stenway/RSV-Specification and demonstrated in
> +https://www.youtube.com/watch?v=tb_70o6ohMA.")

Could you please follow the conventions and style used elsewhere in the
code, in particular regarding how to deal with snapshots, avoiding
square brackets, possibly running ‘guix style guile-rsv’, and writing
synopsis and description following our guidelines:

  https://guix.gnu.org/manual/devel/en/html_node/Synopses-and-Descriptions.html
  https://guix.gnu.org/manual/devel/en/html_node/Version-Numbers.html

Could you send an updated version?

Thanks in advance!

Ludo’.
Yuval Langer Feb. 6, 2024, 1:15 p.m. UTC | #2
(re-sending to the debbugs thread)

On Sun, Jan 28, 2024 at 11:34 PM Ludovic Courtès <ludo@gnu.org> wrote:
> Nice!

Thank you!

> Could you please follow the conventions and style used elsewhere in the
> code, in particular regarding how to deal with snapshots, avoiding
> square brackets, possibly running ‘guix style guile-rsv’, and writing
> synopsis and description following our guidelines:
>
>   https://guix.gnu.org/manual/devel/en/html_node/Synopses-and-Descriptions.html
>   https://guix.gnu.org/manual/devel/en/html_node/Version-Numbers.html
>
> Could you send an updated version?

I have:

- Replaced the square brackets with parentheses in the let
  definitions,
- added a revision number and used `git-version`,
- rewrote the synopsis and description,
- checked the style with `guix style -L . guile-rsv` in my own Guix
  channel with this guile-rsv package definition, which seems to show
  no style errors or recommendations, and

I hope these are sufficient.

> Thanks in advance!
>
> Ludo’.

Thank you!
Yuval Langer.
diff mbox series

Patch

From c5361f0bf17b02a385b4782a2435c52519095c7a Mon Sep 17 00:00:00 2001
Message-Id: <c5361f0bf17b02a385b4782a2435c52519095c7a.1705236958.git.yuval.langer@gmail.com>
From: Yuval Langer <yuval.langer@gmail.com>
Date: Sun, 14 Jan 2024 14:54:10 +0200
Subject: [PATCH] Add guile-rsv package definition.

---
 gnu/packages/guile-xyz.scm | 63 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 77be632cc3..cb7c7f504b 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -5366,6 +5366,69 @@  using a short read-capability.")
     (home-page "https://codeberg.org/eris/guile-eris")
     (license license:gpl3+)))
 
+(define-public guile-rsv
+  (let ((commit-string "ecf0cbd486bb5f73e335e9e04212b0985f3efc35")
+        (base32-string "0cgnilix4050717xx3b2n45nfvr2hag1asbw92zs6mz6srq7xclq")
+        (git-repository-url "https://codeberg.org/kakafarm/guile-rsv/"))
+    (package
+     (name "guile-rsv")
+     (version "0.1.0")
+     (source
+      (origin
+       (uri (git-reference
+             (url git-repository-url)
+             (commit commit-string)))
+       (method git-fetch)
+       (file-name (git-file-name name version))
+       (sha256 (base32 base32-string))))
+     (inputs
+      (list guile-3.0
+            bash))
+     (build-system guile-build-system)
+     (arguments
+      (list
+       #:phases
+       #~(modify-phases
+          %standard-phases
+          (add-after 'install 'link-and-wrap-executable
+                     (lambda _
+                       (let* ([bin (string-append #$output
+                                                  "/bin")] ;; bin directory for PATH.
+                              [site-version (target-guile-effective-version)]
+                              [scm (string-append "/share/guile/site/"
+                                                  site-version)]
+                              [go (string-append "/lib/guile/"
+                                                 site-version
+                                                 "/site-ccache")])
+                         (mkdir-p bin)
+                         (for-each (lambda (command-name)
+                                     (let ((source-script (string-append
+                                                           #$output
+                                                           scm
+                                                           "/"
+                                                           command-name
+                                                           ".scm"))
+                                           (target-command (string-append
+                                                            bin
+                                                            "/"
+                                                            command-name)))
+                                       (symlink source-script target-command)
+                                       (wrap-program target-command
+                                                     #:sh (which "bash")
+                                                     `("GUILE_LOAD_PATH" prefix
+                                                       (,(string-append #$output scm)))
+                                                     `("GUILE_LOAD_COMPILED_PATH" prefix
+                                                       (,(string-append #$output go))))))
+                                   (list "scm2rsv" "rsv2scm"))))))))
+     (home-page git-repository-url)
+     (synopsis "R7RS Scheme library for reading and writing RSV data format")
+     (description "R7RS Scheme library for reading and writing RSV (Rows of String
+Values) data format.  Specified in
+https://github.com/Stenway/RSV-Specification and demonstrated in
+https://www.youtube.com/watch?v=tb_70o6ohMA.")
+     (license (list license:gpl3+
+                    license:expat-0)))))
+
 (define-public guile-r6rs-protobuf
   (package
     (name "guile-r6rs-protobuf")
-- 
2.30.2