!QCCCSJHEsTIfozrZxz:nixos.org

Nix + Go

236 Members
Go packaging for and with Nixpkgs. | Be excellent to each other.48 Servers

Load older messages


SenderMessageTime
25 Mar 2024
@stv0ge:matrix.orgstv0gOh yeah, sorry18:51:49
@stv0ge:matrix.orgstv0g

This is my current attempt:

            pkgs.runCommand "ginkgo" {
              nativeBuildInputs = [
                pkgs.go
              ];
            } ''
              export HOME=$(pwd)
              export GO111MODULE=off
              export GOPATH=$out
              mkdir -p $GOPATH

              ln -s ${packages.go-babel.goModules} $out/src

              go install -v -n -a github.com/onsi/ginkgo/v2/ginkgo

              # mkdir -p $out/bin
              # ls -l /build/bin/
              # mv /build/bin/ginkgo $out/bin
            '';
18:52:15
@qbit:tapenet.org@qbit:tapenet.orgso you have ginkgo in nixpkgs18:52:30
@qbit:tapenet.org@qbit:tapenet.org no need to go install it 18:52:35
@stv0ge:matrix.orgstv0gThe issue is that the version in nixpkgs might not match the version in my go.mod18:52:55
@stv0ge:matrix.orgstv0gSame is true for other Go tools like protoc-gen-go18:53:19
@qbit:tapenet.org@qbit:tapenet.orgseems you would have the same problem with that approach 18:54:06
@stv0ge:matrix.orgstv0gI've tried to reuse the vendor'ed modules by buildGoModule and then run "go install" with pkgs.runCommand18:54:30
@qbit:tapenet.org@qbit:tapenet.orgi guess it will bump the go.mod file?18:54:30
@stv0ge:matrix.orgstv0gI guess by using the vendored modules, I am actually ignoring the go.mod already because its only used to build the goModules derivation18:55:21
@qbit:tapenet.org@qbit:tapenet.org mmm, you might be able to use the FOD modules stuff via GOCACHE 18:55:42
@qbit:tapenet.org@qbit:tapenet.orgnothing's gonna be ideal (at least that I can think of)18:56:09
@qbit:tapenet.org@qbit:tapenet.orgmaybe vendor your deps, then just build the code locally?18:59:18
@qbit:tapenet.org@qbit:tapenet.orgthat'd probably be the cleanest 18:59:24
@stv0ge:matrix.orgstv0g

I think I got it working with:

            pkgs.runCommand "ginkgo" {
              nativeBuildInputs = [
                pkgs.go
              ];
            } ''
              export HOME=$(pwd)
              export GO111MODULE=off
              export GOPATH=/build

              ln -s ${packages.go-babel.goModules} src

              go build -o $out/bin/ginkgo github.com/onsi/ginkgo/v2/ginkgo
            '';
18:59:54
@qbit:tapenet.org@qbit:tapenet.orgi'd make it grep the ginkgo version from go.mod and explicitly build the version 19:00:57
@qbit:tapenet.org@qbit:tapenet.orgjust to be sure19:01:00
@stv0ge:matrix.orgstv0gOkay also a instresting idea.. But that could still be a different version from whats acutally used by my code I assume.. I would need to check the go.sum file to be 100% certain19:07:04
@qbit:tapenet.org@qbit:tapenet.org so like: go build -o $out/bin/gnkgo github.com/onsi/ginkgo/v2/ginkgo@$(grep ginkgo go.mod | awk '{print $NF}' 19:09:32
@qbit:tapenet.org@qbit:tapenet.org * so like: go build -o $out/bin/gnkgo github.com/onsi/ginkgo/v2/ginkgo@$(grep ginkgo go.mod | awk '{print $NF}') 19:09:36
@qbit:tapenet.org@qbit:tapenet.orgbasically19:09:38
@qbit:tapenet.org@qbit:tapenet.org or maybe switch it to go install 19:09:54
@qbit:tapenet.org@qbit:tapenet.orgnot sure19:09:57
@qbit:tapenet.org@qbit:tapenet.org or cd vendor/...etc../ginkgo; go build -o ...... 19:10:22
@qbit:tapenet.org@qbit:tapenet.orgin a subshell after you have vendor'd19:10:27
26 Mar 2024
@katexochen:matrix.orgPaul Meyer (katexochen)
In reply to @stv0ge:matrix.org
Okay also a instresting idea.. But that could still be a different version from whats acutally used by my code I assume.. I would need to check the go.sum file to be 100% certain
go.sum is not an exact lockfile. It can contain multiple versions of your dependencies where only one of them would be used by your code. To get the dependencies after minimal version selection (Go's dependency resolution algorithm) use go list -m all or go mod graph.
06:43:30
@katexochen:matrix.orgPaul Meyer (katexochen)https://github.com/NixOS/nixpkgs/issues/29909612:07:27
@qbit:tapenet.org@qbit:tapenet.orggo.work is one of those things I just can't understand..14:59:09
@qbit:tapenet.org@qbit:tapenet.orglike the difference between update and upgrade14:59:16
@diamondburned:matrix.orgDiamond (it/she)rn it has a Go package using workspace that has GOWORK=off in the Nix file because of this problem 22:11:19

Show newer messages


Back to Room ListRoom Version: 9