[01:03] morning all [01:06] morning axw :) [01:06] well github is rather verbose [01:06] how's bug land? [01:07] not bad, since I haven't been looking at the horrible mongo-related bugs lately [01:13] ok guys, EOD [01:26] wallyworld: got time to chat? [01:27] sure [01:27] wallyworld: https://plus.google.com/hangouts/_/gw7us4q4lhcyws5ksu7ipthn6ia?hl=en [02:13] wallyworld: there is already a canonistack slave [02:13] oh [02:13] but... running tests on there may interfere with CI [02:14] yeah [02:16] I'm going to try adding another one in that we can use [02:21] axw: 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:23] wallyworld: nothing jumps out [02:24] ok, ta [02:26] wallyworld: the "}" needs to be preceded by a newline or semicolon [02:26] ok, will try that [02:27] \o/ thanks, that was it [02:29] nps [02:38] wallyworld, 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 with [02:39] * sinzui will look to move some function tests and series tests to hp this week [02:39] sinzui: 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 time [02:39] wallyworld, mgz, will the lander be running unit tests for more than 1 series [02:39] ? [02:40] sinzui: not initially since we are just going trunk at first, but it will [02:40] wallyworld, 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 too [02:41] oh, and azure was saturated last December, not that you wanted to wait 25 minutes to bring up a instance [02:41] sinzui: at the moment, the unit tests the lander runs fail every time using an ephemeral ec2 instance [02:42] using a nailed up instance seems better [02:42] wallyworld, bad script, unbound variable [02:42] i have a couple of tests fail due to build errors but everything else passes [02:43] thats the problem with cargo culting a script, you loose the context of what the required setup is [02:43] wallyworld, I am adding set -eux to make it easier to debug [02:44] ok [02:46] wallyworld, I think you are going to get a pass this round [02:46] i hope so [02:47] well, except for the build error [02:47] sinzui: did you change the test-merge-git script? [02:48] wallyworld, no, I think someone fixed the unbound var from run #2 [02:48] wallyworld, sorry, a failure [02:49] oh, is this trusty? [02:49] yeah but at least it was due to a build failure [02:49] i think so [02:50] this is one of the common intermittent bugs. [02:50] oh, i just saw the replicaset failure also [02:50] maybe we want to call make check a few times to replay intermittent faules [02:51] make check || make check || make check [02:51] ^ three tries [02:51] on canonistack with tarmac, we seem to have eliminated most of the failures [02:51] seems more flakey on ec2 [02:51] but yes, i guess we can do 3 retries [02:51] wallyworld, This test always gets current packages before starting [02:52] and I think you were using precise which had fewer changes [02:52] wallyworld, may, I make some quick changes to remove the unsed parts of the script and make it retry? [02:52] yes please [02:53] we only have a small window left to get this working [02:53] it will still fail due to the build errors though [02:54] looks like the import pulled in a deleted package [02:54] cmd/jujuc [02:59] sinzui: those obsolete files which cause the compile errors are now gone. [02:59] okay [02:59] are you finished with the script? [02:59] can we start another run? [03:01] thumper: ping [03:02] waigani: in the middle of something right now [03:02] thumper: okay, np [03:12] wallyworld, 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 tool [03:13] sinzui: i restarted just to get a ahead start on whether my build fixes were ok, i'll re-run wth your changes also [03:14] okay [03:14] sinzui: my main concern is that now the landing process takes a fair bit longer [03:14] I just discovered that I cannot build juju packages and run unit tests on the same machine [03:14] wallyworld, yep [03:15] so i'm thinking we do want to move to a nailed up instance at some point post cutover [03:16] you can make it go much faster with provisioned instance or one that you start and stop. The deps phases of the script are essentially skipped [03:17] yep [03:17] i think having one that we start and stop will be best [03:17] I am pondering having a jenkins slave for each crucial series+arch, and using the instance as a dedicated builder and running of local-provider tests [03:18] sounds reasonable [03:25] sinzui: yay, that run worked [03:25] i'll try another with your changed script active [03:26] excellent, now we get to see if I can hack a bash script without syntax highlighting [03:28] wallyworld: it says #18 passed, but in the logs the replicaset package's tests failed [03:28] oops [03:28] wrong tab :) [03:28] phew [03:28] wallyworld: why did the PR not get updated? [03:29] it should have i think, not sure [03:44] * thumper grumbles [03:51] * thumper makes unpleasent noises [03:51] I've worked out why this test is failing [03:52] it is because JujuConnSuite bootstraps the environment for you [03:52] and I've changed the base test suite for this test [03:52] to something much simpler, [03:52] hence, broken test [03:52] now how to just write out some jenv stuff... [03:53] wallyworld: I was waiting for a LGTM, then I would do $$merge$$ - that's still the protocol right? [03:53] axw: yeah, i'm experimenting trying to get the bot to pick it up [03:53] the current core will be blown away and replaced with the trunk snapshot [03:53] ok [03:53] axw, wallyworld: will we use codereview at all anymore? [03:54] waigani: no [03:54] nope :-D [03:54] and good riddence [03:54] big changes, okay [03:54] wallyworld: the lander didn't pick up the $$merge$$ on your other PR? [03:55] axw: nope :-( [03:55] there's something wrong clearly [03:55] man git is spamming my inbox! [03:55] there's a cron job, but i also ran it by hand [03:55] wallyworld: are you running it on your machine now? [03:55] mk [03:55] axw: nope, i've sshed into jenkins [03:59] wallyworld: your membership in the juju org needs to be made public [03:59] ok, i didn't realise it wasn't [04:01] ah, that has fixed it === lazypower-travel is now known as lazyPower [04:01] wallyworld: I'll reply to the list about that [04:01] axw: that's a good pickup because a bunch of others are also private [04:01] yup [04:08] axw: 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 over [04:09] wallyworld: yeah doesn't seem too terrible for a first cut [04:09] axw: the thing now is the extra occurrences of these fraking timeout errors etc which break the tests [04:10] yep... :/ [04:10] just got one now in the current run [04:10] i could have sworn that it's worse on ec2 [04:13] wallyworld: I wonder if pre-warming the disk would be of benefit [04:13] * axw looks into what we can do there [04:13] axw: yeah, i was wondering that also [04:18] nailed it! [04:22] coffee time [04:29] WTF... [04:29] lbox still trying to work out the diff [04:29] * thumper goes to make the coffee [04:30] wallyworld: one option is to try using the ephemeral storage, in /mnt [04:31] wallyworld: I think that should be considerably faster [04:31] and we don't need the persistence... [04:31] omg, that grew a bit... https://code.launchpad.net/~thumper/juju-core/user-display-name/+merge/221823 [04:31] axw: can't hurt, looks like the current job will pass second time through. can you tweak the script to use/mnt? [04:31] wallyworld: even just putting TMPDIR in there [04:31] wallyworld: I'll give it a shot [04:32] ok, ta [04:32] TMPDIR sounds sensible also [04:32] menn0: https://codereview.appspot.com/102970043 - it grew more than expected [04:32] * thumper -> coffee [04:33] thumper: looking [04:53] menn0: I suggest that you, me and waigani chat tomorrow about it [04:53] as there are a number of things I want to talk through [04:53] * thumper heads out to local code craft meeting [04:54] thumper: ok. I'm almost done though and I think I understand most of the things you're going to talk about [04:54] :) [04:56] thumper: thanks for cleaning up some of my --password changes. Much better. [05:09] axw: that last one took all 3 attempts to merge. different error each time. the watcher / session closed issue seems to be more prevalent of late [05:11] wallyworld: I put in the $TMPDIR change, hopefully that makes a difference [05:12] axw: i'll trigger another merge and we'll see how it goes [05:12] ok [05:14] axw: is it work setting up a dir in /mnt and setting GOPATH to that? [05:14] worth [05:14] before i do another run [05:15] wallyworld: I don't think so, that's just for building the code [05:15] it might make building the code a bit quicker, I guess, but I don't think it's a bottleneck by a long shot === vladk|offline is now known as vladk [05:19] ok [05:24] wallyworld: https://github.com/juju/core/pull/4 [05:26] axw: looks like it's off and running [05:26] goodo [05:26] wallyworld: we should probably run that script before tests too [05:26] yeah [05:27] i think i mentioned that to martin but we never wrote it down [05:27] I'll add it in the job now [05:28] ok, ta === vladk is now known as vladk|offline [06:07] axw: a random thought - would running the tests with say "-p 4" help, since that may cut down on the thrashing of resources etc [06:08] wallyworld: umm, I think it's going to be 2 as it is [06:08] it's running on a dual core isn't it? [06:08] -p defaults to #CPU [06:08] not sure, i had thought it was higher [06:08] you may be right [06:08] wallyworld: I'll check, but I don't think it's higher than 4 [06:09] if it is 4, then may -p 2 [06:09] wallyworld: it has 4 [06:09] yeah, m1.xlarge [06:10] wallyworld: doesn't hurt to try [06:10] the latest run failed twice [06:10] yeah :/ [07:03] axw: sigh. latest builds not happy [07:03] go tool: no such tool "vet"; to install: [07:03] go get code.google.com/p/go.tools/cmd/vet [07:04] i have to head to soccer, are you able to have a look and i'll check later? [07:09] wallyworld: sorry, will fix [07:56] so... one hour to github D Day... how's it looking? [08:13] morning all [08:22] voidspace: morning [08:22] TheMue: o/ [08:44] wow, it took me 3 hours to actually get a bootable USB stick that works…. so hard, why is it so hard... [08:45] jam: I've always found it difficult too [08:45] jam: and I think in the end I discovered I could only make it work with *one* of my USB sticks [08:45] voidspace: yeah, there are 4 different master partition table types, and various flags that have to be set, and .... [08:45] and tools that you try to use that just blow up unless everything is already set up correctly [08:46] voidspace: 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] now *maybe* msdos formatting from gparted would have also worked (maybe) [08:47] heh, ouch [08:47] I tried a lot of other permutations in there [08:47] but it seems like a streamlined "here is an ISO, and do what you want to this stick to make it boot" [08:48] would be such a better experience [08:48] jam: dd usually works, no ? [08:49] I always used to use unetbootin on the Mac - it didn't work for me on Ubuntu last time I tried it [08:49] lifeless: morning [08:49] lifeless: so the Mac instructions have you convert the ISO into a DMG and then dd it, which worked once [08:49] but I accidentally used the 64 bit version for an old machine [08:49] so I had to fix it for 32 bit [08:49] and … yeah, a lot of stuff didn't work [08:49] I think the key was finding a way to get MSDos compatibility enough [08:51] lifeless: dd doesn't set the bootable or partition table, does it? [08:51] jam: it includes a partition table [08:51] jam: dd of=/deb/sdb [08:56] lifeless: 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 .iso [08:56] axw: ping [08:56] it wasn't in any of the recommended guides [08:56] all that just to run shred sanely on all my old hard drives before getting rid of old equipment [08:57] voidspace: pong [08:57] I'll try that once the shredding is done :) [08:59] lifeless: good to see you around, btw, haven't said hi in a while [08:59] jam: hi :) [08:59] jam: did you consider netbooting ? [09:00] jam: e.g. with maas and run shred from there? [09:01] or even perhaps maas should have a decommission-hardware facility, to make removing old content easy [09:05] lifeless: 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 Hardy [09:06] and I think the other machine is/was running Fedora Core *3* [09:06] axw: so we made a change to Initiate yesterday on the suspicion that the CI machine was just slow [09:06] axw: this is the bootstrap problem on precise amd64 [09:06] voidspace: I saw [09:06] axw: it did not fix the issue - but it made the problem a bit clearer [09:07] oh? [09:07] lifeless: 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] axw: immediately after calling replSetInitiate we poll until CurrentStatus returns successfully [09:07] axw: on the failing machine that fails immediately (and persistently) with a "Closed explicitly" error [09:07] axw: that specific error seems to come from the mgo library when socket.Close() is called [09:08] yep [09:08] axw: 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 condition [09:08] on the other machines it comes back saying "it'll be ready soon" or something? [09:08] axw: yep [09:08] I thought that we just weren't waiting long enough before giving up on this machine [09:09] but that appears not to be the case [09:09] axw: I do have one question [09:09] inside replicaset/replicaset.Initiate [09:09] jam: wow, sounds like there was quite some turnover? [09:10] we call monotonicSession.SetMode(mgo.Monotonic, true) [09:10] lifeless: well, this is just Juju, there are still people at Canonical that predate me. [09:10] plus, I'm like #70 or so [09:10] so not a huge gap in front, and 600 people now at Canonical [09:10] so, I was in top 10% to start [09:10] axw: session.SetMode - the second parameter is for "refresh", which if true calls session.unsetSocket() [09:11] axw: do you know why it does this? [09:11] voidspace: I think the refresh is to ensure restarting of the consistency guarantee [09:11] I don't know any more than that [09:12] voidspace: rogpeppe or natefinch may know more about it [09:12] jam: sure, I was meaning in the juju context [09:12] axw: as far as I could tell this *doesn't* close the socket - although it does set a couple of sockets to nil [09:12] axw: but there's no finalizer that I could find [09:12] jam: like, I'd have thougt kapil or mramm joined juju before you [09:12] * axw looks [09:12] lifeless: I mean joined Canonical, where I predate mramm, but maybe not kapil [09:13] axw: and it calls socket.Unlock() - which I think comes from the fact that mgo.socket embeds sync.Mutex [09:13] he doesn't directly report on the same chain [09:13] axw: which also wouldn't call Close [09:13] for Juju proper, lots of people still working on the project longer than me [09:13] fwereade, mramm, rogpeppe, etc. [09:13] voidspace: unsetSocket does a socket.Release [09:13] lifeless: jam: mramm is relatively new - I predate him [09:14] voidspace: yeah, he's only about 2 years or so [09:14] but he's been working as part of Juju longer than me [09:14] axw: right, which does an Unlock() followed by a LogoutAll() [09:15] axw: none of which *seems* to call Close() [09:15] I guess that isn't it - it was just suspicious [09:16] axw: and I wondered if we *needed* that refresh [09:16] voidspace: hmm yeah, I think it just puts it back into a pool to be reused. [09:16] voidspace: that I do not know [09:17] axw: something is closing the socket the session is using - causing all further operations to fail [09:17] axw: but only on the CI build machine... [09:18] axw: I think this morning is the deadline though, we can't leave trunk broken any longer [09:18] even if it's just on one machine... [09:18] so 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:19] voidspace: bugger :( [09:19] not having direct access to the machine to try things on doesn't help [09:20] coffee [09:20] voidspace: it's the closing of the "Server" object that closes all the sockets [09:35] wow, 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:37] jam: doing some map-reduce ? [09:37] jam: oh shred ;) [09:37] lifeless: shredding old disks before giving them away [09:38] well, gnight :) [09:38] lifeless: gnight [09:50] github.com/ju/ju/core [09:52] stub: hah, nice [09:52] we should do that [10:04] natefinch: morning [10:04] voidspace: morning [10:05] fwereade: quick poke about CodeNotFound vs CodeUnauthorized here. If you pass an environ we don't recognize, what code should we get? [10:05] We are still getting the error during Login, because of how round trips work, so Unauthed is somewhat reasonable [10:27] good morning [10:32] rogpeppe: jam: natefinch: you guys ok with githib.com/juju/juju-core ? seems to be the least hated option [10:32] wallyworld: omg, wtf,,, how could you say such a thing [10:32] wallyworld: I'm pretty easy going here. [10:32] me too [10:32] just trying to get consensus, whatever that means [10:33] I'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 long [10:33] yeah [10:33] that was my thought of why it should just be juju [10:33] if you "apt-get install juju" you get juju-core [10:33] so github.com/juju/juju then? [10:33] I 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:34] yeah, it's the same stuttering, just with some garbage in the middle [10:34] i thought core because it distinguishes from logging testting etc [10:34] wallyworld: github.com/juju/juju is my #1, with github.com/juju/juju-core being #2, I guess [10:34] fair point, though I'd rather prefer we had libjuju and juju the cmdline tool :) [10:34] for the record, I still don't know what the juju-core/juju package is for, maybe we just need to rename that [10:34] or rename juju the team to juju-team :-) [10:35] github/juju-team/juju [10:35] +1 to renaming juju-core/juju [10:35] wallyworld: 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 repo [10:35] s/package/repo/ [10:36] yeah, i haven't thought about that one, since i didn't set it up [10:36] natefinch: it is the entry point, AIUI, so juju/api.go etc. "juju.NewAPIClientFromName()" [10:36] natefinch: arguably we could have that at the top level [10:37] github.com/juju/juju.NewAPIClient() [10:37] jam: 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 that [10:38] natefinch: IMO that is a clear use case for having 2 separate things, a 'libjuju' and a 'juju command line client" [10:38] that makes sense [10:39] perrito666: morning [10:39] what do other github team based projects do? [10:39] is team name normally = product name? [10:39] often times, yes [10:40] so i guess we should go with github/juju/juju [10:40] can we all live with that? [10:41] the only other person I heard respond was axw, who said he moderately preferred /juju/juju, I think [10:42] I prefer juju/juju [10:42] fwiw :-) [10:42] ok, the people have spoken :-) [10:42] Actually, rogpeppe responded, but sort of vaguely [10:42] i'm not that keen on juju/juju actually [10:43] because then we have a package github.com/juju/juju/juju [10:43] which seems like overkill [10:43] i actually think that core isn't too bad [10:43] but i'd be happy with juju/juju-core too [10:43] rogpeppe: we can just rename that package [10:44] as it distinguishes the genuinely juju-specific parts of github.com/juju [10:44] because actually most packages under github.com/juju are *not* juju specific [10:44] so having a juju- prefix to the name makes sense [10:44] that's why I like calling this repo juju :) [10:44] natefinch: yeah, but see above :-) [10:45] jujujujujuju [10:45] natefinch: my absolutely last ditch attempt to fix locl-deploy-precise-amd64 [10:45] natefinch: https://code.launchpad.net/~mfoord/juju-core/refresh-session/+merge/221857 [10:45] see above.... we should rename that package anyway [10:46] natefinch: just running all tests here to check it doesn't break anything [10:46] natefinch: should I propose it/ [10:46] ? [10:46] natefinch: 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 code [10:47] natefinch: i still think that's a reasonable intent [10:47] yay for bike-sheds [10:48] rogpeppe: rename it to libjuju, since juju is the command line client [10:48] natefinch: 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-core [10:48] natefinch: libjuju? [10:48] vladk|offline, standup? [10:50] rogpeppe: maybe github/juju-team is better? [10:50] natefinch: probably [10:50] natefinch: but github/juju is fine too [10:50] natefinch: and github/juju/juju-core works pretty well, i think. [10:50] natefinch: and leaves the path open for other juju- packages [10:52] rogpeppe: 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-foo [10:53] * natefinch wants to make a juju-fu package now [10:55] natefinch: 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] well, 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:57] so do we want juju-core then? [10:58] It sounds like we have 4 votes for /juju and one for juju-core .... so I don't know where that puts us [10:58] i originally was +1 for juju-core if core were not suitabke [10:58] I'd have thought it was fairly clear where it puts us... [10:58] wallyworld: so 2 for juju-core. [10:59] voidspace: I'm actually not trying to make it a popularity contest [10:59] heh [10:59] I have decided we're going to use github.com/juju/justsomedamncode [10:59] lol [10:59] i just wish our team was called juju-team [10:59] it should be justsomedamnedcode [10:59] that would remove a lot of the stuttering [10:59] https://github.com/rails/rails [11:00] team and project name the same is a pretty common convention I would expect [11:00] for things that are actually worked on by outsiders, yes... there's github.com/dotcloud/docker for example [11:01] (for things that are more primarily worked on by the company) [11:37] natefinch: ping [11:51] natefinch: I'm going on lunch [11:51] natefinch: can you take a look at https://codereview.appspot.com/102980043/ [11:52] natefinch: and see if you think it's worth one last try, or if you have a better idea / modifications [11:52] natefinch: or just think it's a bad idea... [12:00] voidspace: 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 traceback [12:16] oh man, I missed the bikeshed [12:17] say guys, I have something to submit, but I am not sure were we stand since today is go to github day [12:18] perrito666: well they haven't said "we are on github now" so I think we're still on launchpad [12:18] jam: as far as we are not in between [12:19] perrito666: until they say stop, we might as well land where we land [12:19] well, until they say go, I guess [12:19] jam: ack [12:19] jam: btw https://codereview.appspot.com/103820044/ if you want to take a look [12:20] perrito666: do we need to concern ourselves about getting 127.0.0.1 or ::1 instead of "localhost" ? [12:20] for the moment I am getting spammed by gh I need to create a few new filters it seems [12:21] perrito666: fortunately, they are "lists" so gmail filters them ok, but yes, every inline comment = new email [12:21] jam: perrito666: there will be 30 minute's notice, so land away till then [12:21] a few prereq things are being finalised [12:22] jam: you mean why I actually look for localhost in the test? [12:23] perrito666: if strings.HasPrefix(addr, "localhost:") { [12:23] 127.0.0.1 is *also* localhost [12:23] as is ::1 [12:23] as is the actual public IP of the local machine [12:25] pre-forward notice, bzr landings will be stopping today [12:25] be aware if you have a branch currently up for review [12:29] jam: well we are trying to force it to go trough localhost, if the list already has 123.0.0.1 we should do no harm [12:30] perrito666: well, 127 is pretty specific (vs 123 :) [12:30] jam: oh [12:30] mgz: 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 resolution [12:31] well, actually, just change go-bot to run "&& false" [12:31] mgz: then the MP's get rejected [12:31] echo "no longer merging on launchpad [12:31] jam, I think I just take the lock when ready [12:31] " && falsee [12:31] mgz: well, I mean someone submits, have them get the "not here" feedback [12:31] so leave tarmac running, just have it running and rejecting all requests. [13:09] natefinch: ok, if you can get those instructions I'll try it out [13:13] looking [13:13] morning all [13:13] bodie_: hi [13:32] natefinch: any luck? [13:32] natefinch: we could land it - it if it doesn't fix the problem we'll be reverting the lot anyway [13:33] natefinch, ping [13:34] fwereade: https://codereview.appspot.com/103770044/ [13:35] mgz: is it ok to start working on the git project, or do we need to wait until the migration is done? [13:36] natefinch, cloudbase call [13:44] frankban: you need to wait [13:44] but please feel free to try out the test repo [13:45] mgz: are changes to launchpad.net/juju-core frozen? [13:45] you'll just need to patch any changes you want to keep onto the new one when it's out [13:45] mgz: did you pull the trigger on disabling lp? [13:45] just about to [13:46] mgz: good luck [13:47] test git landing disabled [13:49] wwitzel3, might not get to that for a bit today [13:49] jam: 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 problem [13:49] fwereade: sure, np :) [13:50] wwitzel3, encourage cmars to take a look now; wallyworld or I will surely take a look tonight/tomorrow though [13:51] * cmars takes a look [13:51] * wallyworld will look tomorrow [13:52] alexisb: crap, sorry, I thought that was Wednesday... got pulled away from my desk for a while [13:53] fwereade: I am moving it to GH anyway, so will ping people with the new review, thanks [13:53] natefinch, no worries [13:53] we are still on [13:53] alexisb: jumping on [13:55] hi gsamfira and alexpilotti [13:55] kadams54, hi [13:55] 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 strings [13:55] however, bson is grumpy because it doesn't know that the keys will be strings, it sees interface{}s [13:55] alexisb: hi! [13:56] o/ [13:57] I'm thinking the right answer is to recurse on a type switch and then serialize leaves to bson [13:57] but not totally sure and want to get some confirmation [13:57] 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 nice [13:58] I deserialized into the datastructure using goyaml and I think that might be the issue [13:58] natefinch: perrito666: wwitzel3: I assume we're delaying standup until natefinch is free [13:59] voidspace: ok by me [13:59] hi trobert2 [13:59] voidspace: free now [13:59] cool [13:59] trobert2, if you have specific questions regarding unit tests this would be a good place to ask them [14:00] I am sure that natefinch and team would be willing get you pointed in the right direction [14:10] how 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 useful [14:11] wwitzel3: create a merge proposal on launchpad and download the diff :-) [14:11] voidspace: hah, good point [14:13] ug, stupid hangouts crashed, brb [14:15] voidspace: wwitzel3: bzr diff -r ancestor:trunk [14:15] or bzr diff -r submit: if you have that configured [14:15] starting the bzr import [14:15] cd ../trunk [14:15] bzr merge —preview $MYBRANCH; is the contents of the launchpad MP [14:15] wwitzel3: my email should have included a working command [14:16] ..at least for the pople who use my way, I forgot to mention that cobzr people need to work out how to address trunk themselves [14:21] ok. thank you very much guys :) [14:22] mgz: yeah, downloading the diff from lp worked out well enough :) [14:23] mgz: also, I hadn't seen your email yet. It would of also solved it for me. [14:26] jenkins job cloned and updated [14:27] mgz, I will be a few minutes late to our 1x1, will ping you when I am back at the keyboard [14:27] I'm so tempted to make the github description `juju is` [14:29] alexisb: no problem [14:29] first revs pushed, everyone please still wait before poking [14:30] I'll send an all clear when I'm done [14:30] so I should stop my automated poking script? [14:30] * wwitzel3 kicks the dirt [14:30] :D [14:31] * bodie_ pokes wwitzel3 === marrusl_ is now known as marrusl [14:38] wwitzel3: if you need a hand with what you are doing poke me, I might be of help there [14:42] import changes thus far, a little oddness, some files have been resurrected, including some testing charm bits: http://paste.ubuntu.com/7580793 [14:44] mgz: nice work [14:45] mgz: 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] yeah, just some import oddness I presume [14:45] seems limited from eyeballing that [14:47] we're gonna have to update the readme === vladk|offline is now known as vladk [14:47] yeah, I have various modifications to land befre this is live [14:47] cool [14:47] * natefinch will stop bugging the person actually getting the work done. [14:48] Hey guys, I have a question: anyone know how to expand a short path? ex: "C:\\Users\\ADMINI~1" to "C:\\Users\\Administrator\\" [14:49] trobert2: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364980(v=vs.85).aspx [14:50] trobert2: which it looks like is in windows' syscall library === rogpeppe1 is now known as rogpeppe [14:52] trobert2: do you know about running godoc locally so you can see the windows version of the syscall package? [14:56] no, I do not [14:57] I`ll give syscall.toLong a try. Thanks for the response [14:58] trobert2: 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] since it is OS specific) [14:59] trobert2: it should be syscall.GetLongPathName ... toLong is a private function that you won't be able to reference (note the lowercase first letter) [15:00] trobert2: but you can use toLong as a guide for how to call GetLongPathName [15:01] trobert2: it's probably good to just copy toLong entirely to your own package [15:04] natefinch: thank you. Having the docs locally will be quite helpful === vladk is now known as vladk|offline [15:05] trobert2: 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] seriously? [15:05] I appear to have screwd the repo already somehow [15:05] lol [15:06] just rebase [15:06] ;) [15:06] mgz: you are a fast kid [15:06] that's the git way, right? [15:06] as in, I have a corrupt pack [15:23] github trunk should be ready for forking [15:24] doing test merge [15:24] I'll send a note to the list when things are actually confirmed usable, but the adventurous can start experimenting now [15:26] ...I've confused github about who's the bot and who is me [15:28] mgz :) [15:28] mgz, do you bleed? [15:28] maybe I should have used a mailinator account [15:28] oh, hay, I don't think I closed the bugs, or...I forgot to be the juju-qa-bot [15:29] everyone: can I have a review? github.com/juju/juju/pull/1 [15:32] sinzui: have you got an alt caonical email address I can use for the bot? [15:32] I want to reclaim mine for my github account [15:32] hmm [15:33] something like jujubot@ubuntu.com would be grand, but that means talking to IS... [15:33] sod it [15:33] mgz, I don't, but the bots abentley created alway have + in the user [15:33] cunning [15:33] mgz https://launchpad.net/~juju-qa-bot [15:34] bugger, I did forget to be the bot. sorry jam [15:35] * sinzui updated the release log to ensure the bot credentials are passed [15:36] perrito666: can you review my branch plz? [15:38] mgz, 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 ready [15:38] nope [15:38] I wasn't planning on it [15:38] I left the bzr bits up for 1.18 for now [15:39] mgz, oh, that is right, 1.18 doesn't to to github. 1.20 will be the first stable in github [15:39] keeping it like that would make backports more annoying, but importing multiple branches with fastimport is kinda borked [15:40] mgz, fast export to fast import? Does that preserve tags? [15:40] mgz: diff says much more than your merge proposal comment :p [15:40] I guess not [15:44] mgz: reviewed [15:45] mgz: 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 revs [15:45] mgz: if we don't have the release tags, can you make sure to get them put in manually? [15:46] I feel it is important to keep them [15:46] +1. I was going to add them once mgz frees his identity from the bot [15:47] jam, hm, urk, the instructions I was following stripped varioius things [15:47] but retagging should be fine, right? [15:47] mgz: stripping revs makes me pretty sad [15:48] the revs should all be there, plus or minus weirdness, of which there was some [15:48] mgz: as long as you can match the contents, we can do new tags [15:48] but I didn't generate a marks file or anything [15:48] I don't really want to have "the mainline commit that sort of looks something like 1.18.1" [15:48] I really want us to have the "tree that was released as 1.18.1" [15:48] jam1: I don't see a way around it for old minor versions, [15:48] mgz: create them [15:48] perrito666, do you have a minute to review https://codereview.appspot.com/93710043 [15:49] mgz: these are actually precious artifacts, we *can* go back to the bzr codebase, but that gets pretty clumsy [15:50] mgz: but really, why would we chose a lossy conversion? [15:50] jam1, 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 branches [15:50] * jam1 goes off for a while === noodles785 is now known as noodles775 [15:51] * perrito666 isnot sure if lgtm sinzui 's version number changes after seeing how they break builds :p [15:52] sinzui: done [15:52] perrito666, good point. 1.18 doesn't have a "var switchOverVersion = MustParse("1.19.9")" [15:53] perrito666, ^ that number was set to 1.19.3 in devel, telling juju to reject 1.19.4 as a devel lrease [15:53] yeah, I thought that as long as we dont get near 1.19 its all fine :) [15:53] mgz: jujubot has your face as avatar that is mildly disturbing [15:53] perrito666: it is. [15:54] I am trying to fix that by getting a new account from IS [15:56] there is certain dr who sense in the fact that our bot is a british man with a canonical logo for a face [15:57] haha [15:58] yeah, the flat colour looks like the logo from the 4th Doctor era [15:58] github.com/juju/juju builds for me after running godeps -u dependencies.tsv [15:58] nice work everyone [16:00] evil time coming [16:00] ...actually, I won't be evil. [16:01] anyone opposed to making the readme markdown? [16:01] natefinch: not at all [16:01] wow, 20:54 minutes to scp a juju tarball to the CI machine [16:01] natefinch: see the pending merge proposal [16:02] mgz: you mean the pull request? ;) [16:02] watevar [16:02] :D [16:03] voidspace: welcome to southamerica (?) [16:03] perrito666: hehe [16:03] perrito666: or rural England [16:04] natefinch: sinzui: so logged into CI machine as jenkins and running the juju that CI did, a local bootstrap fails [16:04] natefinch: sinzui: a local build that I scp'd up (as ubuntu user) succeeds [16:04] hmm [16:04] natefinch: sinzui: that one refreshes the session before asking for status [16:04] sinzui: that's with changes [16:04] oooh [16:05] voidspace, very intersting [16:05] sinzui: natefinch: that Refresh is to avoid the "Closed explicitly" problem [16:05] I hope that means it's fixed, not just that where it's built matters [16:05] natefinch: well, yes [16:05] sinzui: natefinch: so current hypothesis is that this "fix" is worth landing and trying [16:05] voidspace, We know that jenkins strips the env of personal var that we often assume to be there [16:06] voidspace, oh, I misunderstood, please land. [16:06] sinzui: 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 want [16:06] so one way or another it will be the end of it [16:06] (well, of this particular problem) [16:06] voidspace, 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 back [16:07] right [16:07] ok, so now all I need to do is work out how to land a branch in the new wild and wonderful world of git [16:07] haha [16:07] which can mean only one thing [16:07] it's time for more coffee [16:08] voidspace: http://blog.natefinch.com/2014/03/go-and-github.html [16:08] (and anyone else) [16:10] natefinch: thank you [16:10] natefinch: great tip, thanks! [16:10] although we should all use the doc on the repo, so we have better chances of finding errors [16:11] Anyone 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 exist [16:13] sinzui: no idea.... obviously, it should be there [16:13] gah, I'm an idiot, I should have been evil [16:13] hahaha [16:14] is it too late? [16:14] well, I can half-way it [16:22] rick_h_, jcsackett I am still getting jcsackett's vacation requests [16:24] sinzui: ack, thanks. rick_h_ is on vacation, i'll see about sorting that. perhaps an RT to the directory. [16:24] it lists me as reporting to you still as well. [16:24] stupid monkeys [16:26] sinzui: lp:~gz/juju-release-tools/fix_juju_github_path [16:27] * sinzui pulls [16:28] mm, bzr diff between two branches using --old and --new yields... a lot [16:28] mgz, merged [16:29] pulled on the bot, thanks [16:29] mgz, can I install it on the master and slave now. I cannot think os a reason why not [16:29] hopefully that's the last of the fallout from the name change [16:30] sinzui: please do, I did master as I need that for a clean run [16:30] We still need to tell CI to poll the git branch for changes [16:30] I do that [16:30] it's in the ubuntu user's crontab, which is I'm not sure how you want it [16:31] I also need to write all the pokings I did on the jenkins machine in your doc [16:31] or you mean for the other jobs? [16:35] mgz, 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 complete [16:36] sinzui: I was off IRC for a bit. Missing context. [16:36] mgz, The publish step is too brittle now that it it builds a lot and publishes even more. Lots of network failure opportunities [16:37] jam, fwereade: either of you around? [16:37] abentley, juju core is on git hub. We want to replace lp:juju-core with "gitbranch:master:github.com/juju/juju" I think [16:37] * sinzui typed that from memory [16:37] sinzui: Yes, I agree. [16:40] sinzui: 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-trusty [16:40] okay, all done but the waiting [16:40] actually, checklist [16:40] abentley, +1 [16:41] abentley, mgz, it would be nice to pick a known good revision, but trunk has been broken for 9 days [16:42] switching version control providers while the tests were passing would have been too boring [16:43] :) [16:43] natefinch, the brittle publish step always adds a risk to every test [16:44] that just makes it more exciting [16:44] abentley, do you have a few minutes to discuss a revised process to run unit tests, build, and publish [16:44] sinzui: sure thing. [16:45] abentley, https://plus.google.com/hangouts/_/calendar/Y3VydGlzQGNhbm9uaWNhbC5jb20.lmdv7d975raqphi9pf38tm7juo?authuser=1 [16:47] sinzui: I am in the hangout, but I don't see you. [16:47] oh so am i [16:54] mgz: natefinch do any of you know where "check" is? [16:54] perrito666: "check" ? [16:55] rogpeppe: in the goint go git docs there is a reference to [16:55] ln -s ../../check .git/hooks/pre-push [16:55] perrito666: it got moved, the new contributing has the updated location [16:55] mgz: did that got merged? [16:55] perrito666: it's probably renamed from lbox.check [16:58] perrito666: it's being chewed on [16:58] * perrito666 does coffee to ease the wait [16:58] we have issues with tests witch -p > 1 === vladk|offline is now known as vladk [17:09] mgz: I have a branch with a 1 line change in it [17:09] mgz: bzr diff -rancestor:co:trunk > ~/initiate-refresh.patch [17:09] mgz: produces a 27k patch file [17:09] mgz: my bazaar branch has trunk merged into it, so it's up to date [17:10] odd [17:10] voidspace: bzr diff between your commit and the previous one [17:10] that's what I thought :-) [17:10] I had to do that [17:10] perrito666: ok [17:10] bzr diff between my branch and trunk produced a very verbose thing [17:11] I might have the spelling wrong, what did jam say earlier... [17:11] (worked for the branches I tested though...) [17:12] hm, jam said the same === vladk is now known as vladk|offline [17:14] mgz: the same? [17:14] merge -r ancestor:trunk [17:15] picking the specific revision worked fine [17:22] sooo, I created a branch added-committed-pushed (origin master) [17:22] I can't see my branch on github though [17:22] https://github.com/voidspace/juju/branches [17:23] hmmm... although: https://github.com/voidspace/juju/tree/initiate-refresh [17:23] but "This branch is 0 commits ahead and 0 commits behind master" [17:24] Hello [17:24] I 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 hook [17:24] sinzui: can you keep an eye on github-merge-juju? we're still not having miuch joy with these tests [17:24] someone know how to handle with this? [17:25] marcoceppi: ^^ [17:25] mgz I wish [17:25] mhgz, I will [17:25] ah, I pushed to the wrong branch it seems [17:25] Egoist: is it configuring in the background? [17:26] Egoist: how is it not finished configuring? [17:26] natefinch: https://github.com/juju/juju/pull/3 [17:26] voidspace: looking [17:27] haha contributing still mentions cobzr [17:27] yeah, I just saw that [17:27] natefinch: https://github.com/bz2/core/blob/contributing_updates/CONTRIBUTING [17:27] slightly newer [17:27] the repo names have been updated though [17:28] so, so, juju/juju or juju/core, I am not sure what did we settle with [17:28] juju/juju is where stuff it [17:28] \o. [17:28] s/is/it/ [17:28] \o/* [17:28] juju/juju makes much more sense, think of those who clone something, suddenly what is marcoceppi/core ? [17:28] exactly what I said [17:29] the 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 pyjuju [17:29] natefinch: we're going to be moving juju/docs to juju/juju-docs soon as well [17:29] marcoceppi: that's good. It's good to have the repo names able to stand on their own [17:30] YES! got my funky nested map[interface{}]'s coerced properly [17:30] if this doesn't fix the bson marshaling issue around that, i'll be a monkey's uncle [17:30] mgz, 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:31] bodie_: awesome [17:32] oh, I missed perrito666 [17:32] 's link [17:32] natefinch, sorry. I don't know that yet [17:33] Sounds like informal, which is fine. It was effectively the same thing before. [17:33] natefinch: that has been approved for landing [17:33] natefinch: [17:33] After a proposal has recieved an LGTM, the landing must be notified to test and merge [17:33] the code into master. This is done by a member of the juju project adding the magic [17:33] string $$merge$$ in a comment. [17:33] but mgz-faced bot is not being able to merge it [17:34] natefinch: cool, I have to EOD [17:34] natefinch: hopefully this lands and hopefully it fixes the build :-) [17:34] voidspace: np. Good work on that. [17:34] if not, tomorrow is the big revert day :-( [17:34] heh [17:34] we'll see [17:34] g'night [17:34] I'm optimistic [17:34] see ya [17:35] mm, reverting something merged with bzr in git, that should be somehow fun [17:36] I think the commits are all there, so it's just a matter of pretending they were always in git. [17:37] natefinch: nice [17:40] g'night all [17:41] rogpeppe: o/ [17:48] I'm getting thrown off by state/conn_test.go line 74 AddTestingCharm [17:49] it's in the state package, yet it calls state.AddTestingCharm with additional arguments [17:49] the only other AddTestingCharm definition I see is in juju/testing/conn.go [17:49] and its arity doesn't match, either [17:50] does anyone know where to track that down? I must not be grepping just right [17:50] er, it's in the state_test package [17:51] that's the thing [17:51] state_test is a different package [17:51] so in order to call AddTestingCharm, it has to qualify it by the package name [17:51] here we go [17:51] found it [17:51] yeah, I think I got thrown off since I somehow forgot I was in the testing package :) [17:51] s/testing/state_test [17:53] yeah, it can be a little confusing, especially since that's the only time you can be in the same directory, but a different package [18:01] man, I wish env would sort alphabetically [18:37] mgz: why do we tell people to do go get -v? [18:37] ouch, I forgot a dentist appointment [18:37] oops [18:38] * perrito666 runs [18:38] Ill ba back later most likely [18:38] I also got my git juju working, altough I am not sure what is the new name for check [18:39] perrito666: I'll see if I can figure it out [18:39] well, contributing/readme patch just landed [18:39] so perhaps docs are fixed [18:39] they look much improved [18:39] * perrito666 maps the dentist office and notices it is perhaps the hardest place to get in driving in the universe... [18:40] doh [18:41] well I better run then, let me know if you find out what the name of check is :) [18:41] cheers guys [18:49] such a beautiful URL https://canonicalhr--fhcm2.eu2.visual.force.com/apex/fHCM2__FairsailProfile [18:55] woho! landed. [18:55] I'll send email a bit later, but consider the git repo live [18:55] yay! [18:55] mgz, Did you add a rule to try -p 1 when the first effort fails? [18:56] I made it just use -p1 twice in the end, it's the only one that seems to reliably work [18:56] and you select xlarge too [18:56] this is very worying [18:57] I think we just use a smaller machine for now as well, it's not like we're getting benefit from extra cores... [18:57] mgz, I am building slaves next week. think about the resources you need. I may be able to provide a dedicated slave for gobot [18:58] mgz, those tests do make a difference to the test suite [18:58] the cores are used [18:58] sinzui: ace, thanks [18:58] sinzui: they would be for -p > 1 much better... [19:05] sinzui: I have tried building the git branch, but so far, breakage: http://juju-ci.vapour.ws:8080/job/build-revision/1436/console [19:13] what's wrong with git clone https://github.com/juju/juju ? [19:15] abentley, sinzui: ^^ [19:16] natefinch: That is too vague. [19:16] natefinch: works for me? [19:16] abentley: eh? [19:17] natefinch: We want a specific tree, not whatever happens to be the tip revision. [19:17] abentley: that'll get the master branch [19:17] or rather, whatever is defined as the default branch, which is currently master [19:17] natefinch: Right. [19:17] natefinch: n/m misunderstood your comment :-) [19:18] which is what gitbranch:master seems to indicate you want? [19:20] natefinch: We don't want something that always grabs master. We want something that grabs what we tell it to grab. [19:24] abentley: ok, sorry, I was just looking at what that code seemd to be doing. Stack Overflow says to do this: [19:24] git init [19:24] git remote add -t $BRANCH -f origin https://github.com/juju/juju [19:24] git checkout $BRANCH [19:26] the 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 do [19:26] git clone https://github.com/juju/juju && git checkout $BRANCH [19:26] (clone gets all branches in the repo) [19:29] this also seems to work: git clone -b $branch https://github.com/juju/juju [19:30] natefinch: Good to know how to avoid retrieving other junk. But we're fine with doing a clone for now. [19:34] I'm not totally following this bit -- $ ln -s ../../scripts/pre-push.bash .git/hooks/pre-push [19:34] where's that assuming your working directory is? [19:34] relative directories are never a good idea in instructions [19:36] bodie_: I have no idea where it expects you'll be when you run that command. [19:36] 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:37] if an email went out with all this info, I don't think I saw it -- did I miss that? [19:37] bodie_: the email is still in the works [19:38] bodie_: 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] 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 clearly [19:39] 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 repos [19:40] sinzui: looks like the packaging is hardcoded for launchpad.net: http://juju-ci.vapour.ws:8080/job/publish-revision/454/console [19:40] abentley, natefinch : the make-release-tarball script does something similar [19:40] sinzui: Yes, that's what I think we were discussing. [19:40] abentley, natefinch : git clone $JUJU_CORE_REPO $WORK/src/$PACKAGE [19:40] if git ls-remote ./ | grep origin/$REVISION; then [19:40] git checkout origin/$REVISION [19:40] else [19:40] git checkout $REVISION [19:40] fi [19:42] bodie_: 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] 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 really [19:43] there are a lot of ways to do it [19:44] 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:47] abentley, I think a step got skipped, The script might be getting the wrong args [19:47] abentley, https://code.launchpad.net/~sinzui/juju-release-tools/make-from-git/+merge/221307 [19:48] make-release-tarball.bash 0ededa1f3e7cd8a50f1c94f6abbb3355735069a6 https://github.com/juju/juju.git would be the expected args [19:49] abentley, I will look into this when I get back from school [19:49] sinzui: I've fixed that issue already. See http://juju-ci.vapour.ws:8080/job/build-revision/1440/console [19:49] 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:51] bodie_: 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:52] 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" school [19:54] 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 master [19:54] then you don't have to worry about what's going into master [19:55] but, most people just like to PR against master, I'm just kinda more process oriented [19:56] if you're not comfortable with git the branching, rebasing, merging stuff can be kinda high drag / breakage prone [19:56] so, I think most people don't like the branch heavy approach [20:01] bodie_: 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 proper [20:01] right, but the question is kind of whether you want people opening PRs against master or, what branch [20:11] bodie_: yeah.... my feeling is that eventually the code makes it into master anyway, and as long as tests and CI pass, go for it [20:13] waigani: ~\0/~ [20:14] I'm trying to decide if that's a guy shrugging, or a guy with really big shoulder pads.... probably neither [20:14] it's not great is it? [20:15] kinda looks like superman flying, head on [20:15] natefinch, lol [20:15] officially it's: waving hello/goodbye [20:16] * natefinch is terrible at these things [20:19] it's doing the sine dance [20:19] :P [20:33] nice ;-] [20:34] I have made jumbalia and am watching irc again if people have migration issues [20:35] mgz: so far so good for me [20:36] is 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] nevermind [20:36] I always get asked, just leave blank and it forwards [20:36] mgz, dude! what time is it for you? [20:36] 21:38 [20:37] mgz is getting sleepy ... ;) [20:37] mgz: I tried that first but I got "wrong username/password" [20:37] omg, I want jambalaya [20:38] mgz: entering the token from my phone worked (even though it was asking for a password not a token, weird) [20:56] alrighty 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 cell === alexisb is now known as alexisb_out [20:56] alexisb: have fun! [21:36] waigani, menn0: morning, care for a hangout to talk through the user display name work? [21:37] thumper: sure, give me 1 min [21:38] menn0, waigani: https://plus.google.com/hangouts/_/g5vgmsdpkfpsgdxsxsw3dbvfpqa?hl=en [21:41] abentley, wallyworld, CI is broken because the source package branch (also under test) looks for launchpad.net/juju-core. the winbuildtest.py script does something similar [21:41] I will fix them though I am a little tired. I wont rush [21:42] sinzui: 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:43] abentley, sorry I have been in meetings. I know how to do the fix. [21:46] sinzui: On a happier note, I have preliminary numbers for published revisions: https://chinstrap.canonical.com/~abentley/published-revisions.png [21:47] lovely. [21:47] thank you abentley [21:48] sinzui: win-client-build-installer also seems to depend on launchpad.net in the path. [21:48] I am fixing that right now [21:53] 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:54] so, I could go into my code and edit it to use my own deps [21:54] but then if I merge that, Juju would be using my code as deps [21:54] is there an established way to deal with this? [21:55] it seems like this is a good argument against using user forks, but there is probably a way [21:55] maybe we could have a script that symlinks github/juju/juju to the user's workspace [21:55] voidspace: http://blog.natefinch.com/2014/03/go-and-github.html [21:55] (and anyone else) [21:55] bodie_: ^^^ [21:55] s/Juju would be using my code/Juju would be using my repositories/ [21:56] I don't think that answers the question, but I'll look again [21:56] okay, so step 4 overwrites the local copy of the repository in-place [21:56] that makes sense :) [21:57] right, so you're using your repo, but at the gopath location for juju/juju [21:58] I don't like that but it works [22:00] there's a couple variations in the comments, but nate's original suggestion makes the most sense to me [22:01] I guess the only alternative would be to symlink the repo to the user's repo [22:01] or, the only one that comes to mind for m [22:01] e [22:02] A 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 there [22:02] but I liked the simpler approach of just cloning your personal repo in the gh:juju/juju gopath location [22:02] (and adding gh:juju/juju as an upstream repo) [22:04] hello again everyone [22:04] if anyone gets a chance (jcw4?) I could use a glance at https://github.com/binary132/juju branch charm-interface-actions [22:04] not quite sure what's going on with my tests [22:05] http://paste.ubuntu.com/7583269/ [22:07] bodie_: looks like you're getting a nil ActionSpec instead of an empty one... [22:07] hm [22:09] (technically its the map[string]charm.ActionSpec that's nil) [22:09] bodie_: where exactly is that test? [22:09] perrito666: state/state_test.go [22:09] perrito666: in bodie_ 's branch [22:10] https://github.com/binary132/juju/blob/charm-interface-actions/state/state_test.go#L2032 [22:16] cmars: sorry for being late, can I put you off a day? [22:16] bodie_: I think just checking for nil unmarshaledActions.ActionSpecs and assigning an empty map if its nil will get you past that error... [22:17] bodie_: I assume we want to always return an empty ActionSpecs if the Charm doesn't declare one? [22:19] bodie_: 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:20] that's possible, yes [22:25] bodie_: my hypothesis is that AddTestingCharm returns a Charm with an empty Actions, but when that same charm is read from mongo the Actions is nil [22:26] bodie_: whether it's the Actions() or the Actions().ActionSpecs that is nil, I'm not sure... I think the latter actually [22:26] hmm [22:29] bodie_: no, AddTestingCharm returns the Charm *from* mongo after adding it [22:30] bodie_: 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 nil [22:31] aghh, my juju computer lacks all my github config [22:32] bodie_: ahhh... no. In your Assert on line 2032, you're putting the expected charm in the obtained spot [22:32] am i? *looks* [22:32] bodie_: so the error message is backwards... [22:33] bodie_: the Assert call expects the obtained result first, and the expected result later in the params list [22:34] bodie_: so.. AddTestingCharm is returning a charm where Actions().ActionSpecs is nil [22:34] I'm not certain about that, based on the previous check in that file [22:35] bodie_: however the subsequent call to state.Charm() is returning a charm where Actions().ActionSpecs is empty [22:36] bodie_: that's what the source for Assert says... gocheck/helpers.go:165 [22:36] okay, well that must be where we're seeing the problem [22:36] wordpress is *supposed* to have an empty Actions [22:37] I was thinking we should return Actions{} rather than Actions{ActionSpecs: Charm.ActionSpec{}} [22:37] okay, I think I understand, thank you [22:39] they're both using newCharm(st, cdoc) [22:40] I suspect that since the Actions struct is empty it's simply omitting it from the document entirely [22:40] whereas after the Insert, it's still just an empty Actions{} [22:43] bodie_: I bet if we add a `yaml:",omitempty` to ActionSpecs it'll work as expected [22:43] bodie_: testing.... [22:45] or maybe a bson [22:45] bodie_: yeah, trying bson but that's just guessing on my part now [22:47] I think perhaps omitempty is the opposite of what we want? [22:47] or... [22:47] bodie_: do we want nil or empty? [22:47] well if we use omitempty I think it will omit the field from the doc [22:47] therefore, when deserialized, will come back nil [22:47] right? [22:48] bodie_: hmm bson:",omitempty" made the test pass... [22:48] bodie_: right [22:48] okay, cool [22:49] I'm still not fully getting the annotations [22:49] what did you do with that? [22:49] e.g. ActionSpecs map[string]ActionSpec `yaml:"actions"bson:",omitempty" [22:52] bodie_: http://paste.ubuntu.com/7583486/ [22:52] bodie_: yeah, pretty close [22:53] ah, I see [22:55] menn0: I think you just merged that branch by saying "$$merge$$" [22:55] menn0: maybe you just need to retry a few times [22:58] now I'm getting this: http://paste.ubuntu.com/7583514/ [23:00] wallyworld: ping? [23:00] bodie_: hmm, do you have any orphaned mongo processes or some other environmental issues? [23:00] thumper: hiya [23:00] I do have my own mongod running in the background -- I checked for that though. maybe I'll have a sweep through /tmp [23:00] coming [23:06] welp, I'm gonna have to set this down for tonight, hopefully a reboot will clear away the stormclouds ;) [23:06] bodie_: o/ [23:08] menn0: ping? [23:19] waigani: pong [23:19] menn0: ah, never mind. Dave turned up for standup. [23:43] * perrito666 makes a pr that is 10 times longer in description that the actual patch