Spyke
guix·Guix and GuixSDbyRumRunningDevil

Handling Opinionated Programming Languages

Hello everyone,

How do you guys handle programming in languages that want to package imports "their" way? I'm mainly referring to things like Python, Golang, or Rust. I'm in the middle of a small Golang project and need to import a uuid library that guix doesn't package on it's own. I could make the package which isn't difficult but that leads me down the tension between "Go project is more portable if I use go get ..." vs "Project is more reproducible if I use Guix".

How do you all do it?

View original on lemmy.zip

Python is pretty easy. I don't know about guix but nix makes it easy to unvendor python dependencies.

Rust and go are basically impossible. Guix is doing some work:

https://guix.gnu.org/en/blog/2025/a-new-rust-packaging-model/

But they are the only people (afaik) who are doing work for rust. Most of the other similar projects (gentoo, debian) have given up.

Go is even worse. I don't know of anything like antioxidant or cargo2guix (linked in article above) but for go.

2
slrpnk.net

i wouldnt say they are impossible, unless you are specifically refering to doing everything by hand

1
programming.dev

Huh. I just checked and guix uncendors go. Very impressive.

It looks like they let you override cargo crate deps with different versipns but they haven't managed to compile without cargo or crates yet.

2
slrpnk.net

for example i packaged "regreet" in my channel and all i had to do was use the auto-import tool and then add the c dependencies to the gtk stuff

1
slrpnk.net

the best way for these langs is to do as much as possible with the importer tool

guix import

and i think future easing of the process would be good to carry out in the scope of this importer tool

1
slrpnk.net

at the minute it is quite quick for importing the skeleton of the project and then then things such as non internal-language dependencies can be manually fixed, but it does lack in the scope of updating these imports whilst avoiding repeated work imo

1

but there are a decent number of times when with python, rust or go, the auto import will work first try or with very minimal adjustment

1

You reached the end

Handling Opinionated Programming Languages | Spyke