{ buildGoModule, gitMinimal }: # This is the wrapping around mkderivation that abstracts away the standard boilerplate logic for building go packages. buildGoModule { # The final built binary name. pname = "go-hello"; # The binary version | NEEDS TO BE IN STEP WITH GO MOD. version = "v1.0.0"; # In 'nix develop', we don't need a copy of the source tree # in the Nix store. src = builtins.path { name = "source"; path = ./.; }; # required deps for build time nativeBuildInputs are runtime deps buildInputs = [ # Just an example input gitMinimal ]; # This hash locks the dependencies of this package. It is # necessary because of how Go requires network access to resolve # VCS. See https://www.tweag.io/blog/2021-03-04-gomod2nix/ for # details. Normally one can build with a fake hash and rely on native Go # mechanisms to tell you what the hash should be or determine what # it should be "out-of-band" with other tooling (eg. gomod2nix). # To begin with it is recommended to set this, but one must # remember to bump this hash when your dependencies change. # vendorHash = pkgs.lib.fakeHash; vendorHash = null; }