/srv/irclogs.ubuntu.com/2013/02/14/#juju-dev.txt

=== wedgwood is now known as wedgwood_away
jamjtv1: poke about https://code.launchpad.net/~jtv/juju-core/no-go-env/+merge/142280 need help landing it?06:14
jamwallyworld_: I saw you landed your patches (which is great), but noticed you had some troubles with the first one. Is there a process issue or just a misunderstanding?06:15
wallyworld_not sure - tarmac said there was a conflict but i could reproduce locally06:15
wallyworld_couldn't06:16
jamcouldn't ?06:16
wallyworld_i recreated the branch and repushed and it was ok after that06:16
jamwallyworld_: so if I try to merge your first commit, I get a conflict in client/client.go. After your "merge trunk" commit things work successfully.06:18
jamI wonder if the bot/launchpad somehow didn't get your latest update.06:18
jamMaybe you forgot to push after doing the merge?06:19
jambut that doesn't match what is on the MP06:19
wallyworld_could be, that would seem the mostly likely cause. perhaps i am used to lbox submit doing the final push06:19
jamit doesn't show any new commits after you marked it approved06:19
wallyworld_i can't remember exactly what i did06:20
jambut then the MP seems to not show any new commits, I'm guessing the recreating the branch broke the MP06:20
jamas there is no diff, etc.06:20
wallyworld_a bit of ifddling and it came good06:20
wallyworld_i don't think there's anything wrong with tarmac, it must have been my issue06:20
wallyworld_i always got to lbox submit and realise after i get an error that goose doesn't work that way anymore06:21
wallyworld_and then i forget to copy the descriptin to the commit message06:22
wallyworld_i'll get the muscle memeory right one of these days06:22
wallyworld_gotta go pick up my som, back in a bit06:22
jamwallyworld_: so goose was trying to merge your first commit (ian.booth@canonical.com-20130211050134-up8560e45212lnc6) according to tarmac logs06:22
jamwallyworld_: see you later.06:22
wallyworld_sorry that i have to go 1/2 way through, i'm late :-(06:23
jamnp06:23
jamdavecheney: I'm looking to land a patch which removes 'jujuc' and moves the functionality into 'jujud' https://code.launchpad.net/~jameinel/juju-core/only-jujud/+merge/14818106:24
jamI want to make sure it doesn't break upload tools, et al.06:24
jamI think I've covered the bits (and the test suite passes), but you seem to be the one with the most tool-uploading experience.06:25
jamIs there anything you want me to test manually before I submit the change?06:25
wallyworld_jam: back06:57
wallyworld_i think maybe i just didn't have the latest local rev pushed, that would explain the behaviour i think06:58
jamwallyworld_: yeah, tarmac was definitely trying to merge an older revision06:58
jamso either it wasn't pushed to LP, or tarmac wasn't seeing it for some reason.06:58
wallyworld_i'd guess the former06:59
wallyworld_but in my mind i had pushed it06:59
wallyworld_PBKAC06:59
rogpeppefwereade: morning!07:13
rogpeppeTheMue: hiya07:13
fwereaderogpeppe, TheMue, heyhey07:13
fwereaderogpeppe, TheMue: there is a start up at https://codereview.appspot.com/7324049/07:14
fwereaderogpeppe, TheMue: I'm more concerned about implementation sanity than with exactly what I'm implementing07:14
fwereaderogpeppe, TheMue: because... well, you know why. I can change them easily, but if I wait for perfect agreement on everything I'll wait forever07:15
rogpeppefwereade: looking07:16
TheMuerogpeppe, fwereade: Good morning.07:18
TheMuefwereade: *click*07:19
TheMuefwereade: You've got a review.07:33
fwereadeTheMue, tyvm07:34
rogpeppefwereade: reviewed07:40
fwereaderogpeppe, cheers07:43
fwereadeTheMue, the answer to your question is "yes"07:44
fwereaderogpeppe, is there some way to express `Constraints{CpuCores:&123}`?07:46
rogpeppefwereade: only with an extra line07:46
fwereaderogpeppe, so, not in a top-level var for the tests?07:46
rogpeppefwereade: i was just looking at tim's "gap" document. where do we stand on centralised logging support (something i believe pyjuju has)?07:46
rogpeppefwereade: huh?07:47
fwereaderogpeppe, I guess I could do a little `pInt(int) *int` func or something07:47
rogpeppefwereade: Constraints{CpuCores: &t.cpuCores} ?07:47
fwereaderogpeppe, how do I express nil in the tests then?07:47
rogpeppefwereade: ah!07:47
rogpeppefwereade: yeah, i think intp(123) would be better than using interface{}07:48
fwereaderogpeppe, ok, cool07:48
TheMuefwereade: Thx. ;)07:48
rogpeppefwereade: although...07:49
fwereaderogpeppe, re logging I think there's a bug open07:49
fwereaderogpeppe, and, yeah, we need it07:50
TheMueBtw, anyone able to change the topic to the actual state/milestone goals?07:50
rogpeppefwereade: if you moved the parsing code into state, it might work to specify a string instead.07:50
fwereaderogpeppe, that code does feel very cli-specific though07:51
rogpeppefwereade: i'm not sure. i suspect we might use it as a universal serialisation format for constraints07:51
fwereaderogpeppe, hmm, I was expecting just to store documents in state07:52
rogpeppefwereade: i'm thinking of the API07:52
rogpeppefwereade: (also some other tools might want to parse constraint strings too)07:53
rogpeppefwereade: i think people using the GUI should be able to type constraint strings in the same format that we've got on the command line.07:54
rogpeppefwereade: and i'd prefer it if the GUI people didn't have to duplicate our parsing code07:55
fwereaderogpeppe, hm, I'd expect the constraints gui to be a little more graphical/restrictive than that07:55
rogpeppefwereade: hmm, maybe07:56
rogpeppefwereade: anyway, i still think that code would fit very nicely alongside the String code.07:56
fwereaderogpeppe, and it's not very consistent with setting env/service config07:56
rogpeppefwereade: because those are yaml?07:57
fwereaderogpeppe, not in the API they're not07:57
fwereaderogpeppe, also SetgentTools etc07:58
rogpeppefwereade: oh really? we have to translate env and config settings to and from js?07:58
fwereaderogpeppe, the whole API is written with the assumption that we want to use objects rather than identifiers everywhere07:58
rogpeppefwereade: the tools parsing is next to the tools stringer07:58
fwereaderogpeppe, I never really liked it07:58
rogpeppefwereade: i'm not sure how that's relevant here07:59
fwereaderogpeppe, don't we have to translate *everything* to and from js for the gui?08:02
rogpeppefwereade: i guess so. it might make some things awkward though. people can express things in the config yaml that can't make it through a json round trip.08:03
fwereaderogpeppe, remind me, what's allowed that we'll lose?08:04
rogpeppefwereade: (at least, i *think* they might be able to)08:04
fwereaderogpeppe, my fervent hope is that the schemas are tight enough that they can't08:05
fwereaderogpeppe, but a hope is ll it is :/08:05
* rogpeppe goes to look at the config settings code08:06
fwereadejam, wallyworld_: do I need another goose update? openstack's localLiveSuite.TestPorts is failing08:13
fwereadejam, wallyworld_: nope, still failing: http://paste.ubuntu.com/1648509/08:15
rogpeppefwereade: hmm, we parse all config options into string, and silently throw away anything that doesn't fit.08:15
rogpeppefwereade: that will probably work ok with json.08:16
* fwereade raises a single eyebrow with titanic self-control08:16
fwereaderogpeppe, that is surprising to me... both environment and service config?08:16
rogpeppefwereade: just looking at service config there08:17
rogpeppefwereade: i'll have a look at env parsing again08:17
* fwereade wonders why we have types then08:18
rogpeppefwereade: env parsing is up to the provider. as long as providers stick to json-compatible values we'll be ok08:20
jamfwereade: I get "TestPorts(Work in Progress)" meaning it is skipped08:21
jamfwereade: using rev 891 of juju-core08:22
jamin environs/openstack/live_tests.go it has 2 functions, both of which comment out the Port tests.08:22
jamfwereade: now, IIRC mgz accidentally landed a possibly port-related patch yesterday, but found he made a mistake when doing so, so rolled back the commit about 5 min later. It doesn't make a lot of sense that you would have seen it inside that window, but it is possible.08:23
jamfwereade: can you do "bzr log" in your juju-core branch and check?08:23
jamIt should end with an Ian Booth commit08:23
jamfwereade: ok, sorry about that, it looks like 890 was mgz's patch that exposes the global ports tests (and expects them to pass), but then 891 landed by wallyworld_ removes that change08:24
fwereadejam, yeah, but there's only one mgz commit before that08:24
fwereadejam, and I see no skipped ports test in 89108:25
jamfwereade: yeah, something weird here, let me see if I have something wrong08:25
fwereadejam, thanks08:25
rogpeppefwereade: *after* we've parsed service config options into string, we validate them with charm.Config.Validate.08:25
rogpeppefwereade: but tbh i think it's a bit crackful that that validation is done by the command line command, not in the state.08:26
jamfwereade: I had 'bzr revert -r -2' a while back to check if something was a regression. So it looks like 890 does, indeed, enable those tests. I'll run them again to see if they pass here.08:26
fwereaderogpeppe, yeah, there's a hack in config-get saying essentially "remove this when Service.Config is no longer crack"08:26
jamfwereade: it fails here.08:26
jamBlame mgz :) I'll see what I can sort out08:26
jamIt looks like an accumulator is getting the same entry 2 times and not stripping the double08:27
fwereadejam, cheers :)08:27
rogpeppefwereade: this one?08:27
rogpeppe// TODO Remove this once state is fixed to report default values.08:27
fwereaderogpeppe, yeah08:27
rogpeppefwereade: i think that state *does* report default values08:27
rogpeppefwereade: but only because we make sure to put them in in the first place08:28
jamfwereade: as I'm checking this for you, can you test if environs/ec2: go test -live works for you?08:28
fwereaderogpeppe, we should definitely NOT do that08:28
jamIt times out for me after 10 minutes, and 2 modules that take > 5min08:28
rogpeppefwereade: ah, because they might change on upgrade?08:28
fwereaderogpeppe, yeah08:28
rogpeppejam: go test -live needs to be run with a longer timeout08:29
rogpeppejam: it usually takes about 15 minutes for me08:29
jamrogpeppe: how does one do that?08:29
jam(and can -live do it automagically?)08:29
fwereaderogpeppe, did you fix the bootstrap tests crazy teardown bit?08:29
rogpeppejam: this is the script i call "livetest":08:29
rogpeppego test -amazon -test.timeout 2h -gocheck.vv $* >[2=1] | timestamp08:29
rogpeppefwereade: not yet08:30
jamrogpeppe: is timestamp your own tool?08:30
rogpeppejam: yeah, sorry, ignore that bit08:30
rogpeppejam: (though i do find it dead useful)08:30
jamrogpeppe: there is a 'timestamp' provided by the "Internetwork Routing Protocol Attack Suite", but that didn't seem fitting08:30
jamI imagine it logs what time each line came in08:30
rogpeppejam: yeah08:30
jamwhich I've seen elsewhere, but not packaged.08:31
fwereaderogpeppe, trivial: https://codereview.appspot.com/731209908:31
rogpeppejam: go get code.google.com/p/rog-go/cmd/timestamp08:32
rogpeppe:-)08:32
rogpeppefwereade: looking08:32
jamfwereade: it looks like it is a local-ism. Probably Martin was testing against the -live server and it was working, and didn't run the tests again with only the local server.08:33
jamThe local double lets you expose the same port twice08:33
jambut then reports that the port is *open* twice.08:33
jamso we'll need to patch goose for that it looks like.08:34
jamfwereade: I'll put up a patch quickly.08:34
fwereadejam, lovely, thanks08:34
jam(I haven't fully confirmed that, but it seems likely)08:34
fwereadejam, I'd expect -live to run them locally as well for verification's sake08:35
jamfwereade: it does08:35
jamI just tried it08:35
jamand it fails08:35
* fwereade grumbles08:35
jamso I'm not sure how this got through08:36
jammgz should be up soon to ask08:36
rogpeppefwereade: hmm, does this look right to you? i can't remember what unit names we intended to disallow: ^[a-z][a-z0-9]*(-[a-z0-9]*[a-z][a-z0-9]*)*/[0-9]+$08:37
fwereaderogpeppe, I think that's right, yeah08:38
fwereaderogpeppe, service names ending with `-%d` are not allowed08:38
rogpeppefwereade: ah yes, i see now. foggy memories of that regexp resurface :0)08:39
rogpeppefwereade: reviewed08:45
fwereaderogpeppe, I don't think it complains about a string with a / in, it just strips off the "unit-", doesn't it?08:46
rogpeppejam: ha. would help if i actually pushed it08:46
fwereaderogpeppe, subsequent complaints about unknown units are, I think, sane08:46
fwereaderogpeppe, but maybe "invalid unit specifier" should just be "invalid entity name" as above08:48
rogpeppefwereade: if you pass in "unit-foo-bar", you'll see `"foo/bar" is not a valid unit name` but if you pass in "unit-foo", you'll see `invalid unit specifier "foo"`08:48
rogpeppefwereade: they're both invalid unit names08:49
fwereaderogpeppe, ahh, yeah08:49
rogpeppefwereade: so i think they should probably draw the same error08:49
fwereaderogpeppe, reproposed08:53
fwereaderogpeppe, I think it's useful to be clear about the unit name being the problem rather than the entity name08:54
fwereaderogpeppe, maybe that's pointless though08:54
rogpeppefwereade: hmm08:54
rogpeppefwereade: i think it might be pointless actually08:54
rogpeppefwereade: i suspect all "invalid name" errors from that function should look the same08:55
rogpeppefwereade: and should all mention the actual entity name that was typed in08:55
rogpeppefwereade: sorry for pushing back on this pissy trivial issue :)08:56
fwereaderogpeppe, np, I'd prefer to get it right :)08:57
rogpeppefwereade: but i suppose it is something that users will actually see08:57
fwereaderogpeppe, when whatever they're using to log in doesn't handle  the user name right? or more cases?08:58
rogpeppefwereade: hmm. maybe not actually. the user will never type an entity na,e.08:59
fwereaderogpeppe, I am now wondering whether we should be checking validity of machine and user ids as well though09:00
fwereaderogpeppe, what are the username restrictions (if any?)09:01
rogpeppefwereade: i think that's ok because we don't mangle the id going into those functions09:01
fwereaderogpeppe, I think machine-henry is still an invalid entity name09:01
rogpeppefwereade: it is. interestingly State.Machine doesn't check for a valid machine id either.09:03
fwereaderogpeppe, ha, that'd be my fault09:03
rogpeppefwereade: how about having a regexp for valid entity names?09:03
* fwereade has to fix id types but thinks it's less important than constraints :(09:03
fwereaderogpeppe, -1, I think, it's not going to be pretty09:04
rogpeppefwereade: it won't. although it could be built up of existing components09:04
fwereaderogpeppe, the service/unit ones are bad enough as it is :)09:04
rogpeppefwereade: i'd reuse those09:04
rogpeppefwereade: `^(unit-`+unitNameValid+`)|(machine-[0-9]+)| etc`09:05
rogpeppefwereade: but given the user never types an entity name, i think we're going overboard09:05
fwereaderogpeppe, yeah, I'm about to propose with trivial machine id checking as well, and hope we'll never need to touch it gain :)09:06
rogpeppefwereade: let's just leave it where you started, except perhaps pass the invalid name into State.Unit even if it has no slash in it09:07
rogpeppefwereade: that way you'll always get a consistent error.09:07
fwereaderogpeppe, I think invalid is different to not found, and I've already written it :)09:08
rogpeppefwereade: State.Unit returns an error on invalid names already09:08
fwereaderogpeppe, I still think there's something to be said for consistency at the level of this func alone09:09
fwereaderogpeppe, and I don't think it's a heavy cost to pay :)09:09
fwereaderogpeppe, reproposed09:09
rogpeppefwereade: LGTM09:10
fwereaderogpeppe, cheers09:11
fwereaderogpeppe, http://paste.ubuntu.com/1648829/ (doesn't seem consistent, might have seen it once when other stuff was broken but not last time I ran these tests)09:20
rogpeppefwereade: are you using trunk?09:23
fwereaderogpeppe, that was a paranoid re-run of all tests against the fix-auth-entity09:23
rogpeppefwereade: i don't see a similar assert at line 557 and tests pass for me09:23
fwereaderogpeppe, branched from trunk very recently09:24
fwereaderogpeppe, weird09:24
fwereaderogpeppe, wish I hadn't deleted the branch after verifying I couldn't repro09:24
rogpeppefwereade: the ErrShutdown assert is on line 616 in trunk09:24
fwereaderogpeppe, assume I'm on crack then, I'll complain if it happens again09:25
rogpeppefwereade: except it *is* testing for ErrShutdown. it may well be a race. i'll have a closer look at the logic.09:26
rogpeppefwereade: (if it is a race, it's a benign one - it doesn't really matter which of those errors is returned in practice)09:26
fwereaderogpeppe, agreed, I just don't like test failures :)09:26
rogpeppefwereade: me neither. i end up asserting one of two possible errors.09:27
rogpeppes/end/might end/09:27
fwereaderogpeppe, fine by me if it's not simple to make it consistent09:27
jtv1jam: I'm off today but yes, some help landing it would be very much appreciated!09:31
jamrogpeppe: how do you tell if a map is empty?09:36
jamcan you use len(mymap) ?09:36
rogpeppejam: yup09:37
rogpeppejam: (works on nil maps too)09:37
jamrogpeppe: is there an easy way to check if maps are equal? Or do you have to iterate both and look them up in the other one?09:39
rogpeppejam: in a test, i'd use DeepEqual09:42
rogpeppejam: otherwise, yes09:42
jamrogpeppe: in tests that is fine, but in real code?09:42
rogpeppejam: it depends really. DeepEqual is slow and often not what you want (depends on the type of the map values)09:43
jamrogpeppe: I know of DeepEquals from gocheck, where do you get DeepEqual from? (stdlib?, somewhere else?)09:43
rogpeppejam: reflect09:44
rogpeppejam: reflect.DeepEqual(x, y)09:44
jamrogpeppe: thx, this is a map[string]string09:44
rogpeppejam: the other thing about DeepEqual is it's not type safe09:44
jamI just want to see if they are passing something I already have09:44
rogpeppejam: i'd just write the comparison code.09:44
rogpeppejam: it's only 6 lines or so09:45
mariuskoHi, does it exist some system for notification/autentication between charms?10:04
mariuskoOther than (mis)-use relations10:04
rogpeppemariusko: that's what relations are for10:05
mariuskoI would like to trigger redeploy from a git server charm to e.g. node-app on git push received10:05
mariuskoI thought of either setting the branch name again on node-app in that case to trigger it, or add a parameter to store the SHA1 to deploy10:06
mariuskoBut how would the app-charm get access to the git repo? Is there a magic authentication through ssh or something?10:08
mariuskoOr access it through NFS?10:11
fwereadeTheMue, ping10:31
fwereademariusko, do you have a config setting for your git repo? feels like a job for an external tool: set the service config, and let the charm's config-changed hook handle it10:32
TheMuefwereade: pong10:33
fwereadeTheMue, it crosses my mind that we probably don't want the storage backend implementation hidden away inside environs/local10:33
fwereadeTheMue, how are you planning to deploy it?10:33
TheMuefwereade: If there's good multiple usage I can surely move it.10:33
fwereadeTheMue, I'm probably missing something, but I don't see when it'll be used inside environs10:34
TheMuefwereade: The backend only indirectly. I only put it there as we so far had no other need for it.10:34
fwereadeTheMue, what's the planfor actually running it?10:35
TheMuefwereade: It can be a standalone binary of maybe also a configurable part of the machine agent. But here I'm not yet secure enough, I haven't yet looked.10:35
TheMuefwereade: The component is flexible enough.10:36
fwereadeTheMue, yeah, I'm wondering whether a worker might be the way forward10:36
fwereadeTheMue, not something that needs to be done right away though, I guess10:37
TheMuefwereade: I will keep it in mind, but yes, that would be a good "environment" for the backend to live in.10:37
fwereadeTheMue, although I imagine you're aiming for a bootstrap ASAP?10:37
TheMuefwereade: Exactly.10:38
fwereadeTheMue, cool, I imagine it will fall out naturally soon enough then10:38
TheMuefwereade: Think so too.10:38
fwereadeTheMue, can I ask you to take a little look at davecheney's stater work, and let me know whether any of that will potentially fit in well with what you need in the local provider?10:39
TheMuefwereade: Do you know how to change topic w/o op?10:39
fwereadeTheMue, I'm afraid I don't10:39
fwereadeTheMue, maybe ask niemeyer when he comes on?10:39
* niemeyer is around10:40
TheMuefwereade: Good idea, and yes, I will take a look at the stater.10:40
niemeyermorning folks10:40
TheMueniemeyer: Good morning.10:40
TheMueniemeyer: Nice video about maps btw.10:40
niemeyerHmm.. actually, how do I allow the topic to be changed by everyone again?10:40
* niemeyer looks at the help10:41
niemeyerTheMue: Cheers!10:41
fwereadeniemeyer, heyhey, sorry I missed you :)10:41
fwereadeTheMue, it's stalled in review at the moment because dave is looking at other things, but I don;t think we can afford to exclude it from consideration -- if you can come up with a plan that fits both local and HA use cases I will send you virtual flowers10:42
* fwereade needs to take an extended lunch today, off in a few mins, and will see everyone in a couple of hours10:43
TheMuefwereade: Oh, Valentine's. *rofl*10:43
=== ChanServ changed the topic of #juju-dev to: I am a new topic.
niemeyerTheMue: /msg chanserv topic #juju-dev <whatever>10:45
TheMueniemeyer: Great, thank you.10:47
=== ChanServ changed the topic of #juju-dev to: finish ALL THE THINGS
fwereadeif someone can come up with a better topic, go for it :)10:48
* fwereade => off10:48
wallyworld_jam: mgz: dimitern: can we delay the meeting for 30 minutes or so? i've had a call from my wife and i unexpectedly have to go and pick her up from a work meeting11:25
dimiternwallyworld_: works for me,11:25
jamwallyworld_: if anyone else was here it would be delayed :), but yeah, wfm11:25
wallyworld_ok, thanks :-) will leave now and hopefully be back in 1/2 hour or so11:26
TheMuelunchtime11:29
mariuskofwereade: I think I will have to try to hack a bit to see when I get time. Maybe add a connection between gitolite and node-app charm where either you specify a ssh key to fetch the updated code or that node-app adds a ssh key to the server11:34
jamdimitern: the rest of us are all here11:49
wallyworld_dimitern: i'm back11:49
dimiternjam: just a sec11:49
* rogpeppe goes for lunch12:01
rogpeppeback, but i'll probably step out for a breath of fresh air later12:13
dimiternfwereade, others?: https://codereview.appspot.com/7303091 - refactoring of hook module12:28
rogpeppejust rebooting, back in a mo12:50
fwereadedimitern, ping13:31
dimiternfwereade: pong13:32
dimiternfwereade: that's the CL we were talking about yesterday13:32
fwereadedimitern, I think hook.Info shouldn't be in charm/hook -- that bit is very specific to the uniter13:32
dimiternfwereade: ah, ok, I can move that bit back into worker/uniter/hook ?13:33
bachi i just set up my environment and have r892 of juju-core.  i'm seeing test failures for state/api.  trying to figure out if it is my environment or if that test is really broken in trunk.13:33
fwereadedimitern, yeah -- I know it'll make both packages feel a little anaemic, but I think it's the right division13:33
dimiternfwereade: sure, np13:34
dimiternfwereade: how about the ScanCharm ?13:34
fwereadebac, would you paste them? I know there was churn there in the last couple of days13:34
bacfwereade: sure13:34
fwereadedimitern, my first reaction was eww! to the Errors type, but I haven't looked closely enough to figure out whether that's a sensible response ;p13:34
dimiternfwereade: it's a bit iffy at first, but I think it makes sense for what it does13:35
fwereadedimitern, I think you should be ok trusting the contents of the Meta though -- it does validate on load13:36
bacfwereade: http://paste.ubuntu.com/1650787/13:36
dimiternfwereade: including duplicate relations scanning?13:37
fwereadebac, both of those are known and don't indicate anything seriously wrong that won't be fixed today13:39
bacfwereade: great, thanks for looking13:39
* fwereade looks meaningfully at rogpeppe and mgz, neither of whom appear to be around right now13:39
fwereadedimitern, I think so, yeah13:39
=== TheRealMue is now known as TheMue
fwereadedimitern, lines 99-102 in meta.go13:40
fwereadebac, btw, much love for the bzr revision and go version at the bottom of the paste :)13:40
bac:)13:40
dimiternfwereade: ok then, I'll remove this check - can you comment that?13:41
fwereadedimitern, yeah, will do, just going through it now13:41
rogpeppefwereade, dimitern, jam, anyone else: a small CL that adds error codes to the rpc package: https://codereview.appspot.com/731109713:43
dimiternrogpeppe: looking13:46
rogpeppedimitern: ta!13:46
fwereadedimitern, I think it's all doing a bit much, I'm afraid13:49
fwereadedimitern, I totally understand the temptation to use filepath.Walk13:49
fwereadedimitern, but I think it'll work out clearer if you just build up a list of possible hook names given the available relation names13:50
dimiternfwereade: why using Walk is bad?13:50
fwereadedimitern, because we don't care about anything except the actual hooks that juju might try to run13:51
dimiternfwereade: hmm..13:51
fwereadedimitern, I think that all we need is to build a list of all the global hooks, plus 4 relation hooks for every relation13:52
dimiternfwereade: do you think it's better, once we have discovered all relations, just do a loop over and find whether they're there13:52
fwereadedimitern, we don't even care if they're not there13:52
fwereadedimitern, the only thing we should worry bout is if they're there but aren;t executable13:53
dimiternfwereade: so the executable check has to happen in ScanCharm?13:53
fwereadedimitern, g+? might be quicker than typing13:54
dimiternfwereade: sure, I'll start a hangout13:54
fwereadedimitern, cheers13:54
dimiternfwereade: https://plus.google.com/hangouts/_/a19365e0ad7fd87450ce5dcdb4539de6e2fa6ca8?authuser=0&hl=en13:54
fwereaderogpeppe, http://paste.ubuntu.com/1650787/ -- bac has been seeing EOFs too13:55
rogpeppefwereade: thanks. i'm looking at that right now, though i haven't been able to reproduce it13:55
* dimitern >> lunch14:13
bacrogpeppe: thanks for looking.  i've got a fresh install and am using bigjool's mongo PPA.14:25
fwereaderogpeppe, you have an LGTM on the error codes, but I'd like to see the NotFound stuff implemented for Machine soon -- I'm not 100% clear on how that'll look in practice14:29
=== wedgwood_away is now known as wedgwood
fwereaderogpeppe, also, re the int suggestion for CpuPower, would you expand a bit on what you're thinking -- something like 1000 CpuPower == 1 ECU?14:33
rogpeppefwereade: sorry, was in a hangout14:47
rogpeppefwereade: thanks. that's the next step14:47
fwereaderogpeppe, np, I expected so14:47
rogpeppefwereade: yeah, for CpuPower, something like that. probably 100 could be sufficient.14:47
rogpeppefwereade: we can display it as a float if we want.14:48
rogpeppefwereade: although probably easier not to14:48
fwereaderogpeppe, yeah, that's the plan -- I'd kinda like to keep a bit more accuracy in there than I expect us to need :)14:48
rogpeppefwereade: i hope you don't mind my instinctive discomfort with floats.14:49
rogpeppebac: can you reproduce the test failure consistently?14:49
bacrogpeppe: yes as can teknico14:49
rogpeppebac: cool - i'll push a branch for you to test in a moment14:49
fwereaderogpeppe, no, I share it really, I just thought it might be clearer as a float14:49
bacrogpeppe: thanks14:50
fwereaderogpeppe, the best float bug I ever heard about was in some game with decent-sized worlds made up of smaller rooms... when the rooms (which were playtested originally in the centre of the universe) were placed far enough away from (0, 0, 0), the loss of resolution meant that the geometry was represented funkily enough to allow people to clip through walls/floors/etc14:52
rogpeppefwereade: i bet they were using float32s14:53
fwereaderogpeppe, probably -- and take the details with a pinch of salt14:53
rogpeppefwereade: cool bug!14:53
fwereaderogpeppe, but still, floats are bad :)14:53
fwereaderogpeppe, indeed14:53
* rogpeppe likes floats... in the right place.14:53
fwereaderogpeppe, probably not so cool to debug ;)14:53
rogpeppefwereade: or probably to fix...14:53
fwereaderogpeppe, as long as nobody kids themselves they're numbers they're fine14:54
fwereaderogpeppe, ha, yeah14:54
rogpeppebac: lp:~rogpeppe/juju-core/216-rpc-consistent-close-error14:57
bacrogpeppe: will try now14:57
bacteknico: ^^14:57
rogpeppebac: thanks14:57
teknicobac, rogpeppe, I'll try it too shortly14:58
rogpeppefwereade, TheMue: it finally dies...15:09
benjihi all; I'm getting an error (well, lots of similar errors) when running "go get -v launchpad.net/juju-core/..." --> "import "crypto/rand": import path doesn't contain a hostname"15:13
bacrogpeppe, teknico: i now see a different failure, which i have seen before:  http://paste.ubuntu.com/1651636/15:17
rogpeppebac: that's blue team's domain :-)15:18
bacjam: ^^15:19
teknicosorry, on a call, haven't tried yet15:21
rogpeppebac: have you tried go get -u launchpad.net/goose ?15:24
rogpeppebenji: instead of that, try go get -v launchpad.net/juju-core/cmd/juju15:24
bacrogpeppe: i did update goose but not goamz15:25
rogpeppebac: so have you got it working now?15:26
benjirogpeppe: go install launchpad.net/juju-core/log: mkdir /usr/lib/go/pkg/linux_386/launchpad.net: permission denied15:26
rogpeppebenji: what's your GOPATH?15:26
benjiI had a GOROOT set when I got the aformentioned error, now with no GOROOT I get the above15:26
bacbenji: :)15:26
rogpeppebenji: you need a GOPATH15:26
benji% echo $GOPATH15:27
benji/home/benji/workspace/go15:27
teknicorogpeppe, as for bac, the "api_test.go:524: suite.TestStop" is gone, but the "live_test.go:0: localLiveSuite.TestPorts" is still there15:45
teknicois "blue team's domain" a reliable enough escape hatch? ;-P15:45
rogpeppeteknico: yeah, i see the error too15:46
dimiternrogpeppe: i believe mgz should have fixed that15:46
rogpeppedimitern: cool15:46
dimiternrogpeppe: we're talking about disabling the ports test today15:46
fwereadeteknico, we were expecting mgz to show up and fix it, and that has not happened -- I think I'll just propose a trivial that skips it again15:46
teknicofwereade, thanks, bac, ^^15:48
dimiternwhy was the test failing again?15:48
mgzah, did we not report in here?15:48
mgzit just wants a goose branch landed to make the test service return a sanish error in response to the juju-core tests checking duplicate rule behaviour and probably not being very well isolated15:50
rogpeppemgz, dimitern: i've also seen this failure in openstack: http://paste.ubuntu.com/1651926/15:50
dimiternoh, yeah15:51
dimiternit relies on some (undocumented?) ec2 error behavior15:51
mgzokay, I marked the proposal as approved so it should auto land shortly15:52
dimiternmgz: cool, thanks15:53
mgzrogpeppe: that's an isolating issue, that's *already* worked around on goose15:53
mgz*isolation15:53
dimiternfwereade: a thought - how about instead of having a Meta method returning a map[string]true, instead return a slice and have a separate method IsHook() which uses a map internally to check that quickly, because that's what we care about in expand/bundle anyway..15:53
rogpeppemgz: what do you mean by an "isolation issue"?15:53
mgzbasically, live-esque tests don't reset state in the test service15:54
fwereadedimitern, remember that a Meta needs to be stored in state -- we don't want private fields15:54
mgzso, within a file, all tests share the same service, which means subsequent ones have stuff like left over security groups from the previous tests15:54
dimiternfwereade: ah, didn't realize that15:55
mgzokay, pull goose and rerun everyone15:55
fwereadedimitern, and I don't think that a list of possible hooks is important enough to make visible15:55
dimiternfwereade: it can use a private map var15:55
rogpeppemgz, dimitern: oh yes, another problem - at least one test fails when run by itself: http://paste.ubuntu.com/1651977/15:55
fwereadedimitern, I think I'd prefer to just create it explicitly in the rare situations it's needed15:56
mgzrogpeppe: that one is new to me :)15:56
dimiternfwereade: no, i meant something else, let me paste some code15:56
fwereadedimitern, ah sorry15:56
dimiternrogpeppe: I think that's my doing15:57
dimiternrogpeppe: i'll have a look shortly15:57
rogpeppemgz: yeah, i see the issue - kinda the point of the live tests is so that you *don't* have to bootstrap the environment every time, so that we have some possibility of running the test suite in under a day...15:57
rogpeppemgz: but that's inevitably going to lead to isolation-related issues15:57
* fwereade doesn't want to impose a fedex-everyone-biscuits penalty for breaking the build, but is considering a wear-stupidest-available-hat-in-hangouts policy15:58
mgzI'm fine with tht :)15:58
rogpeppefwereade: excellent idea15:58
mgzjust having a bot is better of course15:59
rogpeppemgz: a bot would be a great thing. how's it working out for you guys?15:59
mgzthe tests passed locally, because goose still had my fix installed, which isn't terribly easy to detect16:00
fwereademgz, +1 in theory, but that doesn't feel like it would play cleanly with the irritating synchronized-checkins requirement16:00
* fwereade still kinda feels like cloning goose into thirdparty/ is the cleanest solution while it's still changing16:00
fwereadefirstparty/ ?16:01
dimiternfwereade: hmm.. I can't decide whether having both Hooks() map[string]bool and AllHooks() []string16:01
dimiternfwereade: it seems a plain slice is useful, but then again having a map for quick lookup is also nice, and can be looped over like a slice for the keys16:02
fwereadedimitern, I'd stick with the first, but now you've mentioned it in public the weight of popular opinion my push us towards an []string with  O(N^2) checks16:02
fwereadedimitern, what are the use cases? for the only one I know, the map gets us the most compact code, I think16:02
fwereadedimitern, is one better for ExpandTo, the other for BundleTo?16:03
dimiternfwereade: sure, map is what we need - with the lack of keys(), which you have to loop over anyway, so should be enough16:04
fwereadedimitern, cool16:04
dimiternfwereade: for expand/bundle map is perfect, since files are processed one at a time16:05
fwereadedimitern, sgtm16:05
dimiternrogpeppe: that error is due to not passing --upload-tools (or equiv) I think - i've seen it before16:06
dimiternrogpeppe: or maybe some ill bootstrapping16:06
rogpeppedimitern: well, it passes when i run all the tests together16:06
dimiternrogpeppe: that's bad16:07
rogpeppefwereade: ahem, shame on me, i submitted a branch accidentally: https://codereview.appspot.com/7324054/16:07
dimiternrogpeppe: it's not idempotent16:07
rogpeppefwereade: it's fairly trivial (two line change) but still16:07
rogpeppefwereade: i thought i was submitting another branch16:07
rogpeppefwereade: (it does fix trunk too)16:07
fwereaderogpeppe, retroactively LGTMed16:08
dimiternrogpeppe: so accidentally submitted the right thing?16:08
dimitern:)16:08
rogpeppefwereade: thanks16:08
rogpeppedimitern: too early :-)16:08
* fwereade doesn't trust any of you, and is going to run all the tests from scratch again ;p16:08
dimiterntoday's break the build day :)16:09
dimiternas a friend says - "if you break the build, you *become* the build"16:09
dimiternfwereade: given Meta needs to be stored in state, it isn't a problem to have m *Meta methods, right?16:10
fwereadedimitern, I don;t think so, but they probably shouldn't need to be, because I don't think they should modify it16:11
dimiternfwereade: ofc, right16:12
fwereademgz, rogpeppe, bac, teknico: tests cleanly for me with fresh goose; thanks all for warnings and fixes as appropriate16:14
rogpeppefwereade: me too. fresh goose made things all tasty again.16:16
teknicofwereade, thanks. for my education, is there a better way than "go get"ting everything all the time?16:16
rogpeppeteknico: with changing external dependencies, not currently, no16:17
dimiternrogpeppe: fresh goose always makes things better :)16:17
mgzwe've generally tried to post to the list when there needs to be a syncronous juju-core/goose update, but that only works for planned breakage, and is pretty frequent given doing pretty much anything in go involves changing an api16:18
mgzno new optional param, no new ignorable field migrations16:18
rogpeppemgz: you can add struct fields and methods without breakage in general16:25
mgznot if you need to actually use them somewhere :)16:26
mgzin python you'd just getattr something on a class if you want to run against a dep that may or may not be a new version16:27
mgzwhich is ugly in the long run, but nice as a workaround16:28
rogpeppemgz: yeah, i don't think we want to be doing that :-)16:30
mgzso, lockstep updates are a way of life.16:30
rogpeppei still think there's no *inherent* reason that version-number-as-path needs to be painful, but i haven't worked out how the workflow should go exactly.16:31
mgz's fine once things are stable-ish, but atm they are not.16:32
dimiternmgz: if you bzr rm a file, propose it, then add another file at it's place and bzr add it, when proposing it complains: error: Failed to send patch set to codereview: can't upload base of worker/uniter/hook/hook.go: ERROR: Checksum mismatch.16:32
dimiternany idea is this a lp, bzr or lbox issue?16:33
mgzneeding to bump a version in every goose and every juju-core file multiple times a week doesn't work with more than one person doing development16:33
mgzdimitern: sounds like an lbox bug16:33
mgzbut is it actually a different file, or did you break history for fun?16:33
mgz'd cp your current file, bzr revert the path, mv the file back, and unless the diff is complete nonsense use that16:34
rogpeppemgz: it's not inherently more work than bumping a version in one file AFAICS16:35
mgzrogpeppe: I'm proposing a feature, Ian's proposing a feature, how do we both bump the version?16:36
mgzit's hostile to distributed workflows16:36
rogpeppemgz: how do you do that in the python world?16:37
rogpeppemgz: is there something that auto-increments the version with each merge or something?16:38
mgzmostly by having flexible apis and the tools to work against older deps, but otherwise, by having the version in exactly one place that can get bumped as a seperate proposal, and is a single conflict point16:38
rogpeppemgz: i think that bumping the version as a separate proposal could work fine even if there are multiple files involved. the conflicts will be obvious and easy to resolve.16:39
mgzthey're mixed up with the imports...16:39
mgzand it can't be seperate, otherwise the code using whatever new api thing it is won't build16:40
rogpeppemgz: that's fine, won't it? you could even have a tool that automatically diagnoses version number conflicts, perhaps, because they'll be so predictably formed AFAICS.16:41
mgzbut it's not just conflicts, it's development16:42
rogpeppemgz: i *think* development could work ok too, as long as a) there's an easy way to change all imports and b) there's a single development branch that has a static path.16:43
mgzif you're baking a number into the import, it makes every feature branch into an ordering complication16:43
dimiternmgz: so i first removed worker/uniter/hook/*, then proposed, then added worker/uniter/hook/ - 2 different files (part of what was there before, same names), reproposed, got the error, did bzr checkout -b newbranch, lbox proposed, same error again, and if you look at https://codereview.appspot.com/7337043/ some of the files are not there (upload in progress), but others are16:44
mgzif it's just +=1, you get breakage from two people landing at the same time due to it not being clear which new feature is actually being depended upon16:45
dimiternI don't see what's special about removing and re-adding a file with the same path in the same branch16:46
mgzdimitern: you change the fileids16:46
* fwereade is somewhat upset to find he is no longer capable of spelling "uint" as anything other than "unit"16:46
rogpeppefwereade: lol16:46
mgzbzr cares about fileids, I suspect lbox doesn't understand them and just keys off path16:46
rogpeppemgz: presumably that's true of any monotonic version numbering scheme though16:46
rogpeppemgz: yeah, i don't think codereview.com knows about fileids16:47
dimiternmgz: well, if you look at the diff in lp, is says confusing things: https://code.launchpad.net/~dimitern/juju-core/reorganize-charm-hooks/+merge/148500 (added directory, then removed the same dir, added a file inside it next)16:47
mgzright, but it's not in the import generally, so isn't directly tied to code changes in *both* sides of the dep link16:47
mgzdimitern: right, really you shouldn't do that16:48
fwereadedimitern, when this sort of thing happens I usually just clone a fresh trunk and copy everything in from the borked one16:48
dimiternmgz: what? is it because a dir was deleted and re-added ?16:48
mgzwhat you probably want to do is branch the initial version, change the files to your changes (not using bzr rm and bzr add, but by changing the files), and push --overwriting16:49
dimiternfwereade: yeah, almost did it, but decided to ask and maybe learn the error of my ways :)16:49
mgzdimitern: you've said the files are unrelated by doing that16:49
mgzwhich confuses lbox16:49
mgzand anyone using the dvcs history16:50
dimiternI dont's see how, provided the history is in the right order16:50
mgzyou removed a file, then added another file with the same name, and similar contents16:50
dimiternmgz: yeah, so? how's this different from doing the same, with the same file, but on 2 subsequent proposals?16:52
mgzwell, it breaks lbox apparently, is how it's different16:53
dimiternmgz: but bzr is ok with this, I mean16:53
mgzit's okay with it, but you should have used mv16:54
mgzbecause it looks like a break in the history, when it's really a mv16:54
mgzanyway, you still can fix this, if you just start from r-2 and redo the change16:55
dimiternmgz: I got you, i though bzr will pick it up rm+add, but if the contents differ a bit (even if only at the bottom)16:56
mgzno, it means something else16:57
niemeyerfwereade: Where is the juju store nowadays?16:57
mgzyou need to use `bzr mv` which does have some switches for guessing16:57
niemeyerfwereade: I see it got killed on Wednesday16:57
mgzbut it's best to just be explicit16:57
fwereadeniemeyer, lp:juju-store16:58
niemeyerbzr branch lp:juju-store16:58
niemeyerbzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/juju-store/".16:58
niemeyerfwereade: ^16:58
niemeyerallenap: ping16:59
fwereadeniemeyer, ah, hmm, you would seem to be right -- I saw the project but didn't check the code16:59
niemeyerfwereade, allenap: Has anyone has coordinated with the team that deploys the store code to update the deployment procedure?16:59
* fwereade has not :/17:00
niemeyerfwereade: Was there any meetings that I lost about this change?17:00
allenapniemeyer: Nope. I don't know who deploys the store exactly, but I can ask the webops.17:01
fwereadeniemeyer, the MP referenced the discussions in austin in which we all seemed to agree that the store was best off separate if it was being worked on by another team17:01
dimiternmgz: cheers17:01
niemeyerallenap: I'm a bit concerned that we seem to be shaking things without much coordination17:02
niemeyerfwereade: Maybe.. it doesn't seem like a reason on itself, though17:02
fwereadeniemeyer, but you're absolutely right that nobody considered the deployment17:03
fwereadeniemeyer, I'm not sure -- the more teams we have hitting the same codebase, even if the work is theoretically non-overlapping, the more confusion there seems to be17:03
niemeyerfwereade: I think it would be nice to have that in the same place, at least for a while17:04
rogpeppethumper: yo!17:05
niemeyerfwereade: As I understand it, that new team has never worked with Go, or with juju-core17:05
thumperhi rogpeppe17:05
thumperrogpeppe: I was waiting on the hangout :)17:05
niemeyerfwereade: Having teams closer together would probably be beneficial17:05
niemeyerfwereade, allenap: We actually had a thread going in the mailing list about this..17:06
niemeyerfwereade, allenap: So, where is the code now, and who will coordinate with IS to update the scripts and make sure they work?17:06
fwereadeniemeyer, perhaps I remember wrongly -- I thought the thread was essentially a rejection of the theory that occasional failing tests were a good reason to separate it17:07
allenapniemeyer: It's in lp:juju-store, which is currently private. I'll talk to the webops.17:08
niemeyerallenap: Can I please have access?17:08
niemeyerallenap: Does it have to be private now?17:09
niemeyerallenap: This means you'll be dropping codereview for the moment, since lbox won't keep content private17:09
allenapniemeyer: ~juju was invited to the ~juju-store team a while back, but I'll add you individually for now.17:09
niemeyerallenap: Let me try to approve that17:09
allenapniemeyer: hazmat originally asked for it to be private, iirc, so I'm going to punt on that :)17:10
niemeyerhazmat?17:10
dimiternfwereade: finally, I think this is the last of it - https://codereview.appspot.com/731704517:10
hazmatallenap, niemeyer in meeting back shortly17:11
dimiternrogpeppe: you too perhaps? ^^17:11
niemeyerallenap: When will you start work on it?17:11
niemeyerallenap: That justifies the change, and it being private?17:11
allenapniemeyer: I think the Red Squad were happier to use LP for code reviews. However, we're not going to be working on the store any more... so whoever takes it on may decide they want back in to juju-core. It shares history so it ought not to be too hard to merge back in.17:13
niemeyerallenap: Erm.. who's actually working on that code?17:13
allenapniemeyer: I don't know, to be honest. Deryck may be able to help.17:14
niemeyerallenap: https://launchpad.net/juju-store/trunk17:15
niemeyerallenap: The project doesn't even have code set up17:16
niemeyerallenap: So I guess no one right now17:16
allenapniemeyer: https://code.launchpad.net/~juju-store/juju-store/trunk17:17
allenapniemeyer: Also, https://launchpad.net/juju-store/trunk looks right to me.17:18
niemeyerallenap: Thanks, I wasn't properly logged in17:18
allenapniemeyer: Cool.17:18
fwereadeallenap, where should I have been to find out that store work was now off your plate? did I miss something obvious?17:20
allenapfwereade: It should have percolated through via management I assume, but I don't know that it's written anywhere.17:22
allenapNot written anywhere I know of.17:22
niemeyerOkay, I'm sending an email to sync us up17:23
fwereadeallenap, it's perfectly possible that I missed something, but it doesn't ring any bells here :)17:23
hazmatallenap, i though we belayed removing it for a copy?17:33
* hazmat is confused about whose on first17:34
hazmatallenap, when did that change re red not on store?17:35
allenapfwereade, hazmat: Okay, this is not the message I got in Austin, which was to reopen and land the break-out-juju-store branch.17:35
fwereadehazmat, allenap: a copy seems like a suboptimal solution from just about every perspective... things can but diverge and cause (more) confusion17:35
allenapThe cavalry has arrived :)17:37
allenapfwereade, hazmat: We can revert if you want: r886 is the offender.17:38
* allenap has to go to collect his kids about 10 minutes ago.17:38
fwereadeallenap, collect your kids, we'll figure it out :)17:39
fwereadederyck, am I right in thinking that there's no current work happening on the charm store? or am I just confused?17:39
deryckno current work, no17:40
deryckI'm otp so will have to answer questions as I can, just FYI17:40
fwereadederyck, hazmat: does anyone have any objections to moving it back until it gets a happy new home with loving parents? ;)17:41
deryckfwereade: what are we talking about? a revno? Or something else? Maybe hazmat is better to comment here.17:44
fwereadederyck, I'm talking about the store package's removal from juju-core, on the understanding (I thought) that red would be doing imminent work on it17:45
deryckah17:45
fwereadederyck, if that's not happening now, I think it's probably best left in juju-core for the time being17:46
deryckThat makes sense to me. But I also think work will happen in the short term on the store. either red or green.17:46
deryckjust not happening now.17:46
deryckI'd also prefer to defer to hazmat ultimately on this question.17:47
fwereadederyck, ok, thanks :)17:47
fwereadehazmat, it sounds as though you may have a clearer picture than any of us..?17:47
fwereadehazmat, or maybe we're just accusing you of that without any basis in fact ;)17:48
deryckfwereade: did allenap have objections to putting the store back in core?  sorry to join late.17:50
fwereadederyck, I haven't heard any objections yet17:50
fwereadederyck, np :)17:51
deryckok cool17:51
niemeyerfwereade, deryck: hazmat replied on canonical-juju17:54
fwereadeniemeyer, ah, thanks17:55
fwereadeniemeyer, deryck: I need to stop for the night; I'll restore it tomorrow (or maybe later...) if nobody else gets there first17:56
fwereadesorry to dash17:56
fwereadedimitern, LGTM, a few trivials17:57
niemeyerfwereade: Have a good one17:57
hazmatfwereade, niemeyer sorry about the confusion, things have been unclear to me as well18:00
dimiternfwereade: cheers!18:00
niemeyerhazmat: No worries, thanks for clarifying18:00
dimiternrogpeppe: ping18:01
rogpeppedimitern: pong18:01
rogpeppedimitern: sorry, i was chatting with thumper18:01
dimiternrogpeppe: np, if you can take a look at https://codereview.appspot.com/731704518:02
dimiterni'd like to land it today18:03
rogpeppedimitern: will do18:03
rogpeppedimitern, fwereade: is it really worth defining a new package to deal with charm hooks? wouldn't it be ok to have that stuff in the charm package itself?18:11
allenapfwereade, deryck: No objections from me for putting it back in juju-core.18:16
dimiternrogpeppe: hooks work in contexts where charm is too much to ask18:21
rogpeppedimitern: what do you mean by "too much to ask"?18:21
dimiternrogpeppe: :) i mean you're not interested in the whole charm, just need to work with hooks18:22
rogpeppedimitern: that's fine - you don't need to use the other charm-related stuff18:22
dimiternrogpeppe: and in addition, there are a lot of places in the uniter where this has to change18:22
dimiternrogpeppe: charm.RelationJoined vs hook.RelationJoined18:23
dimiternrogpeppe: I agree it might be a stupid thing, but looks cleaner18:23
rogpeppedimitern: i think charm.RelationJoined reads ok18:24
dimiternrogpeppe: well, it's the same to me, if fwereade agrees as well18:24
rogpeppedimitern: actually, on reflection, i don't mind too much.18:25
rogpeppedimitern: but i do think you should be aliasing charm/hook, not uniter/hook inside the uniter code18:25
dimiternrogpeppe: i did that before18:26
rogpeppedimitern: orly?18:26
dimiternrogpeppe: but it seemed wrong and funny :)18:26
dimiternchook here, chook there18:26
rogpeppedimitern: charmhook would work too18:26
dimiterni didn't know is aussie for chicken :)18:27
rogpeppedimitern: chhook maybe18:27
rogpeppedimitern: just i think that the principle of renaming the thing that's furthest away is a decent one18:27
dimiternrogpeppe: charmhook was my first choice, but it's too long for long case x,y,z lines18:28
dimiternrogpeppe: ok, I can changed the uniter code to use hook and chook?18:28
rogpeppedimitern: i *think* that'll be better18:29
rogpeppedimitern: although changing it all to charm. is an alternative too - no name collision there18:29
dimiternrogpeppe: ok, I can now see charm.* seems a better choice18:30
rogpeppedimitern: though you may want a common prefix for the hook names (HRelationJoined, HRelationDeparted etc?)18:31
dimiternrogpeppe: then a few things need changing, like IsRelation -> IsRelationHook, Install->InstallHook maybe? charm.Install seems ambiguous18:31
=== deryck is now known as deryck[lunch]
rogpeppedimitern: charm.HInstall18:31
rogpeppe?18:31
dimiternrogpeppe: I'd like to pass this through fwereade as well, since it touches a lot of the uniter code18:31
rogpeppedimitern: definitely18:32
dimiternrogpeppe: otherwise, I'm fine18:32
dimiternrogpeppe: so I guess I'll leave it for tomorrow then18:32
rogpeppedimitern: sorry about that18:32
dimiternrogpeppe: tyvm!18:32
rogpeppedimitern: np. naming issues, pah18:32
dimiternrogpeppe: np, it'll be better18:32
dimiternrogpeppe: it's a trivial change, so it up to agreement for readability/convenience really18:33
dimiterni'm off then18:35
dimiterngood night all18:35
rogpeppei'm off too19:02
rogpeppeg'night!19:02
rogpeppedammit, i just saw another "unexpected EOF" test failure and i can't see how it could possibly have happened :-(19:02
thumpermorning20:13
=== deryck[lunch] is now known as deryck
thumperhow do you normally upgrade the trunks in a GOPATH layout?21:05
thumperif I want latest juju-core trunk21:05
thumperis it normally just a pull?21:05
thumperor is there a special go command?21:05
thumperniemeyer, fwereade, anyone...21:10
* niemeyer heads up21:11
niemeyerthumper: I personally just pull21:11
thumperniemeyer: ok, ta21:11
niemeyerthumper: go get does support a -u flag, though21:11
thumperpull works for me21:11
niemeyerthumper: That may not go so well with cobzr21:11
niemeyerthumper: I mean, -u21:11
thumperniemeyer: I'm not using cobzr :)21:12
* thumper is special21:12
niemeyerthumper: That's fine.. whatever works :)21:12
thumperniemeyer: how do you handle the situation of pulling a new version of trunk... do you then run the tests to make sure all the appropriate deps are there and the API hasn't changed?21:41
thumperI'm considering the email sometime before21:41
thumperabout "you need to upgrade goose as well as juju-core"21:41
thumperhow do I know if I have other things to pull?21:42
niemeyerthumper: I don't generally run tests when starting to hack21:42
niemeyerthumper: But if you're not sure if it's working, that's a good idea21:42
thumpergo test, right?21:43
thumperor go test juju-core?21:43
* thumper found it21:48
thumperI'm getting failures running the tests on trunk with `go test launchpad.net/juju-core/...`21:59
thumperanyone else?21:59
* thumper hates broken tests on trunk22:00
thumperalthough it is probably broken deps22:00
thumperor deps not updated22:00
thumperwallyworld___: ping22:01
wallyworld___thumper: g'day22:22
thumperwallyworld___: hey there22:23
thumperwallyworld___: long tail you have there22:23
wallyworld___yeah, stupid quassel22:23
thumperwallyworld___: was hoping you could help me with some test stuff22:23
wallyworld___sure22:23
thumperhangout?22:23
wallyworld___ok22:23
davecheneyaww fuck,22:57
davecheney# launchpad.net/juju-core/store_test22:57
davecheneystore/branch_test.go:28: too many arguments in call to "launchpad.net/juju-core/testing".Charms.Dir22:57
davecheneystore/store_test.go:114: too many arguments in call to "launchpad.net/juju-core/testing".Charms.ClonedDir22:57
davecheneythumper: % bzr merge -r 886..88522:58
davecheney is that the correct incantation for a reverse merge ?22:58
thumperdavecheney: something like that22:59
davecheneycool23:00
davecheneylooks like the problem is a change made afterwards to some testing stuff23:00
davecheneymerge proposal coming up real soon now23:00
davecheneythumper: can I get a hell yeah, https://code.launchpad.net/~dave-cheney/juju-core/080-revert-store-change/+merge/14857123:09
* thumper looks23:09
davecheneyhang on, intertubes still grinding23:09
davecheneydone23:09
thumperdavecheney: what is the api change?23:10
davecheneythe testing.Charm helper had an argument which was always "series"23:10
davecheneyso revno 887 removed the parameter and bought the value indoors23:11
davecheneyhttp://bazaar.launchpad.net/~gophers/juju-core/trunk/revision/88723:11
thumperdavecheney: seems I'm not in gophers23:16
davecheneythumper: I will try to fix23:16
davecheneyspeaking of that23:16
davecheneyi've stopped getting notifications from LP23:16
davecheneywhich is a double edged sword23:16
thumperfor what?23:16
davecheneyabout anything23:17
davecheneynot the continuall flood of changes related to intel chips23:17
davecheneyand more importantly no bug change notifications23:17
thumperhmm...23:18
thumperI'm still getting emails23:18
davecheneyniemeyer: can you please make me an administator of https://launchpad.net/~gophers/+members23:18
davecheneyand or approve tim23:18
thumperI've added myself, but it needs approval23:19
thumperfor the restricted team23:19
thumperdavecheney: I left my mark on the merge proposal FWIW23:19
davecheneythumper: ta muchly, i'll get it sorted today23:20
* thumper fires off another two emails to juju-dev23:21
thumperactually, lunch first23:21
niemeyerdavecheney: Done23:21
niemeyerdavecheney: and done23:22
davecheneyniemeyer: thanks muchly23:22
davecheneyniemeyer: please ignore my email then23:22
niemeyerdavecheney: and done as well on kicking23:22
niemeyerdavecheney: There are a couple of proposed members there.. I'm not sure if they should be or not23:23
niemeyerdavecheney: I'd wait until they come and explain their needs23:23
davecheneyniemeyer: SGTM23:23
davecheneyniemeyer: unrelated, did you get my mail about the guy with the GPIO board ?23:24
niemeyerActually, we can disregard at least one of them23:24
niemeyerdavecheney: Oh, I did.. but I just skimmed through and planned to go back.. I'll do that23:24
niemeyerdavecheney: I may be interested, depending on what it is23:25
davecheneyniemeyer: lemmie know before next tuesday, i'll forward you his price list23:25
niemeyerdavecheney: I'd probably be happy even if it's just a cable that lands on the protoboard23:25
niemeyerdavecheney: Thanks a lot23:25
davecheneyniemeyer: are you waiting on the GPIO <> serial cable ?23:25
niemeyerdavecheney: If it's too involved/pricey, I'll probably not want as it's likely microprocessed23:26
davecheneyniemeyer: i don't think it is, just a breakout board for the 20 gpio pins in some sensible groupings23:26
niemeyerdavecheney: Ah, sweet, that I'd be interested on23:27
davecheneyforward'ed email, lets take the discussion there23:27
niemeyerdavecheney: a friend did that by hand, splitting into spacing so that the two rows can land on both sides of the protoboard23:27
niemeyerdavecheney: That's pretty cool23:27
niemeyerdavecheney: One important detail to be aware of, which you probably already are, is that the pins aren't 5V-tolerant23:28
niemeyerdavecheney: worth mentioning just in case23:28
niemeyeras this is the kind of thing one generally expects of such hardware23:29
davecheneyniemeyer: this is the nice thing about what this guy has done, along with the sheild, is a set of click together units23:30
davecheneyso you can just attach a light, or a button, etc23:30
davecheneywhich is exactly what I want, as I can't solder for shit23:30
davecheneyit's been decades23:30
niemeyerdavecheney: Alternatively, you can go a long way with protoboards.. these days there are some nice small ones for that kind of "deployment"23:32
niemeyerdavecheney: It's more fun to evolve the project as well23:32
davecheneyniemeyer: i'm not really interested (at the moment) in _using_ the gpio pins23:33
davecheneybut I am interested in write an interface to them for Go23:33
niemeyerdavecheney: Ah, I see.. you just want to write the software23:33
niemeyerdavecheney: Neat, I thought about doing that as well.. will be glad to use your package instead. ;)23:33
davecheneylast week I met Alex Bradbury from the RPi foundation23:33
davecheneyactually, i'll send you my notes, that is easier23:34
niemeyerdavecheney: For that, I think a led and a resistor would do23:34
davecheneyniemeyer: exactly23:34
davecheneyyou can already using the GPIO in bash, via /sys23:34
davecheneythe libgpio driver uses a mmap of a magic area of /dev/mem23:35
niemeyerdavecheney: Yeah, that's quite neat.. the interrupts are probably more interesting, though23:35
davecheneyyup, that is why I have ordered a button23:36
=== wedgwood is now known as wedgwood_away
=== wedgwood_away is now known as wedgwood
=== wedgwood is now known as wedgwood_away

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