Wonder if anyone here has been using bingo for reproducible builds. I’ve found it to be really good and wish I could find similar tooling for things like python for tools like yamllint.

  • imikoy [she/her, comrade/them]@hexbear.net
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    “An entire OS” - that is NixOS. Nix (package manager / build system) can and is often used standalone, on other Linux distributions, and by some on MacOS.

    I cannot vouch for ease of use of Nixpkgs’ Go building facilities, but at the very least it should be possible to create a necessary environment for development and compilation of a package. Nix guarantees that it is going to be reproducible.

    The main downside of using Nix would be that the declarative approach is different from the imperative one - AFAIK, there is no command to just add something to the environment (nix-shell -p does not count as it is a temporary env without a pinned Nixpkgs, so isn’t reproducible). The second would be that Nixpkgs seems to only have one version of Go and Co. at a time, so if one needs an older version of something they need to find an older version of Nixpkgs.

    edit: as I have looked up, there are actually four versions of Go - “go” is 1.20, and “go_1_*” gives 1.21, 1.19 and 1.18 (on unstable Nixpkgs). I don’t know about other pieces of the environment though.