A while back I added some useful make targets: if the env var `JUJU_MAKE_GODEPS` is "true", then
make godeps runs the godeps -u, and also makes sure it is run before build and check. I tend to use this. Also, if you are working on integrating changes in other branches that aren't merged, you'll always have a failing test now, no? Tim On 21/08/14 12:33, Ian Booth wrote: > Ah yes godeps -t ./... fails the same way. > But I never run that. > > I just run godeps -u dependencies.tsv > to update the revs of the imported libs as I switch juju-core branches. > > > On 21/08/14 10:30, Nate Finch wrote: >> And running godeps -t ./... Didn't give the same error? >> On Aug 20, 2014 8:26 PM, "Ian Booth" <ian.bo...@canonical.com> wrote: >> >>> Don't think so >>> >>> ian@wallyworld:~$ which godeps >>> /home/ian/juju/go/bin/godeps >>> >>> ian@wallyworld:~$ ls -l `which godeps` >>> -rwxrwxr-x 1 ian ian 4821160 Aug 15 19:12 /home/ian/juju/go/bin/godeps >>> >>> >>> >>> On 21/08/14 10:20, Nate Finch wrote: >>>> All the test does is run godeps -t ./... It looks for godeps in the path >>>> first and then looks in gopath/bin. Do you maybe have a version in your >>>> path that is old? >>>> On Aug 20, 2014 8:15 PM, "Ian Booth" <ian.bo...@canonical.com> wrote: >>>> >>>>> I run godeps all the time as I switch between 1.20 and master. It Just >>>>> Works. >>>>> >>>>> On 21/08/14 10:12, Nate Finch wrote: >>>>>> What happens when you run godeps normally? >>>>>> >>>>>> It should ignore the std lib stuff, but I don't actually know how >>> that's >>>>>> implemented. >>>>>> On Aug 20, 2014 8:02 PM, "Ian Booth" <ian.bo...@canonical.com> wrote: >>>>>> >>>>>>> Hmmmm. The test fails for me. >>>>>>> >>>>>>> >>>>>>> FAIL: dependencies_test.go:42: dependenciesTest.TestGodepsIsRight >>>>>>> >>>>>>> dependencies_test.go:77: >>>>>>> ... >>>>>>> dependencies_test.go:70: >>>>>>> c.Fatal(string(out)) >>>>>>> ... Error: godeps: no version control system found for >>>>>>> "/usr/lib/go/src/pkg/bufio" >>>>>>> godeps: no version control system found for >>> "/usr/lib/go/src/pkg/bytes" >>>>>>> godeps: no version control system found for >>> "/usr/lib/go/src/pkg/errors" >>>>>>> godeps: no version control system found for "/usr/lib/go/src/pkg/io" >>>>>>> godeps: no version control system found for "/usr/lib/go/src/pkg/sync" >>>>>>> godeps: no version control system found for >>>>>>> "/usr/lib/go/src/pkg/sync/atomic" >>>>>>> ... >>>>>>> ... >>>>>>> >>>>>>> >>>>>>> On 21/08/14 05:18, Nate Finch wrote: >>>>>>>> In an effort to make sure that dependencies.tsv is actually correct, >>>>> the >>>>>>>> tests in github.com/juju/juju now run godeps -t ./... and compare >>> its >>>>>>>> output to dependencies.tsv. The test looks for godeps first in the >>>>>>> $PATH, >>>>>>>> and then in the first $GOPATH/bin. If it is not found, it currently >>>>>>> skips >>>>>>>> the test (because CI doesn't have godeps when it runs the tests). >>>>>>>> Eventually I'd like to make the test not skippable, since anyone >>>>> running >>>>>>>> the tests (except CI) needs godeps anyway... but to get this in >>> sooner >>>>>>>> rather than later, I think it's ok to let it be skipped. >>>>>>>> >>>>>>>> Note that in submitting the PR, I actually had to fix >>> dependencies.tsv >>>>> to >>>>>>>> get the test to pass, because it was wrong.... which is exactly why >>>>> this >>>>>>>> test exists. >>>>>>>> >>>>>>>> You can now run go test from github.com/juju/juju and it'll tell you >>>>> if >>>>>>>> something's wonky with dependencies.tsv... it'll tell you if there >>> are >>>>>>>> entries in it that aren't needed, it'll tell you if you're missing >>>>>>> entries >>>>>>>> that should be in it, and it'll tell you if one of your branches is >>> on >>>>>>> the >>>>>>>> wrong commit. >>>>>>>> >>>>>>>> *Note:* this means you can't just willy-nilly append your latest >>>>>>> dependency >>>>>>>> to dependencies.tsv. They need to be in alphabetical order. The >>>>> easiest >>>>>>>> way to do that is just to run godeps -t ./... > dependencies.tsv from >>>>>>>> github.com/juju/juju. That'll produce the right output. Obviously, >>>>>>> check >>>>>>>> the diff to make sure the changes it produces are the ones you >>> expect. >>>>>>>> >>>>>>>> This also means that we need to ensure godeps produces the right >>> output >>>>>>> on >>>>>>>> all OSes. If you have a dependency that exists only in an >>> OS-specific >>>>>>>> file, the godeps test will fail on OSes other than that one (e.g. if >>>>>>>> there's a dependency in an _windows.go file, the test will fail on >>>>> linux, >>>>>>>> because godeps doesn't see the windows dependencies). To fix this, >>> the >>>>>>>> easiest thing to do is import the same library in an OS-agnostic >>> file, >>>>>>> and >>>>>>>> give it a name of underscore, which will prevent the unused package >>>>>>> error, >>>>>>>> thusly: _ "foo.com/my/win/lib" >>>>>>>> >>>>>>>> -Nate >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Juju-dev mailing list >>>>>>> Juju-dev@lists.ubuntu.com >>>>>>> Modify settings or unsubscribe at: >>>>>>> https://lists.ubuntu.com/mailman/listinfo/juju-dev >>>>>>> >>>>>> >>>>> >>>> >>> >> > -- Juju-dev mailing list Juju-dev@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju-dev