mbox series

[bug#56057,00/27] gnu: Add dua-cli.

Message ID 20220618195656.10108-1-antlers@luris.net
Headers show
Series gnu: Add dua-cli. | expand

Message

antlers June 18, 2022, 7:56 p.m. UTC
Hi! I imported dua-cli via `guix import` for personal use, and thought
I'd try to upstream the involved packages. I'm awfully new to Guix, so
just let me know if I'm, uh, doing this right! I also (practically)
haven't used Rust, so, I might not be the best person to be doing this,
and have some light notes.

- Is a lot of small commits the way to go?
- Didn't update rust-tui or rust-crossterm to their latest versions,
  think I've got enough here as it is.
- rust-clap fails a lint because of a TLS error / re-direct that I'm
  not sure I can do anything about.
- Wasn't sure when it was approriate to preserve the #:skip-build flag
  inserted by `guix import`, so I'll likely need to tweak those.
- Some packages (namely rust-clap-3, which came out of Beta) have pretty
  sweeping dependency changes, including losing their
  #:cargo-development-inputs; I went with what `guix import` gave me,
  figuring that the packages build and dua-cli works just fine that way,
  but might be missing a broader context.
- Chose to make a new package vs. updating in-place based on existing
  precedent for each package, which usually meant a new package for
  every minor release (with patch point releases updated in-place), but
  some packages seem to accept minor point releases in-place, while
  still others have a seperate package for every patch. Just hoping I
  made sensible choices.
- As an aside, I did update each superseded package to inherit from it's
  successor, but didn't DRY the arguments and inputs in all applicable
  cases. `rust-windows-*` in particular could probably be cut down to a
  list of version numbers and a constructor, a la make-linux-libre? But
  ah well, it works as-is.

Comments

antlers June 18, 2022, 8:01 p.m. UTC | #1
Ah, well, there's whoopsie #1: 28 bug numbers! Can't imagine I can do
anything about that now, but I'll certainly remember this for next
time, and start by getting a number to prefix my subject's with;
considering this one canonical.
\( June 19, 2022, 8:10 a.m. UTC | #2
By the way, it looks like all these patches came with their own issues.
In future, you should first send a preliminary message (like this one),
and direct `git send-email` to its bug number:

---
ʃ git send-email HEAD^ --to=56057@debbugs.gnu.org
---
M June 19, 2022, 8:51 a.m. UTC | #3
antlers schreef op za 18-06-2022 om 12:56 [-0700]:
> Hi! I imported dua-cli via `guix import` for personal use, and thought
> I'd try to upstream the involved packages. I'm awfully new to Guix, so
> just let me know if I'm, uh, doing this right! I also (practically)
> haven't used Rust, so, I might not be the best person to be doing this,
> and have some light notes.
> 
> - Is a lot of small commits the way to go?

Yes.

> - Didn't update rust-tui or rust-crossterm to their latest versions,
>   think I've got enough here as it is.
> - rust-clap fails a lint because of a TLS error / re-direct that I'm
>   not sure I can do anything about.

I recommend putting that in the commit message (or below the --- line),
and in particular mentioning the exact lint message.

> - Wasn't sure when it was approriate to preserve the #:skip-build flag
>   inserted by `guix import`, so I'll likely need to tweak those.
> - Some packages (namely rust-clap-3, which came out of Beta) have pretty
>   sweeping dependency changes, including losing their
>   #:cargo-development-inputs; I went with what `guix import` gave me,
>   figuring that the packages build and dua-cli works just fine that way,
>   but might be missing a broader context.

Broader context: looking at (guix import crate), cargo-build-system
removes them, but that's only possible because tests aren't run which
should be fixed once antioxidant is done (though running tests is not
yet implemented in antioxidant).  So looks like that part of (guix
import crate) is obsolete ...

Greetings,
Maxime.
M June 19, 2022, 9:04 a.m. UTC | #4
merge 56057 56056 56061 56059 56062 56058 56060 56063 56064 56065 56066  56069 56067 56074 56068 56073 56072 56070 56071 56057
thanks
antlers June 19, 2022, 5:26 p.m. UTC | #5
> By the way, it looks like all these patches came with their own issues.
> merge [...]

Oh thank /you/, that's much better, and I'm certainly still figuring this out,
so, apologies for the mess. I'm including another revision of the patch-series
which I've rebased on top of #56037, dropping redundant patches (for now, I
think one was newer). Doesn't build as-is, but I think it's it's /just/ because
I haven't resolved what to do about `parking-lot-core`'s dep on `windows-sys-*`
after dropping that patch.

> I recommend putting that in the commit message [...] exact lint message.
Left out for now, Re: #56037.

> In rust-object: why change the inheritance?

For consistency; I'm not aiming for a minimal patch, and it makes sense to me
that each superseded package should inherit from it's immediate successor even
as gaps in the line are filled. Can discard if needed.

> In rust-once-cell-1: Why remove the skip-build?
> removed some dependencies [...] still being used
Because I don't know what I'm doing~
Fixed c:

> If a package complains about not finding the dependencies, you can just
remove the dependency declaration from the Cargo.toml

Easier said then done with my novice background :p. I don't see any existing
examples of such modifications in any `snippet` or `modify-phases` clauses, and
have to go work full time for a while, so I've left this hanging for now as to
share what I've got in a timely manner.

> add the missing files
Also feels easier said than done; I'm not sure why the files are missing from
the crate to begin with, and could pull them in from the upstream repo, but
have only seen contrary examples so far.

```
$> grep '#:tests? #f.*;.*missing' ./rust-*.scm ./crates-*.scm | wc -l
32
```

> See (guix)Synopses and Descriptions
Thanks! I wrote a pair that I feel are better, but haven't looked back at other
packages yet. It's likely that a few more need re-worked, and I can come back
to them in due time.

> I've been working on simplifying the Rust packaging system
Awesome! Love the name.
antlers June 19, 2022, 6:09 p.m. UTC | #6
[Forwarding to make sure this note makes it into the thread because I didn't see it; still handling the mailing list workflow, um, un-steadily.]

----------------------------------------

Jun 19, 2022 10:49:39 AM EHarding830 <eharding830@gmail.com>:

Note to Self (Whoopsies #2 & 3): Thought I dropped this patch (otherwise looks like I sent the right patchset..? Bad smell.), and should still double check that I didn't remove any #:skip-build flags.

----------------------------------------

Jun 19, 2022 10:27:57 AM antlers <autumnalantlers@gmail.com>:

> * gnu/packages/crates-io.scm (rust-open-3): New variable.
> (rust-open-2): Inherit from rust-open-3.
> ---
> :100644 100644 9a44c3a846 83be540cf7 M  gnu/packages/crates-io.scm
> gnu/packages/crates-io.scm | 34 ++++++++++++++++++++++++++--------
> 1 file changed, 26 insertions(+), 8 deletions(-)
> 
> diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
> index 9a44c3a846..83be540cf7 100644
> --- a/gnu/packages/crates-io.scm
> +++ b/gnu/packages/crates-io.scm
> @@ -39686,29 +39686,47 @@ (define-public rust-opaque-debug-0.2
>          (base32
>           "02942l2gc7w5r4js7i9063x99szic5mzzk1055j83v4diqpbpxck"))))))
> 
> +(define-public rust-open-3
> +  (package
> +    (name "rust-open")
> +    (version "3.0.1")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (crate-uri "open" version))
> +              (file-name (string-append name "-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1zhhz4a9ag0418cmj0ky11xidpcavv2crhsl76m66qxz2s1wq2rn"))))
> +    (build-system cargo-build-system)
> +    (arguments
> +     `(#:skip-build? #t
> +       #:cargo-inputs
> +       (("rust-pathdiff" ,rust-pathdiff-0.2))))
> +    (home-page "https://github.com/Byron/open-rs")
> +    (synopsis "Open a path or URL using the program configured on the system")
> +    (description
> +     "Use this library to open a path or URL using the program configured on
> +the system.")
> +    (license license:expat)))
> +
> (define-public rust-open-2
>    (package
> +    (inherit rust-open-3)
>      (name "rust-open")
>      (version "2.0.2")
>      (source
>       (origin
> +       (inherit (package-source rust-open-3))
>         (method url-fetch)
>         (uri (crate-uri "open" version))
>         (file-name (string-append name "-" version ".tar.gz"))
>         (sha256
>          (base32 "1dq9c6dgq7iv5kvqfk8gvkfq34j5pdinfcs1hbdd4x6i62vf8vhp"))))
> -    (build-system cargo-build-system)
>      (arguments
>       `(#:skip-build? #t
>         #:cargo-inputs
>         (("rust-pathdiff" ,rust-pathdiff-0.2)
> -        ("rust-winapi" ,rust-winapi-0.3))))
> -    (home-page "https://github.com/Byron/open-rs")
> -    (synopsis "Open a path or URL using the program configured on the system")
> -    (description
> -     "Use this library to open a path or URL using the program configured on
> -the system.")
> -    (license license:expat)))
> +        ("rust-winapi" ,rust-winapi-0.3))))))
> 
> (define-public rust-open-1
>    (package
> -- 
> 2.36.0