HiveBrain v1.2.0
Get Started
← Back to all entries
snippetgogitCritical

How to point Go module dependency in go.mod to a latest commit in a repo?

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
dependencyhowmodulepointlatestmodrepocommit

Problem

Starting with v1.11 Go added support for modules. Commands
go mod init
go build


would generate go.mod and go.sum files that contain all found versions for the package dependencies. If a module does not have any releases, the latest commit of that module is used. If a module does have releases, the latest one is picked as a dependency.

However sometimes I would need functionality that is not in a published release yet, but from a commit made after that release. How do I set go.mod to point not to a release of a module, but to a specific commit in the module's repository? It looks like I can do it by hand in go.mod with
module /my/module

require (
...
github.com/someone/some_module v0.0.0-20181121201909-af044c0995fe
...
)


where v0.0.0 does not correspond to the last published release tag, 20181121201909 would be a commit timestamp and af044c0995fe would be the commit hash? Should such information to be found and entered by hand, or there is a better way?

Solution

Just 'go get' at the commit hash you want:

go get github.com/someone/some_module@af044c0995fe


'go get' will correctly update the dependency files (go.mod, go.sum).

More information: https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies

Code Snippets

go get github.com/someone/some_module@af044c0995fe

Context

Stack Overflow Q#53682247, score: 407

Revisions (0)

No revisions yet.