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?

  • moonpiedumplings@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    28 days ago

    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.

  • vepr_jako_pepr@slrpnk.net
    link
    fedilink
    English
    arrow-up
    1
    ·
    24 days ago

    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

    • vepr_jako_pepr@slrpnk.net
      link
      fedilink
      English
      arrow-up
      1
      ·
      24 days ago

      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

      • vepr_jako_pepr@slrpnk.net
        link
        fedilink
        English
        arrow-up
        1
        ·
        24 days ago

        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