Hi Hartmut and Sébastien, I started with some talking points which I will attach. We did not get to everything though. Mostly we discussed the possibility of using system dependencies and installing actual compiled artifacts. Someone mentioned that the possibility of using system dependencies came up on the #rust IRC channel. After some research, I think I may take a look at it soon.
The other topic I remember coming up were some packaging idioms and module organization. I think consensus was generally reached that we should try to keep package definitions based on "domain" or "use" rather than by language - i.e. put rust web libraries in a web module. I think the newer crates-graphics and other modules are decent examples of this. In future, perhaps we move packages out of rust-apps.scm though. In other news, I am glad the importer is merged now! Congratulations! - John
#+TITLE: (BoF) Rust + Cargo Discussion Rust has come a long way since I started using Guix in 2018: crate importer, cargo-build-system, bootstrapping with mrustc, etc. I use Guix to write Rust for work everyday now! Still a long way to go. Some topics below (add your own before we start). * Topics ** Improved, semantic versioning-aware, crate importer - New work in https://issues.guix.gnu.org/44560 - Original issue https://issues.guix.gnu.org/38408 ** rustfmt as an output of rust - Open patch in https://issues.guix.gnu.org/42295 - Other candidates include rls/rust-analyzer, clippy, racer ** Keeping rust versions up to date - On a 6 week release cycle, perhaps we need rust-updates branch? - I have been using version 1.46 without issue ** Packaging idioms - How best to remove vendored sources? - How to propagate the required environment variables. - When to include minor version in package variable name? ** guix refresh does not pick up dependencies between rust dependencies #+begin_src bash guix refresh --list-dependent rust-serde #+end_src #+RESULTS: : No dependents other than itself: rust-serde@1.0.117 ** Incremental compilation/shared libraries possible? - Use the store as a registry? - $CARGO_OUT_DIR to put artifacts in build outputs https://github.com/rust-lang/cargo/issues/6790 - cargo metadata, guile-toml, cargo-build --manifest-path=...? ** Packaging efforts and updates pijul patches available. Others waiting to submit. - teip - skim - dog - sd - zoxide - tealdeer ** Collaboration with Rust community directly - Start with communication, maybe advance to RFC? - Collaborate with Nix to understand how to make cargo work better for functional package managers? ** Wasm32 target support - May need to patch-cargo-checksums of Cargo