diff --git a/articles/gomodsri.md b/articles/gomodsri.md index 5fbd4c28fc84c6c70917bf0e3479f9dfd362fb89..874822d1a164001ef303151ecfa1520bf088f765 100644 --- a/articles/gomodsri.md +++ b/articles/gomodsri.md @@ -7,15 +7,15 @@ +++ ### The problem -When building a Go module with `nix`, generally you would use `buildGoModule`. Like other builders in the nix ecosystem, it uses a `vendorHash` property (or similar name). +When building a Go module with `nix`, generally you would use `buildGoModule`. One thing it shares with other builders in the nix ecosystem is a `vendorHash` property (or similar name). -Although there _have_ been various workarounds, the process typically involves building, noting the "expected" new hash, and replacing the old hash with the correct one before the build succeeds. +Although there _have_ been various workarounds, there's usually no getting around some variation of building, noting the "expected" new hash, and replacing the old hash with the correct one before building works for real. ### The solution -My solution is inspired by [tailscale](https://tailscale.com), which I've adapted into a (nu)shell command for easier generic usage. +Now, I am admittedly borrowing this idea from [tailscale](https://tailscale.com). I simply wrapped it in a (nu)shell command for easier generic usage. -The original idea starts with the [nardump](https://github.com/tailscale/tailscale/tree/ad33e47270509345469af795aed65177df88904e/cmd/nardump) command. This is combined with the [vendoring](https://pkg.go.dev/cmd/go#hdr-Make_vendored_copy_of_dependencies) ability of Go modules to predict the `vendorHash`. Put together, it can look something like the following: +The original idea combines the [nardump](https://github.com/tailscale/tailscale/tree/ad33e47270509345469af795aed65177df88904e/cmd/nardump) command with the [vendoring](https://pkg.go.dev/cmd/go#hdr-Make_vendored_copy_of_dependencies) ability of Go modules to predict the `vendorHash`. Put together, it can look something like the following: - [update-flake.sh](https://github.com/tailscale/tailscale/blob/ad33e47270509345469af795aed65177df88904e/update-flake.sh#L9-L10) ```sh