Subject: Re: [bug#68819] [PATCH 00/49 rust-team] Update i3status-rust to 0.32.3.

From: Efraim Flashner <[email-masked]>
Date: Mon, 12 Feb 2024 14:44:44 +0200

Patches pushed to the rust-team branch with a few changes.  I'll answer
your questions inline.

On Tue, Jan 30, 2024 at 04:03:34PM +0100, Herman Rimm wrote:
> Hi rust-team,
> 
> When I started using Guix, my i3status-rust config was for a newer
> version, now I got around to updating the package. I understand why
> noone had updated it, as it was quite tedious. Anyway, I added the
> dependencies required for the new version. Some notes:
> 
> I shortened synopses and punctuated descriptions, but mostly left the
> #:cargo-inputs indentation as guix import had generated it. I want guix
> import crate to generate appropriate indentation.
> 
> rust-arrow2 and rust-tera are patched and build with rust-chrono-tz-0.8
> so that it can replace rust-chrono-tz-0.6 in a single commit.
> 
> rust-zbus-3 and rust-zbus-macros-3 dependency are updated in a single
> commit, instead of relaxing rust-zbus-3 dependency versioning.

Probably could have updated rust-zbus-macros-3 first and then
rust-zbus-3, but if the two commits are next to each other its generally
fine.  Or doing both in one commit is also fine.

> Enabled tests on rust-notmuch.
> 
> Although ordered-stream-0.2 is not adjacent to ordered-stream-0.1, the
> latter is removed in a later commit.
> 
> Lastly, i3status-rust is updated and any dependencies that become unused
> are removed recursively.
> 
> Assorted questions:
> 
> 1. Should rust-from-variants-impl-0.6 be public?

Yes, we have (almost?) all the rust packages as public.

> 2. I updated wayrs-client to 1.0, because adding a #[macro_use] made
> the wayrs-scanner-0.12 generate! macro available, so wayrs-client 0.12
> would build in isolation, but not as a dependency of i3status-rust.
> Adding #[macro_export] to the macro in wayrs-scanner-0.12 did not have
> any effect. Does this issue seem familiar?

I tried to build i3status-rust with the 0.12 versions but ran into build
issues so I left it as you have it.  That issue specifically I don't
remember seeing, but I haven't played around with it as much as I could
have.

> 3. rust-async-io-2 and rust-async-net-2 form a cyclical dependency,
> should they be added as separate packages anyway?

I would generally do it as two separate commits, even though each
depends on the other.  Doing both in one commit is technically more
correct.

> 4. When to #:skip-build?

I generally do it when a package actually doesn't build (like if it only
builds on macOS or on Windows) or if we can't get all the dependencies
packaged, like rust-clap-derive-4 (I think) which has a dependency which
wants a newer version of nushell.  Most of the time I leave a comment
about cutting the dependency chain.  There was a period where
intermediate crates which were imported defaulted to '#:skip-build? #t'
but it made it harder to check that the inputs were correct.

> 5. Why is a rust package name defined when inheriting the same name?

We use the name field as part of the source file-name, and if we leave
it as inherited then the name field shows up as undeclared.

> Cheers,
> Herman
> 
> Herman Rimm (49):
>   gnu: Add rust-async-once-cell-0.5.
>   gnu: Add rust-backon-0.4.
>   gnu: Add rust-calibright-0.1.
>   gnu: Add rust-neli-proc-macros-0.1.
>   gnu: Add rust-neli-0.6.
>   gnu: Add rust-neli-wifi-0.6.
>   gnu: Add rust-chrono-tz-build-0.2.
>   gnu: Replace rust-chrono-tz-0.6 with rust-chrono-tz-0.8.
>   gnu: Add rust-from-variants-impl-0.6.
>   gnu: Add rust-from-variants-0.6.
>   gnu: Add rust-notmuch-0.8.
>   gnu: rust-gethostname-0.2: Update to 0.2.3.
>   gnu: Add rust-maildir-0.6.
>   gnu: Add rust-libsensors-sys-0.2.
>   gnu: Add rust-sensors-0.2.
>   gnu: Add rust-signal-hook-tokio-0.3.
>   gnu: rust-swayipc-types-1: Update to 1.3.1.
>   gnu: Add rust-async-pidfd-0.1.
>   gnu: rust-parking-2: Update to 2.2.0.
>   gnu: Add rust-futures-lite-2.
>   gnu: Add rust-swayipc-async-2.
>   gnu: Add rust-proc-macro-crate-3.
>   gnu: Add rust-wayrs-proto-parser-2
>   gnu: Add rust-wayrs-scanner-0.13.
>   gnu: Add rust-wayrs-client-1.
>   gnu: Add rust-wayrs-protocols-0.13.
>   gnu: Add rust-event-listener-4.
>   gnu: Add rust-event-listener-strategy-0.4.
>   gnu: Add rust-async-channel-2.
>   gnu: Add rust-async-lock-3.
>   gnu: Add rust-async-io-2 and rust-async-net-2 cyclical dependency.
>   gnu: Add rust-ordered-stream-0.2.
>   gnu: Add rust-xdg-home-1.
>   gnu: Add rust-async-signal-0.2.
>   gnu: Add rust-event-listener-3.
>   gnu: rust-async-process-1: Update to 1.8.1.
>   gnu: rust-async-fs-1: Update to 1.6.0.
>   gnu: rust-zbus-3: Update to 3.14.1.
>   gnu: Add rust-pandoc-0.8.
>   gnu: i3status-rust: Update to 0.32.3.

These ones I left for now in case another package later needs them.

>   gnu: Deprecate rust-nl80211-0.0.2.
>   gnu: Remove rust-neli-0.4.
>   gnu: Remove rust-notmuch-0.6.
>   gnu: Remove rust-cpuprofiler-0.0.
>   gnu: Remove rust-progress-0.2.
>   gnu: Remove rust-buffering-0.3.
>   gnu: Remove rust-supercow-0.1.
>   gnu: Remove rust-buffering-nocopy-macro-0.1.
>   gnu: Remove rust-ordered-stream-0.1.
> 
>  gnu/local.mk                                  |    1 -
>  gnu/packages/crates-graphics.scm              |   88 ++
>  gnu/packages/crates-io.scm                    | 1133 ++++++++++++-----
>  ...status-rust-enable-unstable-features.patch |   20 -
>  gnu/packages/rust-apps.scm                    |  100 +-
>  5 files changed, 959 insertions(+), 383 deletions(-)
>  delete mode 100644 gnu/packages/patches/i3status-rust-enable-unstable-features.patch
> 
> 
> base-commit: 36315bde09efa660d38198f666b4e1582cb71db3
> -- 
> 2.41.0
> 
> 
> 

-- 
Efraim Flashner   <[email-masked]>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted