Jason Conroy <jcon...@tscripta.net> writes:

> Hilton Chain <hako@ultrarare.space> writes:
>
>> Hilton Chain <hako@ultrarare.space> writes:
>>
>>> On Tue, 18 Mar 2025 15:30:30 +0800,
>>> Hilton Chain wrote:
>>>>
>>>> Patch series without packages sent to #77093!
>>>
>>> Finally added the lockfile importer to rust-team branch!
>>> #77093 is left for
>>> documentation and will be a merge blocker.
>>
>> Blog post sumbitted as:
>> https://codeberg.org/guix/artwork/pulls/1
>
> Hilton, thank you for the nice writeup. I've been following the
> discussion at a distance, so this is a somewhat naive question
> about the developer workflow under your proposal.
>
> When using Guix with other languages, I find "guix shell"
> extremely convenient for setting up a project's dependencies. The
> produced environment gives me confidence that:
>
> a) the lib dependencies have versions that the Guix community has
> already vetted and used successfully;
>
> b) all transitive dependencies of those libs are available, and
> also have known-good versions;
>
> c) any work required to patch the libraries for Guix builds has
> already been done, so there are no surprises later on.

Unfortunately, all existing approaches don't involve supporting Rust
libraries in `guix shell`.

> With Rust, it seems as though the status quo is different: people
> mainly rely on cargo for their dev environment, and then add Guix
> definitions later, for packaging the final application. Am I
> describing that situation fairly, and do your proposed changes
> influence the model in one direction or another? The decision to
> move away from "real" packages for library crates and sources
> seems significant here, but I don't know exactly what it means.

We're not using these "real" packages.  When adding a Rust library into
#:cargo-inputs, its source will be used, not the build output.  The
build output is usually a repacked source though, not something we can
make good use of either.

Reply via email to