Your first paragraph seems to say "no" to my question.  But then this seems 
to say "yes" to my question

"In short, the go command needs to be able to form a valid URL from the 
module path,"

In my experience it is a definite yes.

On Tuesday, September 7, 2021 at 1:51:16 PM UTC-6 jayc...@google.com wrote:

> The module path doesn't need to match the repo URL, but if other modules 
> depend on your module, then the go command needs to be able to find your 
> repository given your module path.
>
> The lexical constraints for module paths are documented at 
> https://golang.org/ref/mod#go-mod-file-ident. In short, the go command 
> needs to be able to form a valid URL from the module path, so only certain 
> characters may be used, there must be a dot in the first path element and 
> so on.
>
> The go command looks up the repository location by sending a GET request 
> to https://<module-path>?go-get=1. It looks for an HTML response with a 
> meta tag that says where the module is located. For example, for the module 
> golang.org/x/mod, the go command will request 
> https://golang.org/x/mod?go-get=1 and will get a response with:
>
> <meta name="go-import" content="golang.org/x/mod git 
> https://go.googlesource.com/mod";>
>
>
> That says the module is in a Git repository at 
> https://go.googlesource.com/mod.
>
> That process is explained at https://golang.org/ref/mod#vcs-find. There's 
> a special case for GitHub module paths, so if your module is hosted there, 
> you don't need to stand up a server for that URL. Also, if a path component 
> ends with ".git", ".hg", etc, the go command will use everything up to 
> there as the repository URL without performing the lookup.
>
>
> On Tue, Sep 7, 2021 at 12:34 PM Dean Schulze <dean.w....@gmail.com> wrote:
>
>> If you are going to publish a Go module does the module name have to 
>> include the repo name?  I couldn't find this documented anywhere but 
>> through trial and error I've discovered that it is required.
>>
>> I named my module like this and published it to github:
>>
>> *module key-value-mod*
>>
>> In another module I declared it to be a dependency
>>
>> *require github.com/dwschulze/key-value-mod 
>> <http://github.com/dwschulze/key-value-mod> v0.1.0*
>>
>> When I ran *go get* I got this error:
>>
>> *$ go get github.com/dwschulze/key-va...@v0.1.0 
>> <http://github.com/dwschulze/key-value-mod@v0.1.0>*
>> *go: github.com/dwschulze/key-va...@v0.1.0 
>> <http://github.com/dwschulze/key-value-mod@v0.1.0>: parsing go.mod:*
>> *        module declares its path as: key-value-mod*
>> *                but was required as: github.com/dwschulze/key-value-mod 
>> <http://github.com/dwschulze/key-value-mod>*
>>
>> I changed the module's name to include the repo (and retagged that commit 
>> and pushed both)
>>
>> *module github.com/dwschulze/key-value-mod 
>> <http://github.com/dwschulze/key-value-mod>*
>>
>> and then it worked.
>>
>> This is a private repo if that makes any difference.
>>
>> I also discovered that when you have module problems like this you have 
>> to clear the mod cache or you end up getting the same error over and over 
>> again.
>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/d7c5cc18-6c54-4379-92fe-f313a2c5bc01n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/golang-nuts/d7c5cc18-6c54-4379-92fe-f313a2c5bc01n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/64f091c8-21be-4106-b7c7-07a0a55b01fan%40googlegroups.com.

Reply via email to