Curious about what processes gophers are using on real world projects when they need to patch something they’re importing, while waiting for that patch to be accepted.
Today I was doing some experimentation on go-dbus-keyring and realized that when I tested my keychain program on different computers, sometimes it was failing. Ultimately a bit of debugging and a small patch to the imported library and I was able to fix it.
While working with it on your own development system, the go.mod replace makes it very easy to customize the code of any import. I don’t think there’s any downside of using go mod init
on every a trivial dozen line program when you need to patch an import.
module keychain
go 1.13
require (
github.com/godbus/dbus/v5 v5.0.3
github.com/ppacher/go-dbus-keyring v1.0.1
)
replace github.com/ppacher/go-dbus-keyring => ./go-dbus-keyring
/Vendor
is also an option…
Curious what other solutions there are for patching imports, and what gophers recommend for real life situations?