I am using dep to manage the dependencies of a Go tool I'm writing.
This tool uses https://github.com/desertbit/grumble as an dependency. This in turn uses https://github.com/chzyer/readline as a dependency. The problem is that when trying to run my tool I get the following error: vendor/github.com/desertbit/grumble/app.go:295:20: unknown field 'HistorySearchFold' in struct literal of type readline.Config
I know why this is happending. grumble uses the master branch of readline as a dependency. In this the field HistorySearchFold
is available. When using dep init
/ dep ensure
not the master but the 1.4 tag is pulled into the vendor folder.
My question therefore is: How can I force dep to pull the master branch instead?
I tried adding the following in my Gopkg.toml file:
[[constraint]]
branch = "master"
name = "github.com/chzyer/readline"
Sadly this is not working. When I check the version pulled into the vendor folder it is still 1.4 .
If you are trying to control the version of a transient dependency (not one directly used by your package, you should use the [[override]]
directive
It looks exactly the same as a constraint, but it will constrain dependencies even when not directly inherited by your package.
[[override]]
branch = "master"
name = "github.com/chzyer/readline"
Note that this is also useful for when the dependency solver finds conflicting dependencies, eg your package P makes use of packages A and B, and both depend on different versions of package X... you can use an override on package X inside of your package P
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.