Subject: [bug#56663] [PATCH 24/24]: gnu: just: New package.

From: Maxime Devos <[email-masked]>
Date: Thu, 21 Jul 2022 16:37:06 +0200

On 20-07-2022 14:22, Jean Pierre De Jesus DIAZ via Guix-patches via wrote:
> Empty Message

https://github.com/casey/temptree

Sending the patch seems to have gone wrong (there's Empty Message, and 
the subject line is always the same).

Anyway, I looked through the package definitions a bit:

> +         "--skip=choose::status_error"
> +         "--skip=edit::editor_working_directory"
> +         "--skip=edit::status_error"
> +         "--skip=export::setting_shebang"
> +         "--skip=export::shebang"
> +         "--skip=justfile::tests::run_shebang"
> +         "--skip=functions::env_var_functions"
> +         "--skip=functions::path_functions"
> +         "--skip=functions::path_functions2"
> +         "--skip=misc::quiet_shebang_recipe"
> +         "--skip=misc::shebang_line_numbers"
> +         "--skip=positional_arguments::shebang"
> +         "--skip=positional_arguments::variadic_shebang"
> +         "--skip=quiet::choose_status"
> +         "--skip=quiet::quiet_shebang"
> +         "--skip=shell::flag"
> + 
> "--skip=working_directory::change_working_directory_to_search_justfile_parent"
> + "--skip=working_directory::justfile_and_working_directory"
> + "--skip=working_directory::justfile_without_working_directory"
> + "--skip=working_directory::justfile_without_working_directory_relative"
> +         "--skip=working_directory::search_dir_child"
> +         "--skip=working_directory::search_dir_parent")
Why are all these tests skipped?

 > +    (synopsis "Lexically clean paths")
 > +    (description "Lexically clean paths")

A synopsis is not the same as a description. I recommend looking at 
non-Rust packages for examples, the synopsis and description of Rust 
packages have historically been neglected.

 > +     `(#:tests? #f ; `whatever' requires a recent compiler.

Possibly it doesn't, try setting RUSTC_BOOTSTRAP.

  (define-public rust-digest-0.10
    (package
      (name "rust-digest")
-    (version "0.10.1")
+    (version "0.10.3")

- "16wpqnwlzx0lbnwccwikns7dq8fblcc6kma2l7xz8anlh5hdd5xn"))))
+ "01nmj9cci5qdm4q4wlmz104rzr68d5m823kdzd95bypslq68dyzj"))))

FWIW, I can confirm I got the same hash in some code I haven't submitted 
yet (antioxidant).

  (define-public rust-typenum-1
    (package
      (name "rust-typenum")
-    (version "1.12.0")
+    (version "1.15.0")
      (source
        (origin
          (method url-fetch)
@@ -67690,8 +67690,11 @@ (define-public rust-typenum-1
          (file-name (string-append name "-" version ".tar.gz"))
          (sha256
           (base32
- "0cvbksljz61ian21fnn0h51kphl0pwpzb932bv4s0rwy1wh8lg1p"))))
+ "11yrvz1vd43gqv738yw1v75rzngjbs7iwcgzjy3cq5ywkv2imy6w"))))

Likewise.

+    (synopsis "Rust implementation of SHA1")
+    (description "Minimal dependency free implementation of SHA1 for 
Rust.")
+    (license license:bsd-3)))

I don't see the relevancy of it being implemented in Rust (Guix supports 
multiple languages just fine), everything in Guix is free so no need to 
mention it, it being minimal dependencies or maximal dependencies 
doesn't seem relevant to me given that Guix is a package manager that 
can just take care of the dependencies, and I believe the standard 
spelling is SHA-1, not SHA1 though I could be wrong.

+                `(substitute* "Cargo.toml"
+                   ;; Relax quote version.
+                   (("1\\.0\\.10") "1")))))

Nice, though ` -> ' or #~ will do.

+    (synopsis "Private implementation details of the uuid! macro.")
+    (description "Private implementation details of the @code{uuid!} 
macro.")

Why @code below but not above?  Also, maybe private->internal (there are 
no privacy concerns), and add a comment that it is only supposed by the 
rust-??? package.  Also, 'the uuid!' macro sounds ambigious, I'd just 
mention the package name instead.

+    (arguments
+      `(#:tests? #f ;; Generated assets for tests not included.

Then you can add them, often switching to a git checkout helps with 
things like this.

+     "Determine whether characters have the @code{XID_Start} or
+@code{XID_Continue} properties according to Unicode Standard Annex #31.")

The description must be proper sentences, which I believe to be 
mentioned in (guix)Sybopses and Descriptions but I'm not sure about 
that.  Also, maybe you can hyperlinkify 'Unicode Standard Annex #31'.

+    (synopsis "Compressed bitmaps")
+    (description "This package is a pure Rust implementation of roaring 
bitmaps
+compressed bitmaps.")

I don't think that packages can be implementations, though they can 
implement things.

This description can be much more informative, it's currently rather 
minimalistic -- e.g., you could write that 'roaring bitmaps' is a very 
effective bitmap compression technique and link to the site. Maybe 
something like

"This package implements roaring bitmaps, an efficient technique for 
compressing bitmaps [...]"

[rust-cradle-0.2]

+    (inputs
+      (list coreutils
+            which

AFAICT coreutils, which and xxd aren't used.

+    (synopsis "Get the path of a binary target's executable")
+    (description "Get the path of a binary target's executable")

It is not clear what a binary target is supposed to be from context, 
'path' is ambigious (maybe: file name?), "get" is rather generic, maybe 
"guess" or "determine" or "calculate" depending on what it does.

+    (synopsis "Temporary trees of files")
+    (description "Temporary trees of files")

This is not a clear description (also, synopsis and description are 
identical) -- maybe it scans the file system for all files and returns 
the results in a temporary tree structure?  (Going by the rust-tempfile 
dependency, probably not, but that's one easy misinterpretation to make).

Greetings,
Maxime.