News for hackers. Stuff that matters.
Re:Go Modules Cheat Sheet by tsimionescu on Monday May 03, 2021 @01:58PM (#27028418)
It isn't, but it is limited to a few source control solutions. If you use something other than Git, Bazaar, SVN, Mercurial, or Fossil, then you're not going to be able to publish Go modules.

Also, Go modules are dependent on DNS, so any domain name change for your repo will have to result in code (import path) changes.

Re:Go Modules Cheat Sheet by gary-kim on Monday May 03, 2021 @02:13PM (#27028660)
A change in your repo does not need to result in an import path change if you set up vanity URLs for your import path. For instance, all my go libraries use the import path of gomod.garykim.dev even though the repos are actually hosted on GitHub. That means if I ever change to self-hosting, for example, I just need to update some of the meta tags on the gomod.garykim.dev website to change the repo location.
Re:Go Modules Cheat Sheet by tsimionescu on Monday May 03, 2021 @02:21PM (#27028773)
That still means that if you lose your domain name (gomod.garykim.dev) for whatever reason, you have to modify your code.
Re:Go Modules Cheat Sheet by morelisp on Monday May 03, 2021 @04:16PM (#27030101)
You can use a replace directive to handle cases like this without updating the code.

https://golang.org/ref/mod#go-mod-file-replace

Re:Go Modules Cheat Sheet by tsimionescu on Tuesday May 04, 2021 @02:18AM (#27034560)
Only if you're the final consumer of that module - if you publish it so others use your module, the replace directive will be ignored and they will get a failed build (or have to add their own replace directive for your sub-dependency).
Re:Go Modules Cheat Sheet by morelisp on Tuesday May 04, 2021 @02:31AM (#27034631)
Yes, but this is roughly the same as any packaging system - the ones that don't use DNS as a default namespace require you to add explicit package repositories, which is no more or less onerous than the replace directive.