Unfortunately that would be difficult for me to do as it is not my project.
I just implemented the Go version of it so I had to follow the standard
they set (implementations are inside src/[language]. But thanks for the
detailed summary of the issues. I will try the tag approach and see how it
goes.

-Bruno


On Thu, Sep 14, 2023 at 10:55 PM 'Jim Idle' via golang-nuts <
golang-nuts@googlegroups.com> wrote:

> It’s an absolute nightmare to publish modules from subdirectories. I gave
> up for ANTLR and created a new repo with the source code in the root
> directory.
>
> But the art is that you need to create a tag named with the subdirectory.
> I was able to make that work until we needed a v{n} tag. Which as far as I
> can tell, just doesn’t work.
>
> I found that go get will duplicate the entire repo anyway, will create a
> pseudo tag from the commit, will download after every commit anyway, even
> if the go source wasn’t updated, and neither was the tag… the list goes
> on.  I looked at the source code for this part of go - it seems the authors
> wrestle with this on every release. There are open issues around it too. I
> can see how hairy the issues are and I am surprised this does not come up
> more often - when I first asked here about it, it was crickets all the way
> to the bottom. Also, the import will need to have your subdirectories in
> the path, which looks a bit wonky even if it works.
>
> So basically. Don’t do this as you are doing it, even though, on paper, go
> does not impose any particular structure on your repo beyond a few basic
> things such as excluding testdata, internal, and so on.
>
> Keep your go source at the root of the repo and tag that. If you have a
> choice, keep non-go artifacts in another repo, otherwise place that code in
> sub-directories, not the go code.
>
> If you have not created a tag, the go will create a pseudo version for
> you, which is its default. That’s ok, but it’s difficult to know what
> source level you are at from the git commit hash.
>
> I recommend using git flow methodology to make this stuff easier, though
> there is nothing forcing you to do so of course.
>
>
>
>
> On Fri, Sep 15, 2023 at 08:34 Lenny Kneller <lennyknel...@gmail.com>
> wrote:
>
>> Hi Bruno,
>>
>> This command works `github.com/flatgeobuf/flatgeobuf/src/go@master`
>> <http://github.com/flatgeobuf/flatgeobuf/src/go@master>.
>> I wonder if `@master` is needed because the repo has no packages
>> published?
>> There's more info about pseudo-versions here
>> <https://go.dev/ref/mod#pseudo-versions>
>>
>> -Lenny-
>>
>> On Thursday, September 14, 2023 at 5:59:39 PM UTC-4 Bruno Albuquerque
>> wrote:
>>
>>> It is likely that I am doing something stupid but as I am out of ideas,
>>> here goes nothing.
>>>
>>> I pushed an initial Go flatgeobuf implementation here:
>>>
>>> github.com/flatgeobuf/flatgeobuf/src/go
>>>
>>> This directory in the repository has a go.mod file with the following
>>> contents:
>>>
>>> module github.com/flatgeobuf/flatgeobuf/src/go
>>> go 1.20
>>> require github.com/google/flatbuffers v22.11.23+incompatible
>>>
>>> Just in case it might be relevant, the actual repository is
>>> github.com/flatgeobuf/flatgeobuf, src/go is a subdirectory there.
>>>
>>> If I try to use this module, it fails. For example:
>>>
>>> # go get -u github.com/flatgeobuf/flatgeobuf/src/go
>>> go: downloading github.com/flatgeobuf/flatgeobuf
>>> v0.0.0-20230914202020-25c11d75fe28
>>> go: module github.com/flatgeobuf/flatgeobuf@upgrade found
>>> (v0.0.0-20230914202020-25c11d75fe28), but does not contain package
>>> github.com/flatgeobuf/flatgeobuf/src/go
>>>
>>> What am I missing?
>>>
>>> -Bruno
>>>
>>> --
>> 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/98b7c5b7-5d5b-4a84-8237-b099dd623a53n%40googlegroups.com
>> <https://groups.google.com/d/msgid/golang-nuts/98b7c5b7-5d5b-4a84-8237-b099dd623a53n%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/CAGPPfg-YT%2BQ4B1R3Wyj%2BQqcfHyeiTJErnZwVKWhMy1%3DzhCQJgg%40mail.gmail.com
> <https://groups.google.com/d/msgid/golang-nuts/CAGPPfg-YT%2BQ4B1R3Wyj%2BQqcfHyeiTJErnZwVKWhMy1%3DzhCQJgg%40mail.gmail.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/CAEd86TyLeuONfvKmZj73rA50KzoBihw2cnS575Gr2mpjAeFiVg%40mail.gmail.com.

Reply via email to