Can you share some issues you have?
Now my code has references to github all over it and no chance to replace that dependency without a massive code change - something that may not be even practical.
The "replace" directive .... ha ha ha. Never got it to work for me - a total joke. Obviously it must work in some simple situation but apparently not mine.
The misery of trying to fork a library or just the subcomponent of that library that I need to change and use.
The strange special directories (internal, vendor, ....)
WTF is a "package" really and how does that relate to where you put code? It just seems to be a complete disconnect with where you put things or how you import them and is very confusing.
executables having to be alone in their own cmd directory.
Essentially that I hit mysterious import related problems that require continual careful reading of the docs to work out what I'm falling foul of.
Working out what is the real difference between GOPATH and GOROOT - you can read the docs many many times without understanding the straightjacket that the wise Go developers think should fit everyone and so you get problem after problem until you start to understand why "computer says no."
Creating read-only files in your home account so that you cannot "blow away" (without some trouble) the caching that is hiding or causing your latest module importing problem.
Sorry, the whole business is a great non-joy to have to deal with.
I wish there was a more systematic way to do "replace", possibly in libraries as well
for the record it stopped working in go 1.15. 1.14 was the last version it worked in.