[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Packaging a rust program with a lot of crates
From: |
Paul Collignan |
Subject: |
Re: Packaging a rust program with a lot of crates |
Date: |
Sat, 15 Jul 2023 17:10:59 +0200 |
Le Sat, Jul 15, 2023 at 04:06:56PM +0200, Wojtek Kosior a écrit :
> Hi Paul!
>
> That's cool! Please keep in mind, tho that Guix is not an "easy" distro
> for novice users. Be ready to spend even more time learning stuff :)
Hi, thank you for your answer.
> This way the Guix committers will see all the package additions as
> separate patches but grouped together in one debbugs issue. There's no
> need to wait for one patch to be accepted before sending another in
> this case.
Looks like I missed the cookbook. All this is described in it, I will look into
it seriously before asking another question.
Thank you for your summary which will make it easier for me to understand the
steps to follow.
> Anyway, you just touched one unfortunate truth — when you're a
> beginner, any serious task can easily take weeks.
> My suggestion is that you start with something easier first. Perhaps an
> application that only has 1 or 2 dependencies?
Will do, for sure.
> > Last question, for my culture, is there a plan to "clean up" old
> > packages and dependencies that are no longer used, or will the scm
> > files grow indefinitely?
>
> There might be some misunderstanding here. Guix does allow
> 1. for multiple versions of the same package to coexist
> 2. and for multiple versions of the same package to share most of the
> packaging code via inheritance.
> However, the possibility 1. is only exercised for some strategic
> packages like gcc. For casual packages, when upstream releases a new
> version, some kind Guix contributor sends a patch that changes the
> definition in the .scm file to now describe the new version. The old
> version need not be explicitly deleted — its place is taken by the new
> version :)
It is a little bit different for Rust packages, as described in the
documentation:
"In the rust ecosystem it is common for multiple incompatible versions of a
package to be used at any given time, so all package definitions should have a
versioned suffix. The versioned suffix is the left-most non-zero digit"
If I understand this correctly, one should keep all packages from 0.1 to 0.46
(for example, if the versions are numbered like this). But from 1.1 to 1.46 you
only keep the last one.
> Good luck and happy hacking ^^
Thanks again.
I don't know why and how to explain it, but from a novice point of view guix is
very appealing. Everything seems well organized, well explained, and it seems
to be a very good framework to start learning.