Original post

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?