On 2024-12-30 00:24, jgart via Guix-patches via wrote:
I most likely lost the data with my recent computer issues, such a shame
that was a lot of work (1-2 months part-time).
As a record if someone wants to follow through, what I did from memory,
it worked well:
- moved antioxidant-build-system to rust-build-system
- rust-build-system was actually a rust-workspace-build-system, with the
logic that a single package was a workspace of one package
- I moved most of the state from antioxidant-build-system to arguments,
was finishing that, there was only 3-5 arguments left.
- for workspaces, an output was a package
- for some crates-gtk.scm or crates-crypto.scm, the whole file could be
summarized into one or two packages with multiple outputs. (This should
be a more general conversation, Go and Node have the same workspace
logic that we should be able to build on, and avoid managing in Guix was
can be done through workspaces. That was one of my blockers, not having
inputs on whether was I was doing would eventually be adopted due to
this).
The huge upside from all this was that our cargo-build-system rebuilds
everything for every package, while the declarative nature of guix
allows to avoid that. Compiling all rust packages with
rust-build-system was actually doable on a good computer in less than a
day. Not possible with cargo-build-system.
--
Best regards,
Nicolas Graves