go version)?go version go1.13.5 darwin/amd64
using latest
go env)?macOS Catalina
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
module github.com/stephanwesten/hellojob
go 1.13
Executed go build and noticed that no go.sum was generated (unexpected)
added a dummy dependency to go.mod, re-ran go build and a go.sum was generated.
removed dependency from go.mod, so it is back to original above, and re-ran go build and go mod tidy
go.sum was still there.
(Note that this is the first time for me using go modules so my formulation might not be 100% accurate)
Either go.sum is removed or it should have been generated with the first go.build. This would give symmetric behaviour.
I would prefer that go.sum is always generated. The reason why this was a problem for me is that I used a Dockerfile template that assumed a go.sum file to be there.
see above
BTW I entered 'go bug' to file this issue and I got a github error. Perhaps temporary problem?
Thanks for reporting.
We should check if this asymmetry has been discussed in the past and if any decision was made. If not, that can be done in this issue.
/cc @bcmills @jayconrod @matloob as cmd/go owners.
BTW I entered 'go bug' to file this issue and I got a github error. Perhaps temporary problem?
What was the error text? If you can still reproduce the issue, please file a separate issue for that so we can investigate. I tried running go bug just now and did not get an error.
schrodinger's go.sum.
sorry, I'll see myself out now
I don't think we should delete the go.sum file entirely when it becomes empty: leaving an empty file makes it more obvious that the edit is intentional (rather than accidental).
I'm ambivalent about creating the go.sum file unconditionally. If the module really doesn't have any dependencies, then we really don't need to create that file, and some folks may find it annoying for the go command to implicitly create an empty file that they don't need.
For the specific use-case of a Dockerfile template, you can always touch go.sum at some point prior to the build.
Imo go build should create the go.sum file always if there is mod file since this gives the most consistent behavior. I see go.sum as some internal housekeeping, its content is not relevant to the user, but its presence does impact the user.
Most helpful comment
I don't think we should delete the
go.sumfile entirely when it becomes empty: leaving an empty file makes it more obvious that the edit is intentional (rather than accidental).I'm ambivalent about creating the
go.sumfile unconditionally. If the module really doesn't have any dependencies, then we really don't need to create that file, and some folks may find it annoying for thegocommand to implicitly create an empty file that they don't need.For the specific use-case of a Dockerfile template, you can always
touch go.sumat some point prior to the build.