Golang Modules/vgo - local changes push, merge and tags

We are trying to use Go-Modules

We have reusable repo : "github/mycompany/funcs" many repo's use this, example : "github/mycompany/eCom/basket.go"

A new ticket says : "basket should support export to xls" .

In order to do that, we want to :

  1. Add funcs.go a function "StructToXls(interface{})"

  2. basket.go should use funcs.StructToXls(myBasket)

in the current modules format we need to, push and TAG of funcs and then update github/mycompany/eCom dependencies.

If we have a small bug we would need to repeatedly push and tag funcs, update eCom etc.

Is there a better way (other than go.mod -> replace which is dangerous and "developer must remember to use it every time he changes a basic repo") to work locally and when all done push and TAG the 2 repos ?

Moreover, in our current process (git flow style with some modifications) the developer only pushes the code to a branch, whereas the TL, approves and merges the code.

If the developer tags the library (funcs) locally and does not push that (theoretically its not his duty neither he is permitted to do that), that may create a false dependency, moreover, two different developer may do diff changes in funcs both changing ver from 1.2.3 => 1.2.4 since the increment is not centralized (which BTW needs a better tooling anyhow than manually inc.).

A better suggested flow would be greatly appreciated.