kamilchm / go2nix

Reproducible builds and development environment for Go
MIT License
94 stars 17 forks source link

Support for gb manifest files #50

Open chris-martin opened 7 years ago

chris-martin commented 7 years ago

For gb projects, we should be able to produce deps.nix directly from the manifest, right?

A question, though: How do you express in deps.nix packages that aren't based in a repo's root? For example: https://github.com/stellar/horizon/blob/94a9f35d93f33e365e3a154d6dce08b0e15df608/vendor/manifest#L78

kamilchm commented 7 years ago

I didn't use gb, so the path in its manifest is something new for me. It looks like optimization that can make vendor dir cleaner https://github.com/constabulary/gb/blob/master/cmd/gb-vendor/restore.go#L62 We can't download repo subdirectory in nix, so I don't think that could optimize anything in nix.

chris-martin commented 7 years ago

Here's the project I'm building that uses gb: https://github.com/chris-martin/home/blob/009949930514872337a01ac1b20bba041d75e8a8/nix/pkgs/stellar-horizon/default.nix I had to change the GOPATH assembly process to accommodate dependencies that use path, and the project's difference in directory structure from typical Go projects.

And a quick script I threw together to convert the manifest: https://github.com/chris-martin/gb2nix