/srv/irclogs.ubuntu.com/2014/06/03/#juju-dev.txt

axwmorning all01:03
waiganimorning axw :)01:06
perrito666well github is rather verbose01:06
waiganihow's bug land?01:06
axwnot bad, since I haven't been looking at the horrible mongo-related bugs lately01:07
perrito666ok guys, EOD01:13
axwwallyworld: got time to chat?01:26
wallyworldsure01:27
axwwallyworld: https://plus.google.com/hangouts/_/gw7us4q4lhcyws5ksu7ipthn6ia?hl=en01:27
axwwallyworld: there is already a canonistack slave02:13
wallyworldoh02:13
axwbut... running tests on there may interfere with CI02:13
wallyworldyeah02:14
axwI'm going to try adding another one in that we can use02:16
wallyworldaxw: the current script used by jenkins for the github landing fails with an unexpected EOF. i can't spot the issue, here's a pastebin - it's the last bit that's bad. can you see the error? http://pastebin.ubuntu.com/7577197/02:21
axwwallyworld: nothing jumps out02:23
wallyworldok, ta02:24
axwwallyworld: the "}" needs to be preceded by a newline or semicolon02:26
wallyworldok, will try that02:26
wallyworld\o/ thanks, that was it02:27
axwnps02:29
sinzuiwallyworld, mgz, canonistack is under resources, our aws account is reaching saturation. joyent and hp cloud have lots of cpus/instances for us to test/build with02:38
* sinzui will look to move some function tests and series tests to hp this week02:39
wallyworldsinzui: ok, we may need to try hp cloud. i'm testing now with a nailed up ec2 instance i was using for mongo testing in order to save time02:39
sinzuiwallyworld, mgz, will the lander be running unit tests for more than 1 series02:39
sinzui?02:39
wallyworldsinzui: not initially since we are just going trunk at first, but it will02:40
sinzuiwallyworld, I need to teach the default run-unit-tests about nova. At this time we can run ec2 or any existing host. Teaching the setup about joyen would be goos too02:40
sinzuioh, and azure was saturated last December, not that you wanted to wait 25 minutes to bring up a instance02:41
wallyworldsinzui: at the moment, the unit tests the lander runs fail every time using an ephemeral ec2 instance02:41
wallyworldusing a nailed up instance seems better02:42
sinzuiwallyworld, bad script, unbound variable02:42
wallyworldi have a couple of tests fail due to build errors but everything else passes02:42
sinzuithats the problem with cargo culting a script, you loose the context of what the required setup is02:43
sinzuiwallyworld, I am adding set -eux to make it easier to debug02:43
wallyworldok02:44
sinzuiwallyworld, I think you are going to get a pass this round02:46
wallyworldi hope so02:46
wallyworldwell, except for the build error02:47
wallyworldsinzui: did you change the test-merge-git script?02:47
sinzuiwallyworld, no, I think someone fixed the unbound var from run #202:48
sinzuiwallyworld, sorry, a failure02:48
sinzuioh, is this trusty?02:49
wallyworldyeah but at least it was due to a build failure02:49
wallyworldi think so02:49
sinzuithis is one of the common intermittent bugs.02:50
wallyworldoh, i just saw the replicaset failure also02:50
sinzuimaybe we want to call make check a few times to replay intermittent faules02:50
sinzuimake check || make check || make check02:51
sinzui^ three tries02:51
wallyworldon canonistack with tarmac, we seem to have eliminated most of the failures02:51
wallyworldseems more flakey on ec202:51
wallyworldbut yes, i guess we can do 3 retries02:51
sinzuiwallyworld, This test always gets current packages before starting02:51
sinzuiand I think you were using precise which had fewer changes02:52
sinzuiwallyworld, may, I make some quick changes to remove the unsed parts of the script and make it retry?02:52
wallyworldyes please02:52
wallyworldwe only have a small window left to get this working02:53
wallyworldit will still fail due to the build errors though02:53
wallyworldlooks like the import pulled in a deleted package02:54
wallyworldcmd/jujuc02:54
wallyworldsinzui: those obsolete files which cause the compile errors are now gone.02:59
sinzuiokay02:59
wallyworldare you finished with the script?02:59
wallyworldcan we start another run?02:59
waiganithumper: ping03:01
thumperwaigani: in the middle of something right now03:02
waiganithumper: okay, np03:02
sinzuiwallyworld, I see this script was restarted. I just save my changes. I removed the non-ephemeral conditions because this use is always ephemeral. I removed the lines that built tools. I need to do the same to the real scripts because we now do a proper isolated build for each test deb and tool03:12
wallyworldsinzui: i restarted just to get a ahead start on whether my build fixes were ok, i'll re-run wth your changes also03:13
sinzuiokay03:14
wallyworldsinzui: my main concern is that now the landing process takes a fair bit longer03:14
sinzuiI just discovered that I cannot build juju packages and run unit tests on the same machine03:14
sinzuiwallyworld, yep03:14
wallyworldso i'm thinking we do want to move to a nailed up instance at some point post cutover03:15
sinzuiyou can make it go much faster with provisioned instance or one that you start and stop. The deps phases of the script are essentially skipped03:16
wallyworldyep03:17
wallyworldi think having one that we start and stop will be best03:17
sinzuiI am pondering  having a jenkins slave for each crucial series+arch, and using the instance as a dedicated builder and running of local-provider tests03:17
wallyworldsounds reasonable03:18
wallyworldsinzui: yay, that run worked03:25
wallyworldi'll try another with your changed script active03:25
sinzuiexcellent, now we get to see if I can hack a bash script without syntax highlighting03:26
axwwallyworld: it says #18 passed, but in the logs the replicaset package's tests failed03:28
axwoops03:28
axwwrong tab :)03:28
wallyworldphew03:28
axwwallyworld: why did the PR not get updated?03:28
wallyworldit should have i think, not sure03:29
* thumper grumbles03:44
* thumper makes unpleasent noises03:51
thumperI've worked out why this test is failing03:51
thumperit is because JujuConnSuite bootstraps the environment for you03:52
thumperand I've changed the base test suite for this test03:52
thumperto something much simpler,03:52
thumperhence, broken test03:52
thumpernow how to just write out some jenv stuff...03:52
axwwallyworld: I was waiting for a LGTM, then I would do $$merge$$ - that's still the protocol right?03:53
wallyworldaxw: yeah, i'm experimenting trying to get the bot to pick it up03:53
wallyworldthe current core will be blown away and replaced with the trunk snapshot03:53
axwok03:53
waiganiaxw, wallyworld: will we use codereview at all anymore?03:53
axwwaigani: no03:54
wallyworldnope :-D03:54
wallyworldand good riddence03:54
waiganibig changes, okay03:54
axwwallyworld: the lander didn't pick up the $$merge$$ on your other PR?03:54
wallyworldaxw: nope :-(03:55
wallyworldthere's something wrong clearly03:55
waiganiman git is spamming my inbox!03:55
wallyworldthere's a cron job, but i also ran it by hand03:55
axwwallyworld: are you running it on your machine now?03:55
axwmk03:55
wallyworldaxw: nope, i've sshed into jenkins03:55
axwwallyworld: your membership in the juju org needs to be made public03:59
wallyworldok, i didn't realise it wasn't03:59
wallyworldah, that has fixed it04:01
=== lazypower-travel is now known as lazyPower
axwwallyworld: I'll reply to the list about that04:01
wallyworldaxw: that's a good pickup because a bunch of others are also private04:01
axwyup04:01
wallyworldaxw: so now with the ephemeral instances we waste about 6-7m getting everything set up to run the tests. not great, but not a show stopper for cut over04:08
axwwallyworld: yeah doesn't seem too terrible for a first cut04:09
wallyworldaxw: the thing now is the extra occurrences of these fraking timeout errors etc which break the tests04:09
axwyep... :/04:10
wallyworldjust got one now in the current run04:10
wallyworldi could have sworn that it's worse on ec204:10
axwwallyworld: I wonder if pre-warming the disk would be of benefit04:13
* axw looks into what we can do there04:13
wallyworldaxw: yeah, i was wondering that also04:13
thumpernailed it!04:18
thumpercoffee time04:22
thumperWTF...04:29
thumperlbox still trying to work out the diff04:29
* thumper goes to make the coffee04:29
axwwallyworld: one option is to try using the ephemeral storage, in /mnt04:30
axwwallyworld: I think that should be considerably faster04:31
axwand we don't need the persistence...04:31
thumperomg, that grew a bit... https://code.launchpad.net/~thumper/juju-core/user-display-name/+merge/22182304:31
wallyworldaxw: can't hurt, looks like the current job will pass second time through. can you tweak the script to use/mnt?04:31
axwwallyworld: even just putting TMPDIR in there04:31
axwwallyworld: I'll give it a shot04:31
wallyworldok, ta04:32
wallyworldTMPDIR sounds sensible also04:32
thumpermenn0:  https://codereview.appspot.com/102970043 - it grew more than expected04:32
* thumper -> coffee04:32
menn0thumper: looking04:33
thumpermenn0: I suggest that you, me and waigani chat tomorrow about it04:53
thumperas there are a number of things I want to talk through04:53
* thumper heads out to local code craft meeting04:53
menn0thumper: ok. I'm almost done though and I think I understand most of the things you're going to talk about04:54
thumper:)04:54
menn0thumper: thanks for cleaning up some of my --password changes. Much better.04:56
wallyworldaxw: that last one took all 3 attempts to merge. different error each time. the watcher / session closed issue seems to be more prevalent of late05:09
axwwallyworld: I put in the $TMPDIR change, hopefully that makes a difference05:11
wallyworldaxw: i'll trigger another merge and we'll see how it goes05:12
axwok05:12
wallyworldaxw: is it work setting up a dir in /mnt and setting GOPATH to that?05:14
wallyworldworth05:14
wallyworldbefore i do another run05:14
axwwallyworld: I don't think so, that's just for building the code05:15
axwit might make building the code a bit quicker, I guess, but I don't think it's a bottleneck by a long shot05:15
=== vladk|offline is now known as vladk
wallyworldok05:19
axwwallyworld: https://github.com/juju/core/pull/405:24
wallyworldaxw: looks like it's off and running05:26
axwgoodo05:26
axwwallyworld: we should probably run that script before tests too05:26
wallyworldyeah05:26
wallyworldi think i mentioned that to martin but we never wrote it down05:27
axwI'll add it in the job now05:27
wallyworldok, ta05:28
=== vladk is now known as vladk|offline
wallyworldaxw: a random thought - would running the tests with say "-p 4" help, since that may cut down on the thrashing of resources etc06:07
axwwallyworld: umm, I think it's going to be 2 as it is06:08
axwit's running on a dual core isn't it?06:08
axw-p defaults to #CPU06:08
wallyworldnot sure, i had thought it was higher06:08
wallyworldyou may be right06:08
axwwallyworld: I'll check, but I don't think it's higher than 406:08
wallyworldif it is 4, then may -p 206:09
axwwallyworld: it has 406:09
wallyworldyeah, m1.xlarge06:09
axwwallyworld: doesn't hurt to try06:10
wallyworldthe latest run failed twice06:10
axwyeah :/06:10
wallyworldaxw: sigh. latest builds not happy07:03
wallyworldgo tool: no such tool "vet"; to install:07:03
wallyworldgo get code.google.com/p/go.tools/cmd/vet07:03
wallyworldi have to head to soccer, are you able to have a look and i'll check later?07:04
axwwallyworld: sorry, will fix07:09
rogpeppeso... one hour to github D Day... how's it looking?07:56
voidspacemorning all08:13
TheMuevoidspace: morning08:22
voidspaceTheMue: o/08:22
jamwow, it took me 3 hours to actually get a bootable USB stick that works…. so hard, why is it so hard...08:44
voidspacejam: I've always found it difficult too08:45
voidspacejam: and I think in the end I discovered I could only make it work with *one* of my USB sticks08:45
jamvoidspace: yeah, there are 4 different master partition table types, and various flags that have to be set, and ....08:45
jamand tools that you try to use that just blow up unless everything is already set up correctly08:45
jamvoidspace: so I formatted with MBR form on my Mac, took it over to Ubuntu and used fdisk to create 1 partition dos compatible, set it active and bootable, set the type to 0x0C, mkfs.fat -F 32, and then use Startup Disk Creator to copy the ISO onto the stick.08:46
jamnow *maybe* msdos formatting from gparted would have also worked (maybe)08:46
voidspaceheh, ouch08:47
jamI tried a lot of other permutations in there08:47
jambut it seems like a streamlined "here is an ISO, and do what you want to this stick to make it boot"08:47
jamwould be such a better experience08:48
lifelessjam: dd usually works, no ?08:48
voidspaceI always used to use unetbootin on the Mac - it didn't work for me on Ubuntu last time I tried it08:49
voidspacelifeless: morning08:49
jamlifeless: so the Mac instructions have you convert the ISO into a DMG and then dd it, which worked once08:49
jambut I accidentally used the 64 bit version for an old machine08:49
jamso I had to fix it for 32 bit08:49
jamand … yeah, a lot of stuff didn't work08:49
jamI think the key was finding a way to get MSDos compatibility enough08:49
jamlifeless: dd doesn't set the bootable or partition table, does it?08:51
lifelessjam: it includes a partition table08:51
lifelessjam: dd of=/deb/sdb08:51
jamlifeless: the biggest problem I had was having the old machine find the USB device as bootable, I'm not sure if I tried just dd from the .iso08:56
voidspaceaxw: ping08:56
jamit wasn't in any of the recommended guides08:56
jamall that just to run shred sanely on all my old hard drives before getting rid of old equipment08:56
axwvoidspace: pong08:57
jamI'll try that once the shredding is done :)08:57
jamlifeless: good to see you around, btw, haven't said hi in a while08:59
lifelessjam: hi :)08:59
lifelessjam: did you consider netbooting ?08:59
lifelessjam: e.g. with maas and run shred from there?09:00
lifelessor even perhaps maas should have a decommission-hardware facility, to make removing old content easy09:01
jamlifeless: interesting thought, I had not considered it. The main idea was to not have / on the physical disks so that I could nuke everything without worrying about mounts. Because I *could* just boot the thing directly, though it was running Hardy09:05
jamand I think the other machine is/was running Fedora Core *3*09:06
voidspaceaxw: so we made a change to Initiate yesterday on the suspicion that the CI machine was just slow09:06
voidspaceaxw: this is the bootstrap problem on precise amd6409:06
axwvoidspace: I saw09:06
voidspaceaxw: it did not fix the issue - but it made the problem a bit clearer09:06
axwoh?09:07
jamlifeless: one funny thing working here, is that I'm now the most senior person in all of Juju. Tim is here, but I predate him by a couple of months (since he actually originally applied for the Bazaar dev role)09:07
voidspaceaxw: immediately after calling replSetInitiate we poll until CurrentStatus returns successfully09:07
voidspaceaxw: on the failing machine that fails immediately (and persistently) with a "Closed explicitly" error09:07
voidspaceaxw: that specific error seems to come from the mgo library when socket.Close() is called09:07
axwyep09:08
voidspaceaxw: I've read through the code from MaybeInitiate  (I probably need to go further back in the code but we're running out of time) to see if I can find a race condition09:08
axwon the other machines it comes back saying "it'll be ready soon" or something?09:08
voidspaceaxw: yep09:08
voidspaceI thought that we just weren't waiting long enough before giving up on this machine09:08
voidspacebut that appears not to be the case09:09
voidspaceaxw: I do have one question09:09
voidspaceinside replicaset/replicaset.Initiate09:09
lifelessjam: wow, sounds like there was quite some turnover?09:09
voidspacewe call monotonicSession.SetMode(mgo.Monotonic, true)09:10
jamlifeless: well, this is just Juju, there are still people at Canonical that predate me.09:10
jamplus, I'm like #70 or so09:10
jamso not a huge gap in front, and 600 people now at Canonical09:10
jamso, I was in top 10% to start09:10
voidspaceaxw: session.SetMode - the second parameter is for "refresh", which if true calls session.unsetSocket()09:10
voidspaceaxw: do you know why it does this?09:11
axwvoidspace: I think the refresh is to ensure restarting of the consistency guarantee09:11
axwI don't know any more than that09:11
axwvoidspace: rogpeppe or natefinch may know more about it09:12
lifelessjam: sure, I was meaning in the juju context09:12
voidspaceaxw: as far as I could tell this *doesn't* close the socket - although it does set a couple of sockets to nil09:12
voidspaceaxw: but there's no finalizer that I could find09:12
lifelessjam: like, I'd have thougt kapil or mramm joined juju before you09:12
* axw looks09:12
jamlifeless: I mean joined Canonical, where I predate mramm, but maybe not kapil09:12
voidspaceaxw: and it calls socket.Unlock() - which I think comes from the fact that mgo.socket embeds sync.Mutex09:13
jamhe doesn't directly report on the same chain09:13
voidspaceaxw: which also wouldn't call Close09:13
jamfor Juju proper, lots of people still working on the project longer than me09:13
jamfwereade, mramm, rogpeppe, etc.09:13
axwvoidspace: unsetSocket does a socket.Release09:13
voidspacelifeless: jam: mramm is relatively new - I predate him09:13
jamvoidspace: yeah, he's only about 2 years or so09:14
jambut he's been working as part of Juju longer than me09:14
voidspaceaxw: right, which does an Unlock() followed by a LogoutAll()09:14
voidspaceaxw: none of which *seems* to call Close()09:15
voidspaceI guess that isn't it - it was just suspicious09:15
voidspaceaxw:  and I wondered if we *needed* that refresh09:16
axwvoidspace: hmm yeah, I think it just puts it back into a pool to be reused.09:16
axwvoidspace: that I do not know09:16
voidspaceaxw: something is closing the socket the session is using - causing all further operations to fail09:17
voidspaceaxw: but only on the CI build machine...09:17
voidspaceaxw: I think this morning is the deadline though, we can't leave trunk broken any longer09:18
voidspaceeven if it's just on one machine...09:18
voidspaceso we'll have to backout my changes and switch to a different strategy for setting the Mongo WMode (which was the purpose of enabling replica sets for local provider)09:18
axwvoidspace: bugger :(09:19
voidspacenot having direct access to the machine to try things on doesn't help09:19
voidspacecoffee09:20
axwvoidspace: it's the closing of the "Server" object that closes all the sockets09:20
jamwow, driving it at 73MB/s sustained will still take 4 hours to do 1 pass over 1TB of data, and I have it set to do 3, guess I just come back tomorrow :)09:35
lifelessjam: doing some map-reduce ?09:37
lifelessjam: oh shred ;)09:37
jamlifeless: shredding old disks before giving them away09:37
lifelesswell, gnight :)09:38
jamlifeless: gnight09:38
stubgithub.com/ju/ju/core09:50
voidspacestub: hah, nice09:52
voidspacewe should do that09:52
voidspacenatefinch: morning10:04
natefinchvoidspace:  morning10:04
jamfwereade: quick poke about CodeNotFound vs CodeUnauthorized here. If you pass an environ we don't recognize, what code should we get?10:05
jamWe are still getting the error during Login, because of how round trips work, so Unauthed is somewhat reasonable10:05
perrito666good morning10:27
wallyworldrogpeppe: jam: natefinch: you guys ok with githib.com/juju/juju-core ? seems to be the least hated option10:32
jamwallyworld: omg, wtf,,, how could you say such a thing10:32
jamwallyworld: I'm pretty easy going here.10:32
wallyworldme too10:32
wallyworldjust trying to get consensus, whatever that means10:32
jamI'd actually like to get rid of the "-core" part, because it feels like it is just baggage because there was a pyjuju that took 'juju' over for too long10:33
wallyworldyeah10:33
natefinchthat was my thought of why it should just be juju10:33
jamif you "apt-get install juju" you get juju-core10:33
wallyworldso github.com/juju/juju then?10:33
jamI agree that github.com/juju/juju/juju and github.com/juju/juju/cmd/juju.Juju are a bit silly, but the -core doesn't actually add any information.10:33
natefinchyeah, it's the same stuttering, just with some garbage in the middle10:34
wallyworldi thought core because it distinguishes from logging testting etc10:34
jamwallyworld: github.com/juju/juju is my #1, with github.com/juju/juju-core being #2, I guess10:34
jamfair point, though I'd rather prefer we had libjuju and juju the cmdline tool :)10:34
natefinchfor the record, I still don't know what the juju-core/juju package is for, maybe we just need to rename that10:34
wallyworldor rename juju the team to juju-team :-)10:34
wallyworldgithub/juju-team/juju10:35
wallyworld+1 to renaming juju-core/juju10:35
natefinchwallyworld: I actually don't like the testing package name, it's not descriptive on its own, and it should be, if it's in its own repo10:35
natefinchs/package/repo/10:35
wallyworldyeah, i haven't thought about that one, since i didn't set it up10:36
jamnatefinch: it is the entry point, AIUI, so juju/api.go etc. "juju.NewAPIClientFromName()"10:36
jamnatefinch: arguably we could have that at the top level10:36
jamgithub.com/juju/juju.NewAPIClient()10:37
natefinchjam: having something at the top level would be nice.  I'd love to have cmd/juju at the top level, since that's what you'd normally "go get"  even though we sadly don't support that10:37
jamnatefinch: IMO that is a clear use case for having 2 separate things, a 'libjuju' and a 'juju command line client"10:38
wallyworldthat makes sense10:38
voidspaceperrito666: morning10:39
wallyworldwhat do other github team based projects do?10:39
wallyworldis team name normally = product name?10:39
natefinchoften times, yes10:39
wallyworldso i guess we should go with github/juju/juju10:40
wallyworldcan we all live with that?10:40
natefinchthe only other person I heard respond was axw, who said he moderately preferred /juju/juju, I think10:41
voidspaceI prefer juju/juju10:42
voidspacefwiw :-)10:42
wallyworldok, the people have spoken :-)10:42
natefinchActually, rogpeppe responded, but sort of vaguely10:42
rogpeppei'm not that keen on juju/juju actually10:42
rogpeppebecause then we have a package github.com/juju/juju/juju10:43
rogpeppewhich seems like overkill10:43
rogpeppei actually think that core isn't too bad10:43
rogpeppebut i'd be happy with juju/juju-core too10:43
natefinchrogpeppe: we can just rename that package10:43
rogpeppeas it distinguishes the genuinely juju-specific parts of github.com/juju10:44
rogpeppebecause actually most packages under github.com/juju are *not* juju specific10:44
rogpeppeso having a juju- prefix to the name makes sense10:44
natefinchthat's why I like calling this repo juju :)10:44
rogpeppenatefinch: yeah, but see above :-)10:44
rogpeppejujujujujuju10:45
voidspacenatefinch: my absolutely last ditch attempt to fix locl-deploy-precise-amd6410:45
voidspacenatefinch: https://code.launchpad.net/~mfoord/juju-core/refresh-session/+merge/22185710:45
natefinchsee above.... we should rename that package anyway10:45
voidspacenatefinch: just running all tests here to check it doesn't break anything10:46
voidspacenatefinch: should I propose it/10:46
voidspace?10:46
rogpeppenatefinch: well, the original intent of that package was that we'd have a "juju" package which would be the "face" of juju to external Go code10:46
rogpeppenatefinch: i still think that's a reasonable intent10:47
voidspaceyay for bike-sheds10:47
natefinchrogpeppe: rename it to libjuju, since juju is the command line client10:48
rogpeppenatefinch: and if we were to export versioned APIs, maybe it might make sense to have a separate (versioned) repo named "juju" which would import juju-core10:48
rogpeppenatefinch: libjuju?10:48
dimiternvladk|offline, standup?10:48
natefinchrogpeppe: maybe github/juju-team is better?10:50
rogpeppenatefinch: probably10:50
rogpeppenatefinch: but github/juju is fine too10:50
rogpeppenatefinch: and github/juju/juju-core works pretty well, i think.10:50
rogpeppenatefinch: and leaves the path open for other juju- packages10:50
natefinchrogpeppe: juju-core was my second choice, I just don't think core adds much... and using /juju doesn't stop someone else from using juju-foo10:52
* natefinch wants to make a juju-fu package now10:53
rogpeppenatefinch: if the top level of the juju-core repo was a usable package, i'd agree that juju was a better name (it makes for a more guessable identifier) but as it is, i think i'm in favour of juju-core, or just core and people can rename it. tbh i don't care too much.10:55
natefinchwell, I'd love to put cmd/juju in the root so that the CLI client is the top level "thing that gets built"... but that's probably asking too much ;)10:55
wallyworldso do we want juju-core then?10:57
natefinchIt sounds like we have 4 votes for /juju and one for juju-core ....  so I don't know where that puts us10:58
wallyworldi originally was +1 for juju-core if core were not suitabke10:58
voidspaceI'd have thought it was fairly clear where it puts us...10:58
natefinchwallyworld: so 2 for juju-core.10:58
natefinchvoidspace: I'm actually not trying to make it a popularity contest10:59
voidspaceheh10:59
mgzI have decided we're going to use github.com/juju/justsomedamncode10:59
natefinchlol10:59
wallyworldi just wish our team was called juju-team10:59
voidspaceit should be justsomedamnedcode10:59
wallyworldthat would remove a lot of the stuttering10:59
natefinchhttps://github.com/rails/rails10:59
voidspaceteam and project name the same is a pretty common convention I would expect11:00
natefinchfor things that are actually worked on by outsiders, yes... there's github.com/dotcloud/docker  for example11:00
natefinch(for things that are more primarily worked on by the company)11:01
voidspacenatefinch: ping11:37
voidspacenatefinch: I'm going on lunch11:51
voidspacenatefinch: can you take a look at https://codereview.appspot.com/102980043/11:51
voidspacenatefinch: and see if you think it's worth one last try, or if you have a better idea / modifications11:52
voidspacenatefinch: or just think it's a bad idea...11:52
natefinchvoidspace: I looked, it's worth a try.  We should really get on the CI machine... sinzui tells me we can do that now.  I forget exactly what he said but I can find it on the traceback12:00
perrito666oh man, I missed the bikeshed12:16
perrito666say guys, I have something to submit, but I am not sure were we stand since today is go to github day12:17
jamperrito666: well they haven't said "we are on github now" so I think we're still on launchpad12:18
perrito666jam: as far as we are not in between12:18
jamperrito666: until they say stop, we might as well land where we land12:19
jamwell, until they say go, I guess12:19
perrito666jam: ack12:19
perrito666jam: btw https://codereview.appspot.com/103820044/ if you want to take a look12:19
jamperrito666: do we need to concern ourselves about getting 127.0.0.1 or ::1 instead of "localhost" ?12:20
perrito666for the moment I am getting spammed by gh I need to create a few new filters it seems12:20
jamperrito666: fortunately, they are "lists" so gmail filters them ok, but yes, every inline comment = new email12:21
wallyworldjam: perrito666: there will be 30 minute's notice, so land away till then12:21
wallyworlda few prereq things are being finalised12:21
perrito666jam: you mean why I actually look for localhost in the test?12:22
jamperrito666: if strings.HasPrefix(addr, "localhost:") {12:23
jam127.0.0.1 is *also* localhost12:23
jamas is ::112:23
jamas is the actual public IP of the local machine12:23
mgzpre-forward notice, bzr landings will be stopping today12:25
mgzbe aware if you have a branch currently up for review12:25
perrito666jam: well we are trying to force it to go trough localhost, if the list already has 123.0.0.1 we should do no harm12:29
jamperrito666: well, 127 is pretty specific (vs 123 :)12:30
perrito666jam: oh12:30
jammgz: you could do something evil and commit a change to 'lp:juju-core' that just always breaks the test suite :)12:30
* perrito666 moves the irc to the screen with a reazonable resolution12:30
jamwell, actually, just change go-bot to run "&& false"12:31
jammgz: then the MP's get rejected12:31
jamecho "no longer merging on launchpad12:31
mgzjam, I think I just take the lock when ready12:31
jam" && falsee12:31
jammgz: well, I mean someone submits, have them get the "not here" feedback12:31
jamso leave tarmac running, just have it running and rejecting all requests.12:31
voidspacenatefinch: ok, if you can get those instructions I'll try it out13:09
natefinchlooking13:13
bodie_morning all13:13
perrito666bodie_: hi13:13
voidspacenatefinch: any luck?13:32
voidspacenatefinch: we could land it - it if it doesn't fix the problem we'll be reverting the lot anyway13:32
alexisbnatefinch, ping13:33
wwitzel3fwereade: https://codereview.appspot.com/103770044/13:34
frankbanmgz: is it ok to start working on the git project, or do we need to wait until the migration is done?13:35
alexisbnatefinch, cloudbase call13:36
mgzfrankban: you need to wait13:44
mgzbut please feel free to try out the test repo13:44
rogpeppe1mgz: are changes to launchpad.net/juju-core frozen?13:45
mgzyou'll just need to patch any changes you want to keep onto the new one when it's out13:45
wwitzel3mgz: did you pull the trigger on disabling lp?13:45
mgzjust about to13:45
perrito666mgz: good luck13:46
mgztest git landing disabled13:47
fwereadewwitzel3, might not get to that for a bit today13:49
sinzuijam: the job doesn't set GOROOT. The test is very bare in fact. It sets GOPATH just before it calls make.  I add GOROOT. Or maybe this bytes issue with trusty packaging problem13:49
wwitzel3fwereade: sure, np :)13:49
fwereadewwitzel3, encourage cmars to take a look now; wallyworld or I will surely take a look tonight/tomorrow though13:50
* cmars takes a look13:51
* wallyworld will look tomorrow13:51
natefinchalexisb: crap, sorry, I thought that was Wednesday... got pulled away from my desk for a while13:52
wwitzel3fwereade: I am moving it to GH anyway, so will ping people with the new review, thanks13:53
alexisbnatefinch, no worries13:53
alexisbwe are still on13:53
natefinchalexisb: jumping on13:53
alexisbhi  gsamfira and alexpilotti13:55
alexisbkadams54, hi13:55
bodie_looking for some guidance serializing this map[interface{}]interface{} -- I know that the values are either lists, maps, or other things that are OK.  if the values are maps, I know that the keys will be strings13:55
bodie_however, bson is grumpy because it doesn't know that the keys will be strings, it sees interface{}s13:55
kadams54alexisb: hi!13:55
bodie_o/13:56
bodie_I'm thinking the right answer is to recurse on a type switch and then serialize leaves to bson13:57
bodie_but not totally sure and want to get some confirmation13:57
bodie_also, there could potentially be maps or lists as values inside lists, I suppose, I mean it's just JSON so I don't know why it doesn't want to play nice13:57
bodie_I deserialized into the datastructure using goyaml and I think that might be the issue13:58
voidspacenatefinch: perrito666: wwitzel3: I assume we're delaying standup until natefinch is free13:58
perrito666voidspace: ok by me13:59
alexisbhi trobert213:59
natefinchvoidspace: free now13:59
voidspacecool13:59
alexisbtrobert2, if you have specific questions regarding unit tests this would be a good place to ask them13:59
alexisbI am sure that natefinch and team would be willing get you pointed in the right direction14:00
wwitzel3how do I get bzr to produce a patch with bzr diff so I can apply it to my gh branch? .. bzr diff --old co:trunk isn't doing anything useful14:10
voidspacewwitzel3: create a merge proposal on launchpad and download the diff :-)14:11
wwitzel3voidspace: hah, good point14:11
natefinchug, stupid hangouts crashed, brb14:13
jam1voidspace: wwitzel3: bzr diff -r ancestor:trunk14:15
jam1or bzr diff -r submit: if you have that configured14:15
mgzstarting the bzr import14:15
jam1cd ../trunk14:15
jam1bzr merge —preview $MYBRANCH; is the contents of the launchpad MP14:15
mgzwwitzel3: my email should have included a working command14:15
mgz..at least for the pople who use my way, I forgot to mention that cobzr people need to work out how to address trunk themselves14:16
trobert2ok. thank you very much guys :)14:21
wwitzel3mgz: yeah, downloading the diff from lp worked out well enough :)14:22
wwitzel3mgz: also, I hadn't seen your email yet. It would of also solved it for me.14:23
mgzjenkins job cloned and updated14:26
alexisbmgz, I will be a few minutes late to our 1x1, will ping you when I am back at the keyboard14:27
mgzI'm so tempted to make the github description `juju is`14:27
mgzalexisb: no problem14:29
mgzfirst revs pushed, everyone please still wait before poking14:29
mgzI'll send an all clear when I'm done14:30
wwitzel3so I should stop my automated poking script?14:30
* wwitzel3 kicks the dirt14:30
mgz:D14:30
* bodie_ pokes wwitzel3 14:31
=== marrusl_ is now known as marrusl
perrito666wwitzel3: if you need a hand with what you are doing poke me, I might be of help there14:38
mgzimport changes thus far, a little oddness, some files have been resurrected, including some testing charm bits: http://paste.ubuntu.com/758079314:42
natefinchmgz: nice work14:44
natefinchmgz: odd that some things are getting resurrected.... do you think it's just a buggy import?  (I presume you're using some bzr to git importer)14:45
mgzyeah, just some import oddness I presume14:45
mgzseems limited from eyeballing that14:45
natefinchwe're gonna have to update the readme14:47
=== vladk|offline is now known as vladk
mgzyeah, I have various modifications to land befre this is live14:47
natefinchcool14:47
* natefinch will stop bugging the person actually getting the work done.14:47
trobert2Hey guys, I have a question: anyone know how to expand a short path? ex: "C:\\Users\\ADMINI~1" to "C:\\Users\\Administrator\\"14:48
natefinchtrobert2: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364980(v=vs.85).aspx14:49
natefinchtrobert2: which it looks like is in windows' syscall library14:50
=== rogpeppe1 is now known as rogpeppe
natefinchtrobert2: do you know about running godoc locally so you can see the windows version of the syscall package?14:52
trobert2no, I do not14:56
trobert2I`ll give syscall.toLong a try. Thanks for the response14:57
natefinchtrobert2: oh, wow, glad I thought to ask.  depending on how you installed Go, you should have an executable called godoc, which you can run to get a copy of the docs that exist at golang.org.  run godoc -http=:8080  and then you can open a browser to localhost:8080/pkg to see the docs for all packages on your system, including the standard library... which is the only way to see the windows version of the syscall package (14:58
natefinchsince it is OS specific)14:58
natefinchtrobert2: it should be syscall.GetLongPathName ... toLong is a private function that you won't be able to reference (note the lowercase first letter)14:59
natefinchtrobert2: but you can use toLong as a guide for how to call GetLongPathName15:00
natefinchtrobert2: it's probably good to just copy toLong entirely to your own package15:01
trobert2natefinch: thank you. Having the docs locally will be quite helpful15:04
=== vladk is now known as vladk|offline
natefinchtrobert2: welcome.  Hugely important when doing windows work, since the windows syscall stuff isn't on golang.org  (I really wish they'd put the non-linux syscall docs online... I realize why they're not on the default doc site, because Google isn't running Windows or OSX, but still....)15:05
mgzseriously?15:05
mgzI appear to have screwd the repo already somehow15:05
natefinchlol15:05
natefinchjust rebase15:06
natefinch;)15:06
perrito666mgz: you are a fast kid15:06
natefinchthat's the git way, right?15:06
mgzas in, I have a corrupt pack15:06
mgzgithub trunk should be ready for forking15:23
mgzdoing test merge15:24
mgzI'll send a note to the list when things are actually confirmed usable, but the adventurous can start experimenting now15:24
mgz...I've confused github about who's the bot and who is me15:26
sinzuimgz :)15:28
sinzuimgz, do you bleed?15:28
mgzmaybe I should have used a mailinator account15:28
sinzuioh, hay, I don't think I closed the bugs, or...I forgot to be the juju-qa-bot15:28
mgzeveryone: can I have a review? github.com/juju/juju/pull/115:29
mgzsinzui: have you got an alt caonical email address I can use for the bot?15:32
mgzI want to reclaim mine for my github account15:32
sinzuihmm15:32
mgzsomething like jujubot@ubuntu.com would be grand, but that means talking to IS...15:33
mgzsod it15:33
sinzuimgz, I don't, but the bots abentley created alway have + in the user15:33
mgzcunning15:33
sinzuimgz https://launchpad.net/~juju-qa-bot15:33
sinzuibugger, I did forget to be the bot. sorry jam15:34
* sinzui updated the release log to ensure the bot credentials are passed15:35
mgzperrito666: can you review my branch plz?15:36
sinzuimgz, will you be adding a 1.18 branch? I tagged the Lp branch a few hours ago, but postponed the 1.18.5 increment until github was ready15:38
mgznope15:38
mgzI wasn't planning on it15:38
mgzI left the bzr bits up for 1.18 for now15:38
sinzuimgz, oh, that is right, 1.18 doesn't to to github. 1.20 will be the first stable in github15:39
mgzkeeping it like that would make backports more annoying, but importing multiple branches with fastimport is kinda borked15:39
sinzuimgz, fast export to fast import? Does that preserve tags?15:40
perrito666mgz: diff says much more than your merge proposal comment :p15:40
sinzuiI guess not15:40
perrito666mgz: reviewed15:44
jam1mgz: sinzui: worse case it generates a mapping and we should be able to find the tags, but I think it does at least try to tag revs15:45
jam1mgz: if we don't have the release tags, can you make sure to get them put in manually?15:45
jam1I feel it is important to keep them15:46
sinzui+1. I was going to add them once mgz frees his identity from the bot15:46
mgzjam, hm, urk, the instructions I was following stripped varioius things15:47
mgzbut retagging should be fine, right?15:47
jam1mgz: stripping revs makes me pretty sad15:47
mgzthe revs should all be there, plus or minus weirdness, of which there was some15:48
jam1mgz: as long as you can match the contents, we can do new tags15:48
mgzbut I didn't generate a marks file or anything15:48
jam1I don't really want to have "the mainline commit that sort of looks something like 1.18.1"15:48
jam1I really want us to have the "tree that was released as 1.18.1"15:48
mgzjam1: I don't see a way around it for old minor versions,15:48
jam1mgz: create them15:48
sinzuiperrito666, do you have a minute to review https://codereview.appspot.com/9371004315:48
jam1mgz: these are actually precious artifacts, we *can* go back to the bzr codebase, but that gets pretty clumsy15:49
jam1mgz: but really, why would we chose a lossy conversion?15:50
sinzuijam1, mgz, we don't have stable tags in th lp's trunk aka git's master. If we want the stable tags, we need to recreate the stable branches15:50
* jam1 goes off for a while15:50
=== noodles785 is now known as noodles775
* perrito666 isnot sure if lgtm sinzui 's version number changes after seeing how they break builds :p15:51
perrito666sinzui: done15:52
sinzuiperrito666, good point. 1.18 doesn't have a "var switchOverVersion = MustParse("1.19.9")"15:52
sinzuiperrito666, ^ that number was set to 1.19.3 in devel, telling juju to reject 1.19.4 as a devel lrease15:53
perrito666yeah, I thought that as long as we dont get near 1.19 its all fine :)15:53
perrito666mgz: jujubot has your face as avatar that is mildly disturbing15:53
mgzperrito666: it is.15:53
mgzI am trying to fix that by getting a new account from IS15:54
perrito666there is certain dr who sense in the fact that our bot is a british man with a canonical logo for a face15:56
natefinchhaha15:57
sinzuiyeah, the flat colour looks like the logo from the 4th Doctor era15:58
natefinchgithub.com/juju/juju builds for me after running godeps -u dependencies.tsv15:58
natefinchnice work everyone15:58
mgzevil time coming16:00
mgz...actually, I won't be evil.16:00
natefinchanyone opposed to making the readme markdown?16:01
perrito666natefinch: not at all16:01
voidspacewow, 20:54 minutes to scp a juju tarball to the CI machine16:01
mgznatefinch: see the pending merge proposal16:01
natefinchmgz: you mean the pull request? ;)16:02
mgzwatevar16:02
natefinch:D16:02
perrito666voidspace: welcome to southamerica (?)16:03
voidspaceperrito666: hehe16:03
voidspaceperrito666: or rural England16:03
voidspacenatefinch: sinzui: so logged into CI machine as jenkins and running the juju that CI did, a local bootstrap fails16:04
voidspacenatefinch: sinzui: a local build that I scp'd up (as ubuntu user) succeeds16:04
sinzuihmm16:04
voidspacenatefinch: sinzui: that one refreshes the session before asking for status16:04
voidspacesinzui: that's with changes16:04
natefinchoooh16:04
sinzuivoidspace, very intersting16:05
voidspacesinzui: natefinch: that Refresh is to avoid the "Closed explicitly" problem16:05
natefinchI hope that means it's fixed, not just that where it's built matters16:05
voidspacenatefinch: well, yes16:05
voidspacesinzui: natefinch: so current hypothesis is that this "fix" is worth landing and trying16:05
sinzuivoidspace, We know that jenkins strips the env of personal var that we often assume to be there16:05
sinzuivoidspace, oh, I misunderstood, please land.16:06
voidspacesinzui: natefinch: if it doesn't *actually* fix the problem then we will revert the changes that caused this and workaround it some other way to achieve what we want16:06
voidspaceso one way or another it will be the end of it16:06
voidspace(well, of this particular problem)16:06
sinzuivoidspace, We explicitly define USER=jenkins in the local tests because that var was stripped by jenkins. if local tests, juju, mongo need a missing var, I need to find it and put it back16:06
voidspaceright16:07
voidspaceok, so now all I need to do is work out how to land a branch in the new wild and wonderful world of git16:07
natefinchhaha16:07
voidspacewhich can mean only one thing16:07
voidspaceit's time for more coffee16:07
natefinchvoidspace: http://blog.natefinch.com/2014/03/go-and-github.html16:08
natefinch(and anyone else)16:08
perrito666natefinch: thank you16:10
jcw4natefinch: great tip, thanks!16:10
perrito666although we should all use the doc on the repo, so we have better chances of finding errors16:10
sinzuiAnyone have an idea why the ppc64el (ggcgo) doesn't have anything like "go/src/pkg" installed. It may have been, but was removed? The unittests started failing yesterday because the  bytes package doesn't exist16:11
natefinchsinzui: no idea.... obviously, it should be there16:13
mgzgah, I'm an idiot, I should have been evil16:13
natefinchhahaha16:13
natefinchis it too late?16:14
mgzwell, I can half-way it16:14
sinzuirick_h_, jcsackett I am still getting jcsackett's vacation requests16:22
jcsackettsinzui: ack, thanks. rick_h_ is on vacation, i'll see about sorting that. perhaps an RT to the directory.16:24
jcsackettit lists me as reporting to you still as well.16:24
sinzuistupid monkeys16:24
mgzsinzui: lp:~gz/juju-release-tools/fix_juju_github_path16:26
* sinzui pulls16:27
perrito666mm, bzr diff between two branches using --old and --new yields... a lot16:28
sinzuimgz, merged16:28
mgzpulled on the bot, thanks16:29
sinzuimgz, can I install it on the master and slave now. I cannot think os a reason why not16:29
mgzhopefully that's the last of the fallout from the name change16:29
mgzsinzui: please do, I did master as I need that for a clean run16:30
sinzuiWe still need to tell CI to poll the git branch for changes16:30
mgzI do that16:30
mgzit's in the ubuntu user's crontab, which is I'm not sure how you want it16:30
mgzI also need to write all the pokings I did on the jenkins machine in your doc16:31
mgzor you mean for the other jobs?16:31
sinzuimgz, jenkins has a crontab that lists the branches to check. abentley or I will change it shortly. I am kicking the stable 1.18.5 test run to complete16:35
abentleysinzui: I was off IRC for a bit.  Missing context.16:36
sinzuimgz, The publish step is too brittle now that it it builds a lot and publishes even more. Lots of network failure opportunities16:36
alexisbjam, fwereade: either of you around?16:37
sinzuiabentley, juju core is on git hub. We want to replace lp:juju-core with "gitbranch:master:github.com/juju/juju" I think16:37
* sinzui typed that from memory16:37
abentleysinzui: Yes, I agree.16:37
abentleysinzui: I want to run it by hand first, but we won't see the full effect until these tests are done: publish-revision, run-unit-tests-precise-amd64, run-unit-tests-trusty-amd64, walk-unit-tests-amd64-trusty16:40
mgzokay, all done but the waiting16:40
mgzactually, checklist16:40
sinzuiabentley, +116:40
sinzuiabentley, mgz, it would be nice to pick a known good revision, but trunk has been broken for 9 days16:41
natefinchswitching version control providers while the tests were passing would have been too boring16:42
sinzui:)16:43
sinzuinatefinch, the brittle publish step always adds a risk to every test16:43
natefinchthat just makes it more exciting16:44
sinzuiabentley, do you have a few minutes to discuss a revised process to run unit tests, build, and publish16:44
abentleysinzui: sure thing.16:44
sinzuiabentley, https://plus.google.com/hangouts/_/calendar/Y3VydGlzQGNhbm9uaWNhbC5jb20.lmdv7d975raqphi9pf38tm7juo?authuser=116:45
abentleysinzui: I am in the hangout, but I don't see you.16:47
sinzuioh so am i16:47
perrito666mgz: natefinch do any of you know where "check" is?16:54
rogpeppeperrito666: "check" ?16:54
perrito666rogpeppe: in the goint go git docs there is a reference to16:55
perrito666ln -s ../../check .git/hooks/pre-push16:55
mgzperrito666: it got moved, the new contributing has the updated location16:55
perrito666mgz: did that got merged?16:55
rogpeppeperrito666: it's probably renamed from lbox.check16:55
mgzperrito666: it's being chewed on16:58
* perrito666 does coffee to ease the wait16:58
mgzwe have issues with tests witch -p > 116:58
=== vladk|offline is now known as vladk
voidspacemgz: I have a branch with a 1 line change in it17:09
voidspacemgz: bzr diff -rancestor:co:trunk > ~/initiate-refresh.patch17:09
voidspacemgz: produces a 27k patch file17:09
voidspacemgz: my bazaar branch has trunk merged into it, so it's up to date17:09
mgzodd17:10
perrito666voidspace: bzr diff between your commit and the previous one17:10
voidspacethat's what I thought :-)17:10
perrito666I had to do that17:10
voidspaceperrito666: ok17:10
perrito666bzr diff between my branch and trunk produced a very verbose thing17:10
mgzI might have the spelling wrong, what did jam say earlier...17:11
mgz(worked for the branches I tested though...)17:11
mgzhm, jam said the same17:12
=== vladk is now known as vladk|offline
perrito666mgz: the same?17:14
mgzmerge -r ancestor:trunk17:14
voidspacepicking the specific revision worked fine17:15
voidspacesooo, I created a branch added-committed-pushed (origin master)17:22
voidspaceI can't see my branch on github though17:22
voidspacehttps://github.com/voidspace/juju/branches17:22
voidspacehmmm... although: https://github.com/voidspace/juju/tree/initiate-refresh17:23
voidspacebut "This branch is 0 commits ahead and 0 commits behind master"17:23
EgoistHello17:24
EgoistI have to instances and want to connect them. The problem is that first instance want to connect with second but second has not finished configuration so refsed connection, and by that i have Error in *-relation-changed hook17:24
mgzsinzui: can you keep an eye on github-merge-juju? we're still not having miuch joy with these tests17:24
Egoistsomeone know how to handle with this?17:24
natefinchmarcoceppi: ^^17:25
sinzuimgz I wish17:25
sinzuimhgz, I will17:25
voidspaceah, I pushed to the wrong branch it seems17:25
marcoceppiEgoist: is it configuring in the background?17:25
marcoceppiEgoist: how is it not finished configuring?17:26
voidspacenatefinch: https://github.com/juju/juju/pull/317:26
natefinchvoidspace: looking17:26
natefinchhaha contributing still mentions cobzr17:27
voidspaceyeah, I just saw that17:27
perrito666natefinch: https://github.com/bz2/core/blob/contributing_updates/CONTRIBUTING17:27
perrito666slightly newer17:27
voidspacethe repo names have been updated though17:27
perrito666so, so, juju/juju or juju/core, I am not sure what did we settle with17:28
natefinchjuju/juju is where stuff it17:28
marcoceppi\o.17:28
natefinchs/is/it/17:28
marcoceppi\o/*17:28
marcoceppijuju/juju makes much more sense, think of those who clone something, suddenly what is marcoceppi/core ?17:28
natefinchexactly what I said17:28
natefinchthe other option was juju/juju-core .... but the argument there is that we only called it juju-core before because on launchpad, juju was taken by pyjuju17:29
marcoceppinatefinch: we're going to be moving juju/docs to juju/juju-docs soon as well17:29
natefinchmarcoceppi: that's good.  It's good to have the repo names able to stand on their own17:29
bodie_YES!  got my funky nested map[interface{}]'s coerced properly17:30
bodie_if this doesn't fix the bson marshaling issue around that, i'll be a monkey's uncle17:30
natefinchmgz, sinzui: where's the new contributing doc for how we work this thing?  Is there a formal "Approve this PR"? Or is it more informal?17:30
natefinchbodie_: awesome17:31
natefinchoh, I missed perrito66617:32
natefinch's link17:32
sinzuinatefinch, sorry. I don't know that yet17:32
natefinchSounds like informal, which is fine.  It was effectively the same thing before.17:33
perrito666natefinch: that has been approved for landing17:33
voidspacenatefinch:17:33
voidspaceAfter a proposal has recieved an LGTM, the landing must be notified to test and merge17:33
voidspacethe code into master. This is done by a member of the juju project adding the magic17:33
voidspacestring $$merge$$ in a comment.17:33
perrito666but mgz-faced bot is not being able to merge it17:33
voidspacenatefinch: cool, I have to EOD17:34
voidspacenatefinch: hopefully this lands and hopefully it fixes the build :-)17:34
natefinchvoidspace: np.  Good work on that.17:34
voidspaceif not, tomorrow is the big revert day :-(17:34
voidspaceheh17:34
voidspacewe'll see17:34
voidspaceg'night17:34
natefinchI'm optimistic17:34
natefinchsee ya17:34
perrito666mm, reverting something merged with bzr in git, that should be somehow fun17:35
natefinchI think the commits are all there, so it's just a matter of pretending they were always in git.17:36
perrito666natefinch: nice17:37
rogpeppeg'night all17:40
perrito666rogpeppe: o/17:41
bodie_I'm getting thrown off by state/conn_test.go line 74 AddTestingCharm17:48
bodie_it's in the state package, yet it calls state.AddTestingCharm with additional arguments17:49
bodie_the only other AddTestingCharm definition I see is in juju/testing/conn.go17:49
bodie_and its arity doesn't match, either17:49
bodie_does anyone know where to track that down?  I must not be grepping just right17:50
bodie_er, it's in the state_test package17:50
natefinchthat's the thing17:51
natefinchstate_test is a different package17:51
natefinchso in order to call AddTestingCharm, it has to qualify it by the package name17:51
bodie_here we go17:51
bodie_found it17:51
bodie_yeah, I think I got thrown off since I somehow forgot I was in the testing package :)17:51
bodie_s/testing/state_test17:51
natefinchyeah, it can be a little confusing, especially since that's the only time you can be in the same directory, but a different package17:53
natefinchman, I wish env would sort alphabetically18:01
natefinchmgz: why do we tell people to do go get -v?18:37
perrito666ouch, I forgot a dentist appointment18:37
natefinchoops18:37
* perrito666 runs18:38
perrito666Ill ba back later most likely18:38
perrito666I also got my git juju working, altough I am not sure what is the new name for check18:38
natefinchperrito666: I'll see if I can figure it out18:39
perrito666well, contributing/readme patch just landed18:39
perrito666so perhaps docs are fixed18:39
natefinchthey look much improved18:39
* perrito666 maps the dentist office and notices it is perhaps the hardest place to get in driving in the universe...18:39
natefinchdoh18:40
perrito666well I better run then, let me know if you find out what the name of check is :)18:41
perrito666cheers guys18:41
natefinchsuch a beautiful URL  https://canonicalhr--fhcm2.eu2.visual.force.com/apex/fHCM2__FairsailProfile18:49
mgzwoho! landed.18:55
mgzI'll send email a bit later, but consider the git repo live18:55
natefinchyay!18:55
sinzuimgz, Did you add a rule to try -p 1 when the first effort fails?18:55
mgzI made it just use -p1 twice in the end, it's the only one that seems to reliably work18:56
sinzuiand you select xlarge too18:56
sinzuithis is very worying18:56
mgzI think we just use a smaller machine for now as well, it's not like we're getting benefit from extra cores...18:57
sinzuimgz, I am building slaves next week. think about the resources you need. I may be able to provide a dedicated slave for gobot18:57
sinzuimgz, those tests do make a difference to the test suite18:58
sinzuithe cores are used18:58
mgzsinzui: ace, thanks18:58
mgzsinzui: they would be for -p > 1 much better...18:58
abentleysinzui: I have tried building the git branch, but so far, breakage: http://juju-ci.vapour.ws:8080/job/build-revision/1436/console19:05
natefinchwhat's wrong with git clone https://github.com/juju/juju  ?19:13
natefinchabentley, sinzui: ^^19:15
abentleynatefinch: That is too vague.19:16
jcw4natefinch: works for me?19:16
natefinchabentley: eh?19:16
abentleynatefinch: We want a specific tree, not whatever happens to be the tip revision.19:17
natefinchabentley: that'll get the master branch19:17
natefinchor rather, whatever is defined as the default branch, which is currently master19:17
abentleynatefinch: Right.19:17
jcw4natefinch: n/m misunderstood your comment :-)19:17
natefinchwhich is what gitbranch:master seems to indicate you want?19:18
abentleynatefinch: We don't want something that always grabs master.  We want something that grabs what we tell it to grab.19:20
natefinchabentley: ok, sorry, I was just looking at what that code seemd to be doing.  Stack Overflow says to do this:19:24
natefinchgit init19:24
natefinchgit remote add -t $BRANCH -f origin https://github.com/juju/juju19:24
natefinchgit checkout $BRANCH19:24
natefinchthe wacky stuff in the middle is to prevent git from getting the whole repo.... which I presume is what we want. Otherwise you can just do19:26
natefinchgit clone https://github.com/juju/juju && git checkout $BRANCH19:26
natefinch(clone gets all branches in the repo)19:26
natefinchthis also seems to work:   git clone -b $branch https://github.com/juju/juju19:29
abentleynatefinch: Good to know how to avoid retrieving other junk.  But we're fine with doing a clone for now.19:30
bodie_I'm not totally following this bit -- $ ln -s ../../scripts/pre-push.bash .git/hooks/pre-push19:34
bodie_where's that assuming your working directory is?19:34
natefinchrelative directories are never a good idea in instructions19:34
natefinchbodie_: I have no idea where it expects you'll be when you run that command.19:36
bodie_also, I'm assuming none of our bzr branches and such have been preserved, so I need to push --force to a forked branch in my user account, right?19:36
bodie_if an email went out with all this info, I don't think I saw it -- did I miss that?19:37
natefinchbodie_: the email is still in the works19:37
natefinchbodie_: yes, none of the bzr branches will exist. You'll need to move your code over... I'm not sure exactly how to do that, honestly.19:38
bodie_I think forking it and pushing to our personal forks will suffice for now, but merging might get finicky, unless I'm not thinking through this clearly19:38
bodie_the way we worked at DigitalOcean was to push to user branches in the core repo, then open PR's against the branches rather than against user repos19:39
abentleysinzui: looks like the packaging is hardcoded for launchpad.net: http://juju-ci.vapour.ws:8080/job/publish-revision/454/console19:40
sinzuiabentley, natefinch : the make-release-tarball script does something similar19:40
abentleysinzui: Yes, that's what I think we were discussing.19:40
sinzuiabentley, natefinch : git clone $JUJU_CORE_REPO $WORK/src/$PACKAGE19:40
sinzui    if git ls-remote ./  | grep origin/$REVISION; then19:40
sinzui        git checkout origin/$REVISION19:40
sinzui    else19:40
sinzui        git checkout $REVISION19:40
sinzui    fi19:40
natefinchbodie_: any experience you can share with git/github would be much appreciated.  We're all pretty new to it (I have used github for personal projects quite a bit, but not for anything big)19:42
bodie_I'll see what I can dig out of my head -- personal forking and PR's are probably not a bad way to do it really19:42
bodie_there are a lot of ways to do it19:43
bodie_since we were on Github Enterprise w/ a private repo I think it was different since all users were easily able to have push access (although we didn't have push to master)19:44
sinzuiabentley, I think a step got skipped, The script might be getting the wrong args19:47
sinzuiabentley, https://code.launchpad.net/~sinzui/juju-release-tools/make-from-git/+merge/22130719:47
sinzuimake-release-tarball.bash 0ededa1f3e7cd8a50f1c94f6abbb3355735069a6 https://github.com/juju/juju.git would be the expected args19:48
sinzuiabentley, I will look into this when I get back from school19:49
abentleysinzui: I've fixed that issue already.  See http://juju-ci.vapour.ws:8080/job/build-revision/1440/console19:49
bodie_natefinch, if there's anything specific in question or that I can help with, feel free to grab my attention any time -- I'm probably not qualified to make positive claims about best practices though :)19:49
natefinchbodie_: haha, no problem.  I'm sure there will be things you know that we don't, and things none of us know. It'll be fun.19:51
bodie_I'm definitely a huge fan of it.  there are a couple of fundamental schools of thought.  I lean towards the "branch thoughtfully and prodigiously" school19:52
bodie_I like to have a master, a beta, a testing, and a dev branch, then user branches, and then grant push access on user branches; merge finished features to dev; merge finished dev sprints to testing; merge greenlit code to beta; merge major completed features to master19:54
bodie_then you don't have to worry about what's going into master19:54
bodie_but, most people just like to PR against master, I'm just kinda more process oriented19:55
bodie_if you're not comfortable with git the branching, rebasing, merging stuff can be kinda high drag / breakage prone19:56
bodie_so, I think most people don't like the branch heavy approach19:56
natefinchbodie_: the nice thing about forks is that you don't have to grant anyone access, they can just do it.  But yeah, might be the difference between enterprise and github proper20:01
bodie_right, but the question is kind of whether you want people opening PRs against master or, what branch20:01
natefinchbodie_: yeah.... my feeling is that eventually the code makes it into master anyway, and as long as tests and CI pass, go for it20:11
menn0waigani: ~\0/~20:13
natefinchI'm trying to decide if that's a guy shrugging, or a guy with really big shoulder pads.... probably neither20:14
menn0it's not great is it?20:14
menn0kinda looks like superman flying, head on20:15
bodie_natefinch, lol20:15
menn0officially it's: waving hello/goodbye20:15
* natefinch is terrible at these things20:16
bodie_it's doing the sine dance20:19
bodie_:P20:19
menn0nice ;-]20:33
mgzI have made jumbalia and am watching irc again if people have migration issues20:34
menn0mgz: so far so good for me20:35
menn0is anyone having trouble with their canonical gmail? I've just been logged out and it's asking me for a password instead of 2FA...20:36
menn0nevermind20:36
mgzI always get asked, just leave blank and it forwards20:36
alexisbmgz, dude! what time is it for you?20:36
mgz21:3820:36
alexisbmgz is getting sleepy ... ;)20:37
menn0mgz: I tried that first but I got "wrong username/password"20:37
natefinchomg, I want jambalaya20:37
menn0mgz: entering the token from my phone worked (even though it was asking for a password not a token, weird)20:38
alexisbalrighty all, I am off to town for some outreach work and won't be online again until tomorrow morning, if you need me urgently feel free to call my cell20:56
=== alexisb is now known as alexisb_out
natefinchalexisb: have fun!20:56
thumperwaigani, menn0: morning, care for a hangout to talk through the user display name work?21:36
menn0thumper: sure, give me 1 min21:37
thumpermenn0, waigani: https://plus.google.com/hangouts/_/g5vgmsdpkfpsgdxsxsw3dbvfpqa?hl=en21:38
sinzuiabentley, wallyworld, CI is broken because the source package branch (also under test) looks for launchpad.net/juju-core. the winbuildtest.py script does something similar21:41
sinzuiI will fix them though I am a little tired. I wont rush21:41
abentleysinzui: Yes, I mentioned this two hours ago: " sinzui: looks like the packaging is hardcoded for launchpad.net: http://juju-ci.vapour.ws:8080/job/publish-revision/454/console"21:42
sinzuiabentley, sorry I have been in meetings. I know how to do the fix.21:43
abentleysinzui: On a happier note, I have preliminary numbers for published revisions: https://chinstrap.canonical.com/~abentley/published-revisions.png21:46
sinzuilovely.21:47
sinzuithank you abentley21:47
abentleysinzui: win-client-build-installer also seems to depend on launchpad.net in the path.21:48
sinzuiI am fixing that right now21:48
bodie_hmmmm.... I just noticed that I'm having dependency issues because all my deps are from juju/juju, but I've changed a bunch of files in my personal repo.21:53
bodie_so, I could go into my code and edit it to use my own deps21:54
bodie_but then if I merge that, Juju would be using my code as deps21:54
bodie_is there an established way to deal with this?21:54
bodie_it seems like this is a good argument against using user forks, but there is probably a way21:55
bodie_maybe we could have a script that symlinks github/juju/juju to the user's workspace21:55
jcw4<natefinch> voidspace: http://blog.natefinch.com/2014/03/go-and-github.html21:55
jcw4<natefinch> (and anyone else)21:55
jcw4bodie_: ^^^21:55
bodie_s/Juju would be using my code/Juju would be using my repositories/21:55
bodie_I don't think that answers the question, but I'll look again21:56
bodie_okay, so step 4 overwrites the local copy of the repository in-place21:56
bodie_that makes sense :)21:56
jcw4right, so you're using your repo, but at the gopath location for juju/juju21:57
bodie_I don't like that but it works21:58
jcw4there's a couple variations in the comments, but nate's original suggestion makes the most sense to me22:00
bodie_I guess the only alternative would be to symlink the repo to the user's repo22:01
bodie_or, the only one that comes to mind for m22:01
bodie_e22:01
jcw4A close contender for me was the suggestion in the comments to clone gh:juju/juju in the expected place and then add your personal repo as an upstream repo and then branch from there22:02
jcw4but I liked the simpler approach of just cloning your personal repo in the gh:juju/juju gopath location22:02
jcw4(and adding gh:juju/juju as an upstream repo)22:02
perrito666hello again everyone22:04
bodie_if anyone gets a chance (jcw4?) I could use a glance at https://github.com/binary132/juju branch charm-interface-actions22:04
bodie_not quite sure what's going on with my tests22:04
bodie_http://paste.ubuntu.com/7583269/22:05
jcw4bodie_: looks like you're getting a nil ActionSpec instead of an empty one...22:07
bodie_hm22:07
jcw4(technically its the map[string]charm.ActionSpec that's nil)22:09
perrito666bodie_: where exactly is that test?22:09
jcw4perrito666: state/state_test.go22:09
jcw4perrito666: in bodie_ 's branch22:09
bodie_https://github.com/binary132/juju/blob/charm-interface-actions/state/state_test.go#L203222:10
thumpercmars: sorry for being late, can I put you off a day?22:16
jcw4bodie_: I think just checking for nil unmarshaledActions.ActionSpecs and assigning an empty map if its nil will get you past that error...22:16
jcw4bodie_: I assume we want to always return an empty ActionSpecs if the Charm doesn't declare one?22:17
jcw4bodie_: hmm, no - even with that check it's still getting the error.  Maybe the map isn't getting serialized to mongo, and then when it gets read back out it's nil?22:19
bodie_that's possible, yes22:20
jcw4bodie_: my hypothesis is that AddTestingCharm returns a Charm with an empty Actions, but when that same charm is read from mongo the Actions is nil22:25
jcw4bodie_: whether it's the Actions() or the Actions().ActionSpecs that is nil, I'm not sure... I think the latter actually22:26
bodie_hmm22:26
jcw4bodie_: no, AddTestingCharm returns the Charm *from* mongo after adding it22:29
jcw4bodie_: so you're getting a Charm with an empty charm.Actions().ActionSpecs when you initially add it, but then when you retrieve it the second time the charm2.Actions().ActionSpecs is nil22:30
perrito666aghh, my juju computer lacks all my github config22:31
jcw4bodie_: ahhh... no.  In your Assert on line 2032, you're putting the expected charm in the obtained spot22:32
bodie_am i?  *looks*22:32
jcw4bodie_: so the error message is backwards...22:32
jcw4bodie_: the Assert call expects the obtained result first, and the expected result later in the params list22:33
jcw4bodie_: so.. AddTestingCharm is returning a charm where Actions().ActionSpecs is nil22:34
bodie_I'm not certain about that, based on the previous check in that file22:34
jcw4bodie_: however the subsequent call to state.Charm() is returning a charm where Actions().ActionSpecs is empty22:35
jcw4bodie_: that's what the source for Assert says... gocheck/helpers.go:16522:36
bodie_okay, well that must be where we're seeing the problem22:36
bodie_wordpress is *supposed* to have an empty Actions22:36
bodie_I was thinking we should return Actions{} rather than Actions{ActionSpecs: Charm.ActionSpec{}}22:37
bodie_okay, I think I understand, thank you22:37
bodie_they're both using newCharm(st, cdoc)22:39
bodie_I suspect that since the Actions struct is empty it's simply omitting it from the document entirely22:40
bodie_whereas after the Insert, it's still just an empty Actions{}22:40
jcw4bodie_: I bet if we add a `yaml:",omitempty` to ActionSpecs it'll work as expected22:43
jcw4bodie_: testing....22:43
bodie_or maybe a bson22:45
jcw4bodie_: yeah, trying bson but that's just guessing on my part now22:45
bodie_I think perhaps omitempty is the opposite of what we want?22:47
bodie_or...22:47
jcw4bodie_: do we want nil or empty?22:47
bodie_well if we use omitempty I think it will omit the field from the doc22:47
bodie_therefore, when deserialized, will come back nil22:47
bodie_right?22:47
jcw4bodie_: hmm bson:",omitempty" made the test pass...22:48
jcw4bodie_: right22:48
bodie_okay, cool22:48
bodie_I'm still not fully getting the annotations22:49
bodie_what did you do with that?22:49
bodie_e.g. ActionSpecs map[string]ActionSpec `yaml:"actions"bson:",omitempty"22:49
jcw4bodie_: http://paste.ubuntu.com/7583486/22:52
jcw4bodie_: yeah, pretty close22:52
bodie_ah, I see22:53
waiganimenn0: I think you just merged that branch by saying "$$merge$$"22:55
waiganimenn0: maybe you just need to retry a few times22:55
bodie_now I'm getting this: http://paste.ubuntu.com/7583514/22:58
thumperwallyworld: ping?23:00
jcw4bodie_: hmm, do you have any orphaned mongo processes or some other environmental issues?23:00
wallyworldthumper: hiya23:00
bodie_I do have my own mongod running in the background -- I checked for that though.  maybe I'll have a sweep through /tmp23:00
wallyworldcoming23:00
bodie_welp, I'm gonna have to set this down for tonight, hopefully a reboot will clear away the stormclouds ;)23:06
jcw4bodie_: o/23:06
waiganimenn0: ping?23:08
menn0waigani: pong23:19
waiganimenn0: ah, never mind. Dave turned up for standup.23:19
* perrito666 makes a pr that is 10 times longer in description that the actual patch23:43

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!