Message ID | PZo99wu-dtu2wXSs54OQLY6-Mq4hChFaOh0X5w74_jqpFPFukgMsx15awpVXEV01aMUkRL0stV_JhRjsFqunOdAx_V2Et6VRUbpdOFfxbuc=@jeandudey.tech |
---|---|
State | New |
Headers | show |
Series | : gnu: just: New package. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git-branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
cbaines/comparison | success | View comparision |
cbaines/git-branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
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.
>On 20-07-2022 14:22, Jean Pierre De Jesus DIAZ via Guix-patches via >wrote: >> Empty Message >https://github.com/casey/temptree An error on my side. Did not attach the patch (ProtonMail doesn't support SMTP in order to use git send-email, I'm still porting their bridge program to GNU Guix). >Why are all these tests skipped? Most of these tests are tests specific to test shebang code, but are hard coded to use `#!/usr/bin/env <whatever>', some of these tests could be changed though. Didn't make patches for that because of the added maintenance effort but will do so. >FWIW, I can confirm I got the same hash in some code I haven't submitted yet (antioxidant). Would be great if upstreamed to GNU Guix and one less patch on this series :-). And great work on antioxidant, tried to make each crate on this patch series build-able so in the future switching/using antioxidant-build-system is easier. I have also started to test various crates to remove `#:skip-build? #f' as much as possible from gnu/packages/crates-io.scm. >+ `(substitute* "Cargo.toml" >+ ;; Relax quote version. >+ (("1\\.0\\.10") "1"))))) > >Nice, though ` -> ' or #~ will do. Thought of using G-Expressions but as it isn't used on crates-io.scm yet didn't want to change the convention there. Would be you okay if I use '? >[rust-cradle-0.2] > >+ (inputs >+ (list coreutils >+ which > >AFAICT coreutils, which and xxd aren't used. Are required by the tests which is why I added these packages. These are mostly used on documentation tests but the author of the crate did not mark these as no_run so they run on the 'check phase, and there's no easy way to disable documentation tests or skip specific ones. I'll try to make some patches to make some of these tests to not run. Thanks for the review! Will update accordingly. — Jean-Pierre De Jesus DIAZ
From 3d3f6255beada8cb6b0e78cd43657de9367ba687 Mon Sep 17 00:00:00 2001 From: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> Date: Sun, 17 Jul 2022 22:50:12 +0200 Subject: [PATCH 24/24] gnu: just: New package. * gnu/packages/rust-apps.scm (just): New variable. --- gnu/packages/rust-apps.scm | 100 +++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 0d5034ffb7..91ec6908e8 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; Copyright © 2021 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org> +;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> ;;; ;;; This file is part of GNU Guix. ;;; @@ -612,6 +613,105 @@ (define-public hyperfine "This package provides a command-line benchmarking tool.") (license (list license:expat license:asl2.0)))) +(define-public just + (package + (name "just") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (crate-uri "just" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1x762kq9mdp86fbnymn77mvdabcyvp211bkbvawnzm8fspp8a3g2")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-test-flags + '("--release" "--" + "--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") + #:install-source? #f + #:cargo-inputs + (("rust-ansi-term" ,rust-ansi-term-0.12) + ("rust-atty" ,rust-atty-0.2) + ("rust-camino" ,rust-camino-1) + ("rust-clap" ,rust-clap-2) + ("rust-ctrlc" ,rust-ctrlc-3) + ("rust-derivative" ,rust-derivative-2) + ("rust-dotenv" ,rust-dotenv-0.15) + ("rust-edit-distance" ,rust-edit-distance-2) + ("rust-env-logger" ,rust-env-logger-0.9) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-lexiclean" ,rust-lexiclean-0.0.1) + ("rust-libc" ,rust-libc-0.2) + ("rust-log" ,rust-log-0.4) + ("rust-regex" ,rust-regex-1) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-sha2" ,rust-sha2-0.10) + ("rust-similar" ,rust-similar-2) + ("rust-snafu" ,rust-snafu-0.7) + ("rust-strum" ,rust-strum-0.24) + ("rust-target" ,rust-target-2) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-typed-arena" ,rust-typed-arena-2) + ("rust-unicode-width" ,rust-unicode-width-0.1) + ("rust-uuid" ,rust-uuid-1)) + #:cargo-development-inputs + (("rust-cradle" ,rust-cradle-0.2) + ("rust-executable-path" ,rust-executable-path-1) + ("rust-pretty-assertions" ,rust-pretty-assertions-1) + ("rust-temptree" ,rust-temptree-0.2) + ("rust-which" ,rust-which-4) + ("rust-yaml-rust" ,rust-yaml-rust-0.4)) + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-extra + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (man1 (string-append share "/man/man1")) + (bash (string-append out "/etc/bash_completions.d")) + (fish (string-append share "/fish/vendor_completions.d")) + (zsh (string-append share "/zsh/site-functions"))) + (install-file "man/just.1" man1) + (mkdir-p bash) + (mkdir-p zsh) + (mkdir-p fish) + (copy-file "completions/just.bash" (string-append bash "/just")) + (copy-file "completions/just.zsh" (string-append zsh "/_just")) + (copy-file "completions/just.fish" + (string-append fish "/just.fish")))))))) + (home-page "https://just.systems/") + (synopsis "Command runner") + (description "Just is a command runner. + +It provides a handy way to save and run project-specific commands. + +Commands, called recipes, are stored in a file called @code{justfile} with +syntax inspired by @code{make}.") + (license license:cc0))) + (define-public i3status-rust (package (name "i3status-rust") -- 2.36.1