With respect to errors, I'm asking how things failed when you had a cyclic module dependency. My expectation is that this should just work. If your module 0.12 has a dependency on itself with min version 0.11, then 0.12 satisfies that dependency (as long as it's following the import compatibility rule, which isn't necessarily expected for pre-1.0 modules).
On Sun, Sep 9, 2018 at 9:10 AM Scott Cotton <w...@iri-labs.com> wrote: > Hi Sameer, > > I don't know what is considered an error and not an error with cyclic > module dependencies. > > Honestly, it makes my head hurt and simply requires too much thought that > I'd rather spend on the code. > > For example, I don't want to think what will happen to some SCC in a > module dependency graph after > a decade of development, in particular if a module can depend on an > earlier version of itself. > > Scott > > > > > > > On 9 September 2018 at 14:19, Sameer Ajmani <sam...@golang.org> wrote: > >> Are you seeing errors when there are cyclic module dependencies? As I >> recall, cyclic dependencies between modules (not packages) must be allowed: >> https://research.swtch.com/vgo-mvs >> "Note that F 1.1 requires G 1.1, but G 1.1 also requires F 1.1. Declaring >> this kind of cycle can be important when singleton functionality moves from >> one module to another. Our algorithms must not assume the module >> requirement graph is acyclic." >> On Sun, Sep 9, 2018 at 7:58 AM Scott Cotton <w...@iri-labs.com> wrote: >> >>> Hi Paul, >>> >>> On 9 September 2018 at 13:44, Paul Jolly <p...@myitcv.io> wrote: >>> >>>> Hi Scott, >>>> >>>> > Should cyclic module dependencies be allowed? >>>> >>>> Yes, indeed in some situations they are totally necessary. >>>> >>>> I wrote up an experience report on this very topic: >>>> https://gist.github.com/myitcv/79c3f12372e13b0cbbdf0411c8c46fd5 >>> >>> >>> >>> Interesting. I'm not sure what cyclic module dependencies means. I do >>> know some package managers (not go) boast of having a "solid transitive >>> dependency model". I hope that any cycles in modules dependencies are >>> either avoided or treated in a very clear simple way by go's modules. >>> >>> >>>> >>>> >>>> > Should a module, following a cycle, be able to depend on an earlier >>>> version of itself? (I saw this once...) >>>> >>>> I can't see how this would work; indeed I can't even unravel it in my >>>> head! Do you have a concrete example to help explain? >>>> >>> >>> Unfortunately, my concrete example is lost in sands of time, so I can >>> only give a rough idea. I had cyclic module dependencies, somewhat >>> unintended, but it crept in via some test case. I was playing with 111 or >>> late 111 release candidate with it and asked it to rebuild go.mod at an >>> untagged HEAD (I think) that was a few commits ahead of say v0.1.2. Then >>> go.mod had that my module required v0.1.1 of itself in go.mod >>> "indirectly". All I could figure out was that the module dependency cycle >>> A -> B -> A had B depending on an older version of A via a test case. >>> >>> Scott >>> >>> >>> >>> >>>> >>>> Thanks, >>>> >>>> >>>> Paul >>> >>> >>>> >>> >>> >>> -- >>> Scott Cotton >>> President, IRI France SAS >>> http://www.iri-labs.com >>> >>> >>> -- >>> 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. >>> For more options, visit https://groups.google.com/d/optout. >>> >> > > > -- > Scott Cotton > President, IRI France SAS > http://www.iri-labs.com > > > -- 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. For more options, visit https://groups.google.com/d/optout.