Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What do you do if you're working on a go project and you need to fork one of its dependencies? Or the project you're working on is a fork?

https://stackoverflow.com/questions/14323872/using-forked-pa...

There are a lot of different approaches listed in here that have changed over time. Different projects evolve at different rates. You might need to become familiar with multiple old ways of dependency management to be really effective.



Not a Go developer (but i really admire their devops-friendly toolchain and general ethos of keeping things simple).

I went to https://go.dev/doc/

I clicked on "Managing Dependencies" -> "Requiring external module code from your own repository fork"

And arrived at:

https://go.dev/doc/modules/managing-dependencies#external_fo...

Assuming that information is correct - and i'm not in a place to judge that, i just don't have the knowledge unfortunately - that journey felt pretty short and discoverable.


Go modules were apparently released right after I changed jobs and stopped using go at work.

Apparently I’m remembering the old hell.


Are there really that many mainstream projects that use alternative dependency handling? Go modules were introduced in v1.11 and they seem pretty mature.

The replace directive seems to solve the issues with forked projects in particular. [1]

1 - https://github.com/golang/go/wiki/Modules#when-should-i-use-...


Clone it, update the consumer go.mod with a "replace" directive to point the dependency at your fork.

I don't understand how this is still a problem for people to understand. It's been the standard for literally years now.

It's actually even better now that go workspaces are a thing.



I haven't messed with them yet but 1.18 add workspaces [1]

This is definitely a pain point I've had with golang and the 'accepted' process has changed 3 or 4 times in the last 2 years.

1: https://go.dev/doc/tutorial/workspaces


> the 'accepted' process has changed 3 or 4 times in the last 2 years.

No it hasn't.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: