Hi pudds, I’ve run go mod verify multiple times on my laptop for the same module. The elapsed time for the command to run is always 25 seconds or thereabouts. So I figured that whatever caching might be there, I would be getting it.
I can try this with go mod vendor and see if that helps but I’d be surprised if it did. Why would the vendor directory instead of mod cache make a difference ? Joe On Mon, Jan 28, 2019 at 2:09 PM <thepudds1...@gmail.com> wrote: > Hi Joe, > > Sorry, I realized I pasted in the wrong quote from the documentation. > > I meant to include this quote instead (from > https://golang.org/cmd/go/#hdr-Module_downloading_and_verification): > > "The go command maintains, in the main module's root directory alongside > go.mod, a file named go.sum containing the expected cryptographic checksums > of the content of specific module versions. Each time a dependency is used, > its checksum is added to go.sum if missing or else required to match the > existing entry in go.sum. > > The go command maintains a cache of downloaded packages and computes and > records the cryptographic checksum of each package at download time. In > normal operation, the go command checks these pre-computed checksums > against the main module's go.sum file, instead of recomputing them on each > command invocation. The 'go mod verify' command checks that the cached > copies of module downloads still match both their recorded checksums and > the entries in go.sum." > > Regards, > thepudds > > On Monday, January 28, 2019 at 2:53:17 PM UTC-5, thepud...@gmail.com > wrote: >> >> Hi Joe, >> >> As far as I know, I think it is computing the SHA256 of the dependencies: >> >> >> https://github.com/golang/go/blob/release-branch.go1.11/src/cmd/go/internal/dirhash/hash.go#L25 >> >> Personally, I wouldn't expect that to get pathologically worse with more >> dependencies. >> >> Also, just as you can often sequence 'go mod download' so that you can >> often take advantage of cached dependencies in CI, there is some chance you >> could do something similar with 'go mod verify' to avoid that cost every >> time? >> >> In terms of how it all works, there is a bit more in the documentation >> here: >> >> https://golang.org/cmd/go/#hdr-Modules_and_vendoring >> >> "By default, the go command satisfies dependencies by downloading modules >> from their sources and using those downloaded copies (after verification, >> as described in the previous section). To allow interoperation with older >> versions of Go, or to ensure that all files used for a build are stored >> together in a single file tree, 'go mod vendor' creates a directory named >> vendor in the root directory of the main module and stores there all the >> packages from dependency modules that are needed to support builds and >> tests of packages in the main module." >> >> Regards, >> thepudds >> >> On Monday, January 28, 2019 at 1:14:53 PM UTC-5, Joseph Lorenzini wrote: >>> >>> All: >>> >>> I'd like to run go mod verify as part of the CI/CD. If the verify fails, >>> the build fails. However, the amount of time it takes to run for a small >>> project is making me question whether that's viable. I don't actually know >>> of any documentation that explains how slow or fast one should expect a go >>> mod verify to take to run nor how much time it will increase as you add >>> packages (e.g as you add packages is the increase linear or is it more >>> complicated than that?). >>> >>> I have a project with a go.mod with 113 require statements. Here's the >>> file. >>> >>> https://gist.github.com/jaloren/564d55145699c2a933798aec334d7ee9 >>> >>> I am go 1.11.1 on Mac OS. I've already run go build and primed the local >>> cache. When I run go mod verify, it completes in 25 seconds. I have no way >>> to know if that's slow or fast since I don't understand what the the >>> internals are doing. All I found on modules FAQs is this: >>> >>> "In addition, go mod verify checks that the on-disk cached copies of >>> module downloads still match the entries in go.sum." >>> >>> But I'd like to find out is if this is going to get pathologically worse >>> as packages are added. A minute or two is an easy sell. Past 5 minutes >>> becomes a much harder one. >>> >>> Joe >>> >> -- > You received this message because you are subscribed to a topic in the > Google Groups "golang-nuts" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/golang-nuts/EAiHWkxTc-o/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.