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

davechen1ypoop, http://juju-ci.vapour.ws:8080/job/run-unit-tests-trusty-ppc64el/439/console00:17
davechen1y50400:17
davechen1yno00:18
davechen1y40400:18
davechen1ywtf00:18
abentleydavechen1y: Not sure.  But I think our last build for that is 458.00:20
davechen1yi know what the issue is anyway00:21
davechen1ywill fix00:21
waiganiwallyworld: so who should comment $$merge$$ ?00:22
abentleydavechen1y: So your wtf is why don't we retain all the builds?  Disk space.00:22
wallyworldwaigani: the author of the pull request after getting a lgtm, just like in launchpas where the author of the mp sets approved00:22
davechen1yabentley: ok, fair enough00:23
davechen1ywelcome to the cloud00:23
waiganiwallyworld: thought so, just checking. I saw an LGTM and a $$merge$$ by the reviewer00:23
wallyworldwaigani: np, sometimes the reviewer scan do that if the author had gone to bed or whatever and they want to get it landed00:24
waiganisure00:24
wallyworldi secretly wish we were stil on lp :-(00:24
davechen1ywallyworld: i don't think it is a secret00:25
wallyworldlol00:25
waiganihehe00:25
wallyworldyou got me there00:25
abentleyCertainly not now : -)00:25
wallyworldi just detest git so much compared to bzr00:26
waiganiwallyworld: do we go here to see everything that needs to be reviewed: https://github.com/juju/juju/pulls00:26
wallyworldi think so yeah00:26
waiganijust asking all the really obvious questions to get them out of the way :)00:27
wallyworldi'm still ramping up on github myself00:27
davecheney% echo $PWD00:41
davecheney/home/dfc/src/github.com/juju/juju/juju/osenv00:41
davecheneyi'd like to present this for the justification _not_ to call the main repo 'juju'00:41
perrito666wallyworld: I am surprised that you did not curse even once in the mail00:41
davecheneybut it's too late for that now00:41
perrito666davecheney: there where very good arguments agains00:41
wallyworldperrito666: i can curse here on irc :-) had to be polite in the email :-)00:42
perrito666such as having clones like github.com/perrito666/core00:42
davecheneyperrito666: meh, what's done is done00:42
perrito666who would want to clone my core? :p00:42
davecheneyperrito666: github.com/davecheney/testing00:42
davecheneynot that descriptive either00:42
wallyworlddavecheney: that issue was mentioned and people did suggest juju-core but the majority wanted juju/juju00:42
perrito666davecheney: do you have a production davecheney too? :p00:42
wallyworldfwiw i wanted juju-core00:43
davecheneyfunc (*importSuite) TestTemporaryDependencies(c *gc.C) {00:43
davecheney        c.Assert(coretesting.FindJujuCoreImports(c, "github.com/juju/juju/juju/osenv"),00:43
davecheney                gc.DeepEquals, []string{"utils"})00:43
perrito666we should have discussed this in person, over beer00:43
davecheney}00:43
davecheneywhat the shit is this supposed to be testing ?!?00:43
wallyworldthat ony utils package is imported00:44
davecheneywhy ?00:44
wallyworldthumper wrote that stuff to ensure we were only importing sensible dependencies00:44
wallyworldto pick up layering violations00:44
wallyworldbecause we had several00:44
waiganiwhy not change the team name?00:46
davecheneywallyworld: ok, this will need some fixing for gccgo00:46
davecheneyyou'll only hit that bug when /usr/bin/go is compiled by gccgo00:46
wallyworldwaigani: i also asked that question00:46
wallyworlddavecheney: why will that happen?00:47
davecheneywallyworld: under gccgo, the way we package it the path from the compiled depdency to it's source is not ../src00:48
davecheneyas sinzui discovered00:48
wallyworldah ok00:49
wallyworldthumper will have to fix it then :-)00:49
* davecheney is having a look00:49
davecheneythumper: is busy growing his flock00:50
wallyworldwhat does "growing his flock" mean?00:52
lifelessdo you really want to know?00:53
davecheneycrap, this test is going to be a bit tricky to fix01:00
* davecheney goes to ponder it01:00
sinzuiwallyworld, I declare CI to be fit for juju testing from git. Two tests failed. voidspace thinks he has a fix for the local-deploy-precise-amd64 failure01:00
wallyworldgreat :-)01:00
sinzuimaybe davecheney  can explain the broken ppc64el unit tests01:00
wallyworldsinzui: do you have a pointer to failed tests saving me from looking?01:01
sinzuiwallyworld, https://bugs.launchpad.net/juju-core/+bug/132570701:02
wallyworldoh goody, a bug01:02
sinzui I looked at the packages wondering if one got removed that provided src/pkg/bytes and all the other missing packages01:03
wallyworldlooks like a relatively simple fix hopefully01:03
sinzuia simple fix for me is install a missing package01:04
wallyworldlifeless: well, i was scared about asking, for sure :-)01:04
davecheneysinzui: i know the problem01:09
davecheneyit's a bug with the test helper01:09
davecheneythe short, and not competely accurate explanation is, it's gc only01:09
sinzuiexcellent, gccgo manages its deps differently01:11
davecheneysinzui: no01:13
davecheneysinzui: in short, i'm fixing it01:14
davecheneyi'm not going to explain it twice01:14
davecheneythe commit message will be large enough01:14
perrito666ok fine people, EOD, good night everyone01:15
davecheneyhttps://github.com/juju/testing/pull/1001:28
davecheney^ part 1/2 of the testing failure01:28
axwwallyworld: hey. any githubby/landery things you'd like me to look at today?01:34
wallyworldaxw: hi there, quick hangout?01:34
axwsure01:35
wallyworldi'll set one up01:35
wallyworldhttps://plus.google.com/hangouts/_/g3h6myvrnbm3pwvzj3dibguaaqa?hl=en01:35
axwwallyworld: "the party is over"01:36
wallyworldsigh01:36
axw:~(01:36
wallyworldi sent an invite also01:36
axwwallyworld davecheney: could you please take a look at https://codereview.appspot.com/101980044/ when you have some time01:55
wallyworldsure01:55
davecheneyaxw: sure01:58
* thumper isn't growing his flock02:08
* thumper is getting punched in the head02:08
waiganimgz: bzr diff -rancestor:co:trunk. I get bzr: ERROR: Not a branch02:08
thumperwaigani: you arn't using co-located branches02:08
thumperwaigani: I'll work it out and let you know if wallyworld doesn't first02:08
waiganithumper: sounds good to me :)02:08
wallyworldthumper: if you could do it that would be great02:09
wallyworldas i have co located branches02:09
thumperwaigani: I need to do it for mine anyway02:09
thumperlifeless: o/02:09
waiganicool02:09
lifelessthumper: o/02:10
thumperwallyworld: are there instructions anywhere on how people should set up the git remotes?02:15
thumperwallyworld: personally I've added 'me' as a remote02:16
thumperand go 'git push me branch-name'02:16
thumperas origin is the juju team branch02:16
thumperwallyworld: I was talking with fwereade earlier today, and I think I have a way for us to have a test object factory like the old launchpad one...02:17
thumperwallyworld: at least one that works well enough02:17
wallyworldthumper: i did git remote add upstream https://github.com/juju/juju.git02:17
wallyworldfor upstream02:18
wallyworldbut i guess i should add 'me' too02:18
thumperwallyworld: and changed origin to be you?02:18
wallyworldnot yet but i should02:18
thumperwallyworld: so what do you get if you go 'git remote -v'?02:18
thumperto me 'origin' is 'upstream'02:19
thumperbut I guess each person has their mental model02:19
wallyworld[master]ian@wallyworld:~/juju/go/src/github.com/juju/juju$ git remote -v02:19
wallyworldorigin  https://github.com/wallyworld/juju (fetch)02:19
wallyworldorigin  https://github.com/wallyworld/juju (push)02:19
wallyworldupstream        https://github.com/juju/juju.git (fetch)02:19
wallyworldupstream        https://github.com/juju/juju.git (push)02:19
wallyworldthumper: +1 for better test infrastructure :-)02:20
axwwallyworld: can I get you to approve that goamz MP please? I am not a maintainer02:26
wallyworldsure02:26
axwdavecheney: "git rebase -i master". I *think* that since it's been published, it becomes problematic (you'd have to force push and then lose GitHub comments)02:28
thumperwallyworld: here is a useful trick: git remote set-url --push origin no-pushing02:34
thumperwallyworld: or for you 'upstream'02:34
wallyworldwhat does that do?02:34
thumperwallyworld: so you don't accidentally push to the main juju repository02:34
wallyworldah cool02:34
wallyworldwe'll add these to the doc02:34
thumper$ git push02:34
thumperfatal: 'no-pushing' does not appear to be a git repository02:34
thumperfatal: The remote end hung up unexpectedly02:34
axwI think we should remove most people's commit access anyway02:35
thumperyou can't remove the push url, but you can make it not work02:35
wallyworldwe will lock it down also02:35
thumperI just don't trust myself not to make mistakes02:37
wallyworldyep. locking it down is next on martin's todo list02:38
menn0thumper: isn't origin supposed to be your personal fork and upstream the central shared repo?02:40
thumpermenn0: I don't know, is it?02:41
thumperI'm happy to move to a more accepted terminology02:41
axwthumper: yes it is02:41
thumperbut in the absence of any information, I made it up :)02:41
thumperok, can someone mention that too in the emails?02:41
menn0if you fork on GH and clone that onto your machine, then origin will automagically be your personal repo02:41
menn0here's what I've got:02:42
menn0origingit@github.com:mjs/juju.git (fetch)02:42
menn0origingit@github.com:mjs/juju.git (push)02:42
menn0upstreamhttps://github.com/juju/juju.git (fetch)02:42
menn0upstreamno-pushing (push)02:42
axwhttp://stackoverflow.com/questions/9257533/what-is-the-difference-between-origin-and-upstream-in-github02:42
* thumper updates 02:42
menn0and if you do this in your feature branches: git branch --set-upstream-to remotes/upstream/master02:43
menn0then stuff like "git log @{u}.." and "git rebase -i @{u}" will work with your changes beyond upstream02:44
menn0and this: git config branch.autosetupmerge always02:44
menn0means you don't need to do it for every feature branch02:44
menn0this all requires git 1.7.something02:44
menn0ish02:44
menn0but we're probably all running that02:44
thumperI don't get the @{u} thing02:46
menn0it's short for @{upstream} and means "the rev that upstream is on"02:46
thumperwhat is the autosetupmerge do?02:46
menn0avoids the need to do "git branch --set-upstream-to remotes/upstream/master" for each new branch you create02:47
menn0in recent versions of git "upstream" means something special and there's support through various commands for it02:47
menn0actually, I believe for rebase you can just do "git rebase -i" and it will use "upstream" if defined for the branch02:48
thumperah... nice02:48
thumperhmm02:49
thumperI tried to do the git branch line02:49
thumperand it errored02:49
thumpererror: the requested upstream branch 'remotes/upstream/master' does not exist02:50
thumperI started with "go get github.com/juju/juju"02:50
thumperthen messed with the remotes02:50
axwwallyworld: is there a bot for goamz?02:50
thumperhow do I recheckout my master branch as upstream/master ?02:50
wallyworldaxw: i thought so02:50
wallyworldi'll check02:50
axwthumper: I think you want to do "git branch --set-upstream-to upstream/master master"02:51
axwassuming you haven't changed it02:52
thumperI think I need to fetch heads02:52
axwright, do a "git fetch upstream/master" first02:53
thumpergot it now02:53
thumperaxw: so if you don't specify remotes/ it assumes it?02:54
axwI don't know what the difference is :)02:54
wallyworldaxw: bot doesn't do tarmac :-( if the tests pass for you, i guess we just push manually02:58
axwpasses for me02:59
axwcan you please submit?02:59
wallyworldsure03:00
wallyworldaxw: done03:04
axwwallyworld: thanks :)03:04
wallyworldi forgot to update the commit message, oh well03:05
thumperheh03:06
thumperone of my imports has too many 'juju's03:06
wallyworldlol03:06
thumperwaigani: :~/go/src/github.com/juju/juju$ (cd ~/go/src/launchpad.net/juju-core/ && bzr diff -r ancestor::parent) | patch  -p0 --merge03:09
thumperwaigani: so I did this from the juju branch03:10
thumperit assumes that the branc in juju-core does indeed have the parent branch set to trunk03:10
thumperI had three merge conflicts03:10
thumperall imports03:10
thumperhmm...03:13
thumperick03:13
thumperminimumunits_test.go:21:03:13
thumper    s.ConnSuite.SetUpTest(c)03:13
thumperexport_test.go:115:03:13
thumper    c.Assert(err, gc.IsNil)03:13
thumper... value *errors.errorString = &errors.errorString{s:"cannot create log collection: local error: bad record MAC"} ("cannot create log collection: local error: bad record MAC")03:13
thumperintermittent failure03:13
thumperanyone know a way to do the equivalent of 'bzr clean-tree' ?04:01
thumperI have some untracked files created due to merge conflicts (I think)04:02
waiganithumper: sorry just saw your message04:02
waiganithumper: I get an error04:02
waiganipatch unexpectedly ends in middle of line04:02
waiganipatch: **** Only garbage was found in the patch input.04:02
waiganihere's my diff: http://paste.ubuntu.com/7584825/04:02
thumperwaigani: look at the output of your diff by piping to less rather than patch04:02
thumperum...04:03
thumperyeah04:03
thumperyou have colour there04:03
waiganithumper: I just piped my diff to pastebin04:03
thumperright04:03
thumperyou have made diff give colour04:03
thumperpatch can't handle that04:03
waiganiI have? hmm don't remember doing that04:04
jimmiebtlr__Believe there is a clean subcommand in git04:04
thumperjimmiebtlr__: ok, so I didn't need this? git status -s | grep "^??" | cut -d " " -f 2 | xargs rm04:08
jimmiebtlr__no04:08
thumperyep, looks like git clean would do what I want :-)04:09
thumperwaigani, menn0: https://github.com/juju/juju/pull/604:13
menn0thumper: do you want us to redo our review comments or just LGTM it?04:14
thumpermenn0: I addressed the review comments in the old review thingy04:14
thumpermenn0: should be OK to lgtm it04:14
menn0thumper: ok. I'll quickly check the old review and approve04:15
thumpersure04:15
menn0thumper: done04:17
menn0waigani: have you got a bzr alias for diff to cdiff ?04:20
waiganimenn0: not that I know off04:20
thumperwaigani: bzr alias04:20
waiganiI just added a comment on thumper's branch. Do I want to "add a line note" or not?04:20
thumperwaigani, wallyworld: now I have a question...04:21
wallyworldyes?04:21
thumperit seems to me that we want relatively clean commit logs04:21
thumpernow I have one big commit04:21
waiganihey I do, menn0 yes you're right04:21
thumperand one review comment about changing one line04:21
thumperideally I'd like to clean up the one line04:22
thumperbit it will then be in the commit history04:22
thumperand given how git handles logs differently04:22
thumperdo we care?04:22
thumperor more importantly:04:22
thumperwhat is our process around this04:22
thumperbecause it will happen a lot04:22
wallyworldi think if the change you make relates to a review comment, perhaps it should stay in the logs?04:22
menn0waigani: yeah, cdiff doesn't check to see if stdout is a terminal or a pipe and always emits color escapes regardless04:22
thumperwallyworld: more a "tidy up this line" nothing really log worthy04:22
wallyworldthat was the original thinking anyway04:22
wallyworldi think perhaps it's a case of "do the right thing"04:23
wallyworldif just cleanup, then squash04:23
thumperwallyworld: how?04:23
menn0even easier: amend04:23
wallyworldrebase -i ?04:23
wallyworldnot sure04:23
menn0fix the line04:23
menn0then: git commit --amend04:23
thumpermenn0: ta04:24
* wallyworld makes a note to add that to doc04:24
menn0sorry, left out the "git add"04:24
* wallyworld misses bzr already :-(04:24
menn0--amend just allows you to make changes to the last commit and/or edit the commit message04:24
menn0useful when you forgot to include a file or realised you mistyped the commit message just as you hit enter04:25
thumpermenn0: git commit -a --amend?04:25
menn0that works too :)04:25
thumpermenn0: however this branch is being reviewed...04:26
thumpermenn0: so how does that work?04:26
thumpergiven that we are changing public history04:26
menn0that branch only exists in your personal repo04:26
menn0so I don't think it matters that much04:26
menn0but i'm not sure what exactly will happen if you push again04:27
* menn0 thinks thumper makes an excellent lab rat04:27
thumperheh04:27
menn0I think the "right thing" will probably happen but let's find out for sure04:27
thumpermenn0: ok git master: how do I get a local diff vs upstream/master?04:28
thumperwallyworld: add that to the docs too04:28
thumperwallyworld: when he says it04:28
* thumper waits04:28
* thumper waits impatiently04:28
menn0git fetch upstream04:28
menn0then04:28
* wallyworld taps fingers04:28
thumpermenn0: git status tells me I am up to date with upstream/master already04:29
thumpermenn0: what is the difference between fetch and pull?04:29
menn0git diff @{u}..04:29
menn0I think04:29
thumperand the two dots?04:29
* menn0 is not a git master04:29
thumpermenn0: well that did something04:30
menn0shorthand for a range04:30
axwthumper: "In its default mode, git pull is shorthand for git fetch followed by04:30
axw       git merge FETCH_HEAD."04:30
thumperand it kinda looks like a diff04:30
thumperaxw: ah... good to know04:30
menn0<something>.. is the same as <something>..HEAD04:30
jimmiebtlr__there is also git diff04:30
axwfetch brings down the commits, pull does that and merges into your working tree04:30
* thumper likes having git capable folks to ask04:30
* menn0 thinks thumper didn't read what I wrote04:31
menn0git fetch04:31
menn0then git diff04:31
thumpermenn0: capable != master04:31
thumpermenn0: but you are more capable than me04:31
thumperand master status is in the eye of the beholder :)04:31
thumpersays the git pleb04:31
menn0much of the stuff I've written about git today, I learned today!04:32
menn0all the "upstream" stuff anyway04:32
thumpermenn0: needed to --force the ammended commit04:37
thumper:)04:37
menn0thumper: ok. I guess that's kinda expected. does the branch look right on GH?04:37
thumperthe comments are handy too04:37
thumperthe comments say "waigani commented on an outdated diff 12 minutes ago" with a "show outdated diff" link04:38
* thumper nods04:39
thumperlooks ok04:39
* thumper does the $$merge$$ thing04:39
thumperI wonder if this'll work04:39
waiganiman I'm so outdated ...04:40
menn0thumper: the way GH handles updated diffs is nice, keeping track of previous versions and all that04:41
thumperyay, jujubot grabbed it04:41
thumperalthough I want a better picture than mgz04:41
thumperwe should have a robot pic04:41
menn0I was thinking the same04:41
menn0although mgz is kinda robotic...04:41
menn0in a coding machine kind of way04:42
waiganithumper: you might like: git config merge.conflictstyle diff304:48
waiganithumper: it'll give you the <<<<<<< ======= inline markers for conflicts04:49
waiganimenn0: what is your preferred way of handling conflicts?04:51
menn0I just use the default but diff3 is sometimes nice too04:52
menn0some people like to get git to invoke an external merge tool like kdiff3 or meld but I usually prefer to handle it in my editor unless it's really hair04:53
menn0hairy even04:53
menn0the merge.tool config option lets you set one of the many supported tools to invoke in the event of merge conflicts04:54
jcw4I just issued a pull request for a very small change in the README.md...05:20
=== menn0 is now known as menno0-afk
jcw4In it I replaced a recommendation to do bzr pull with a recommendation to do 'git pull --rebase' to pull in upstream updates05:20
jcw4I haven't heard any discussion about git pull --rebase when pulling in from master but I don't think that will be controversial05:21
jcw4(presumably no-one will be making commits in their local master branch, so it should be moot)05:22
jamsinzui: given that the conversion to git was lossy (something all non-mainline revs were stripped), we want to not just override our existing lp:juju-core branch with a git import. I suppose we could just move it off to the side?05:23
jcw4fwereade: I guess you're the pool 1 reviewer :-D  -  https://github.com/juju/juju/pull/705:26
jcw4axw: thanks05:40
axwno worries05:40
axwwallyworld: another one sorry, https://code.launchpad.net/~axwalk/goamz/ec2test-runinstances-availzone/+merge/22198205:47
wallyworldsure05:48
wallyworldaxw: so it's only the one file changed? no tests?05:52
axwwallyworld: right. there were no tests. I could add one, but it seemed a bit against the theme of the existing tests. I'm adding one in juju (that's how I found it)05:53
wallyworldoh ok, ta05:53
wallyworldaxw: done05:57
axwwallyworld: thanks05:58
axwsimple review anyone? https://github.com/juju/juju/pull/506:01
jamaxw: do you know what the "Comment": "null-185" stuff is ?06:06
jamaxw: also, there appears to be a bunch of stuff about Godeps/_workspace that we probably don't actually want06:07
jamI don't *think* we want to end up with double copies of all dependencies, do we?06:07
jamaxw: at least it looks like godep wants to take over your GOPATH and auto-insert Godeps/_workspace as part of GOPATH, instead of working "as normal"06:09
jamso I *think* we actually need more discussion about how Godep is actually going to work with our system, since it isn't just a drop-in replacement06:09
axwjam: sorry walked away for a bit. where's the Comment?06:17
jamaxw: https://github.com/juju/juju/pull/5/files#diff-681659ab9abb4b4883e78e8aaa980dbaR1006:17
axwjam: ah, no idea. also, I misunderstood the workspace. I think you're right, let's hold off for now06:21
jamaxw: what is the equivalent of marking an MP as WiP ?06:22
axwjam: there are no state for PRs. you could add a label, or just a comment06:23
jamaxw: is there a "rejected" or "closed" so that other people don't try to review it?06:23
axwnope06:24
jamaxw: yep, you can "Close" link06:24
jamwhen commenting06:24
axwsorry06:24
jamand it goes to Closed without merging.06:24
jamSo you don't have quite the "please resubmit this" niceness, but you can put that in the comment.06:25
axwthat seems like a reasonable equivalent06:25
axwit'll disappear off the active PRs until that person reopens it06:25
jamyeah06:25
dimiternmorning all06:36
jammorning dimitern06:54
voidspacedammit, so my change didn't fix trunk - but it looks like that's only because it isn't waiting long enough for status to return successfully08:09
voidspacemorning all08:09
axwmorning08:14
axwsinzui: any particular reason why CI is using m1.xlarge, and not m3.xlarge? m3 is faster and cheaper. AFAICT, no downside08:21
axwmgz: ^^ is it worthwhile me changing in the build script, or do you think you'll have the HP instance plugged in soon?08:23
axw(changing in the build script for the lander, only)08:24
=== vladk|offline is now known as vladk
dimiternjam, perrito666, others? I migrated my networks constraint branch to github, already approved on rietveld - just a final look?09:25
dimiternhttps://github.com/juju/juju/pull/909:25
jamlooking09:25
jamdimitern: lgtm09:29
dimiternjam, thanks!09:29
davecheneyhttps://github.com/juju/juju/pull/1009:30
davecheneyi dunno if we're using godeps anymore, but this fixes 132570709:30
davecheney#132570709:30
davecheneyno _mup_ ?09:30
dimiternbug 132570709:31
dimiternyep it's gone09:31
dimiterndavecheney, LGTM09:31
dimiterndavecheney, yes, we're still using godeps09:31
* dimitern really misses bzr pipelines in git 09:32
davecheneydimitern: ta09:34
davecheneyso $$merge$$ will submit this09:35
natefinchmorning all09:35
davecheneywill it also run a jenkins build that I can see if 1325707 is fixed ?09:35
natefinchdavecheney: you need to go to https://github.com/orgs/juju/members and set yourself public09:35
davecheneynatefinch: ta09:35
davecheneydone09:35
davecheneydo I need to recomment ?09:36
natefinchas does dimitern and fwereade and vladk and rogpeppe and sinzui and voidspace and some people not online09:36
dimiternnatefinch, cheers, just did09:36
natefinch:)09:37
natefinchdavecheney: no idea09:37
natefinchdavecheney: probably can't hurt09:37
dimiternnatefinch, no need - "Status: merge request accepted. Url: http://juju-ci.vapour.ws:8080/job/github-merge-juju"09:37
dimiternand i haven't recommented09:37
natefinchcool09:37
davecheneywhee!09:38
dimiternit's sooo much nicer to see the progress of the merge09:38
natefinchyep09:39
davecheneypoop, timed out09:39
jamdimitern: it is, though having it take 4x longer is a bit of a bad tradeoff09:39
davecheneydoes it really have to download every single dependency every time09:40
davecheneythat is going to make the build super fragile09:40
davecheneyespeically when there are redirectors involed09:40
jamdavecheney: it bootstraps a brand new image to run the tests on everytime09:40
jamthey could potentially seed it09:40
dimiternjam, yeah, I think some initial steps can be optimized09:41
natefinchso, why does the new CI system run on different computers than the old CI system?09:41
natefinchwhy can't we just use the same ones, if they worked better?09:42
jamnatefinch: a different group of people set it up, and it uses different infrastructure (run by Jenkins, because Tarmac can't run against Github)09:42
natefinchjam: oh, right, this is the landing bot not CI per se... right09:42
jamnatefinch: I *think* the idea was to enable us to get to a point where we could actually run several test suites in parallel against multiple new machines09:42
jamnatefinch: well, the landing bot is now running like CI09:42
natefinchjam: right09:42
jamrather than running as a dedicated landing machine.09:43
jamnatefinch: anyway, I think they might have been trying to make it so that gccgo and golang go would run in parallel, and maybe run multiple arch's09:43
jamnatefinch: personally, the decrease in cycle time (how quickly can we land code) is a pretty major thing, which I've been bringing up as they wanted to increase what we do pre-commit. But others may not see the same.09:44
jam15min was a bit long already09:44
davecheneygo build github.com/juju/juju/...09:45
davecheney+ export JUJU_NOTEST_MONGOJS=109:45
davecheney+ JUJU_NOTEST_MONGOJS=109:45
davecheney+ export GOMAXPROCS=109:45
davecheney+ GOMAXPROCS=109:45
davecheney^ who did this09:45
davecheneyit's not wrong09:45
davecheneybut not right either09:45
jamI *think* wallyworld et al are trying to get the test suite to be stable enough to run in parallel. While we can't run any given package test in parallel (because lots of tests mutate global state and then set it back again)09:45
davecheneythe correct line occurs just after it09:45
davecheneygo test -p 1 ./...09:45
jamI'm really surprised we're running the test suite with JUJU_NOTEST_MONGOJS=109:46
jamdid we lose running on Precise, too ?09:46
davecheneythat is needed when using juju mongodb package09:46
jamdavecheney: yes, but we should be using mongodb-server on Precise, and we should be running the test suite on precise because if it is going to break *somewhere* it would be there.09:51
jamthat, and it isn't actually needed anymore as if the test suite notices it is using juju-mongodb it sets it automatically09:52
voidspaceyay, after updating filters for github I'm down to 34 emails in my inbox instead of 15109:54
axwdavecheney: indeed, GOMAXPROCS shouldn't be there. I'll take it out09:55
axwjam: I think it's trusty atm. mgz will be looking at changing us from an ephemeral to a nailed-up instance (maybe with start/stop by jenkins? not sure). should be simple to go back to precise then09:56
axwas for JUJU_NOTEST_MONGOJS ... not sure why that's in there09:57
axwpossibly cargo culted09:57
voidspacenatefinch: hello nate, you're on early today09:59
natefinchvoidspace: I'm usually up by now, just often hiding :)10:00
voidspacenatefinch: heh, sensible10:00
voidspaceI've just "gone public"10:00
voidspaceat least as far as the juju-team goes10:00
voidspacenatefinch: soooo... the commit yesterday *didn't* fix the build10:00
voidspacenatefinch: *but*10:01
voidspacenatefinch: I think that's mostly because of a mistake on my part10:01
natefinchok10:01
* natefinch refrains from smashing his forehead on his keyboard for now10:01
voidspacenatefinch: when I switched from waiting for CurrentStatus instead of CurrentConfig I left it at only waiting 5 seconds10:01
voidspacebut we know that status can take longer than that, I meant to increase the time10:01
natefinchright, which we know might not be long enough10:01
voidspacethe *good* news is that the error changed10:01
voidspaceinstead of "Closed explicitly" it looks like the Refresh worked and we now get a sensible error message10:02
voidspaceI'll go copy & paste in a second, but now it basically says "initiating, be ready shortly"10:02
voidspaceso really it's good news10:02
voidspacewrapped up as bad news10:02
voidspace2014-06-04 09:23:45 WARNING juju.replicaset replicaset.go:77 Initiate: fetching replicaset status failed: cannot get replica set status: Received replSetInitiate - should come online shortly.10:03
natefinchthat does sound good10:04
voidspacenatefinch: so my bad, but I'm hopeful that *one last attempt* really should solve the problem :-)10:04
natefinchThat also sounds like an error we should handle explicitly in that code10:04
voidspacenatefinch: instead of warning?10:04
voidspacewe have to do a string comparison unfortunately10:04
natefinchI know that blows, but if there's an error that we actually understand and can handle programmatically... we should do so10:05
voidspaceok10:05
voidspacewe do that for unreachable members in the same block of code, so it's straightforward enough10:05
voidspacenew mp coming in shortly when I straighten out my git workflow10:05
voidspaceheh, pr instead of mp I guess10:06
voidspaceneed to straighten my terminology too10:06
voidspacenatefinch: on another topic, did you get an email from me this morning?10:06
natefinchvoidspace: oooh, keynote, huh?  awesome! :)10:08
voidspacenatefinch: yeah, should be good10:08
voidspacenatefinch: I'm going to work with bloodearnest on a good demo and do a practise run at PyCon UK10:08
jammgz: wallyworld: another question on the bot. I believe that I see it does proper "always generate a merge even when you could Fast Forward", I just wanted to check if that was really tue.10:09
jamtrue10:09
natefinchvoidspace: cool cool10:09
jamvoidspace: well, CL from Reitveld, even10:09
voidspacejam: has lbox been updated for git?10:10
* voidspace needs to read the updated CONTRIBUTING doc10:10
jamvoidspace: we don't use lbox anymore, AFAICT10:10
voidspaceok10:10
jamvoidspace: you push up your branch, and do a PR against master10:10
jamno more reitveld10:10
voidspaceI won't miss it terribly10:10
voidspacejam: right, I've already done the PR dance once10:11
voidspacefor a one line change...10:11
voidspacebut I think I managed to commit to the wrong branch in my github fork - so I need to delete and start again (well I probably don't *need* to, but it's the path of least resistance at the moment)10:11
natefinchmgz: do we have something running the go fmt precheck at least?10:12
axwnatefinch: yes, we do10:12
natefinchaxw: ok, good.  all is right with the world.10:12
axwat least we did before yesterday... I should check it got put back in10:12
axwnatefinch: yep. the pre-push script in juju/scripts gets run by the lander10:13
* axw is sad that he can't link branches and bugs anymore10:15
axwnow I have to remember things10:15
natefinchyou can post a comment with a link to the bug, right?10:16
jamnatefinch: you can set up a pre-push hook to the check script, but it means everytime you want to push out your local changes it will block for 30s10:16
axwyes, I am doing that. I'll need to also link from the bug back to the PR/commit tho10:16
axwkind've a drag10:17
jamI would hope they followed tarmac bot's goal of "just run go fmt ./..., because if we can automatically fix it, no reason to block on it"10:17
jampropose time != push time is definitely != commit time.10:17
natefinchjam: that's a good point... as long as go fmt doesn't error out, just run it10:17
jamnatefinch: yeah, and if it *does* then you have bad code that needs to abort anyway10:17
axwsounds like a good thing to do. I just stuck the script in there so we had *something*.10:18
jamaxw: I like that the check script does stuff like go vet, etc.10:19
jamBut I'd rather do the "takes a while" checks only when I actually am ready to publish10:19
jambecause I like to commit a lot, push a couple of times a day, and propose when its ready10:19
axwjam: it is possible to not run the hooks10:19
* axw rummages around for the command10:19
axw--no-verify10:19
jamaxw: well, having to type "git push --no-verify" every time is a bit wonky10:20
jamI could invert the default and then have to run "git push --verify"10:20
axwyou could have an environment variable or something, and an alias that sets that to RUN_SLOW_THINGS=1 before "git push"10:21
dimiternyou can do git config --global alias.push = push --no-verify10:21
axwah10:21
dimiternthat was one of the very first thing i did - migrating some of my bzr aliases into ~/.gitconfig10:22
dimiternthe other thing i'm trying now is Stacked Git, to see how well it works as a bzr pipelines replacement10:22
jamvladk: dimitern: standup ?10:45
dimiternjam, brt10:46
jamdimitern: I think it is primarily about assembling patches, which doesn't actually assemble branches10:46
axwjam: just had another look at godep, and "godep restore" does update the branches in their usual $GOPATH location10:52
axwjam: not really sure what the workspace is for...10:52
jamaxw: I'm pretty sure that "godep go test" sets GOPATH to Godep/_workspace10:53
axwyes it does10:53
axwso we'd probably not want to do that at all, but rather just "godep restore" && "go test"10:53
natefinchyeah, I think you can run it exactly like godeps10:53
natefinchgodep restore is the same as our godeps -u depedencies.tsv10:54
natefinchI believe... I haven't tried it out yet10:54
davecheneynatefinch: i believe that is true10:55
jamnatefinch: well it fundamentally wants to copy everything into Godeps/_workspace10:55
jamwhich means while it might approximate it, it still does its own stuff in a different way10:55
davecheneyjam: yes, however it will collaps imports when it finds one of those deps also uses godeps10:56
davecheneythis will mean that CI will have less to do to construct an environment to test10:56
davecheneyand will not depend on external sites10:56
davecheneythis will also make life easier for sinzui as the current build-release-tar.bash script can be simplified/removed10:56
jamdavecheney: except we aren't versioning those deps11:00
jamso all the things you're saying still aren't true11:00
jamanyway, maybe we do want to version them, but if that is true, then clearly we actually need to discuss how we need to change to use it.11:01
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
voidspacenatefinch: https://github.com/juju/juju/pull/1211:12
davecheneyjam: i don't know about versioning11:12
davecheneythat sounds like releases and build numbers and stuff11:12
davecheneywhich is orthogonal to the problem I am intersted in, reliable, preproducable builds11:12
natefinchhe means vendor11:12
natefinchI think11:13
davecheneynatefinch: yes, reproducable builds via vendoring11:14
jamnatefinch: I mean "commit it to our tree" which yeah, vendoring is sort of it, though even vendoring could be "github.com/juju/OTHERPACKAGE", which is still different from having it inside your tree committed with the other files.11:14
jamIf we want to vendor, I'm not strictly against it, but it should be decided "we want to vendor" not wedged in because we thought we should use a different godep tool.11:15
natefinchabsolutely11:15
natefinchI'm not sure I want to vendor btw11:15
natefinchactually pretty sure I don't11:16
tasdomashi11:16
tasdomaswhen running `go test -gocheck.vv -gocheck.f=LifeSuite ./...` in /state, I see these log entries:11:17
tasdomas[LOG] 36.85478 DEBUG juju.testing tls.Dial(127.0.0.1:52204) failed with dial tcp 127.0.0.1:52204: connection refused11:17
tasdomas[LOG] 36.85478 DEBUG juju.testing tls.Dial(127.0.0.1:52204) failed with dial tcp 127.0.0.1:52204: connection refused11:17
jamnatefinch: well we've talked about it, and we don't do it *yet*, so we've generally decided not to so far11:17
tasdomasthe tests pass, but are these log entries safe to ignore?11:17
davecheneytasdomas: does the warning fire when you don't use -gocheck.f ?11:18
tasdomasdavecheney, yes, for every test suite that's being set up11:19
dimiternjam, fwereade, natefinch, finalizing networks constraints - https://github.com/juju/juju/pull/13 PTAL11:19
natefinchthere's a lot of crap in the logs even when things work correctly, unfortunately.  these are debug messages, so probably safe tp ignore11:22
natefinchtasdomas: ^^11:22
natefinchvoidspace: see my comment on your PR11:22
voidspacenatefinch: hah, you spotted my deliberate error...11:22
voidspacenatefinch: fixing11:23
natefinchheh11:23
natefinchjust making sure I'm paying attention? :)11:23
=== vladk is now known as vladk|offline
voidspacenatefinch: fixed11:24
jamnatefinch: tasdomas: I believe it is reasonably expected that while starting up Mongo it takes a try or two to get connected. without ".vv" you shouldn't see them. And hopefully we have a "connected to" if we are giving the "connection refused" messages.11:25
voidspacenatefinch: I'm assuming 15 seconds will be enough... (it really should be)11:26
voidspacewe can always bump up maxInitiateStatusAttempts if we need to11:26
natefinchyep11:26
voidspace15 seconds to fail is already a bit of a bump though11:26
voidspace15 *extra* seconds to fail11:26
TheMue*: Have to leave home for about 1h, see you all later11:27
natefinchvoidspace: but failure should be rare11:29
voidspacenatefinch: yep, we didn't see this failure before - so it should be very rare11:30
* perrito666 is informed by github that he has been subscribed to 14 repositories... let the mailing avalanche begin11:38
natefinchhaha11:38
mgzjam: er, I'm an idiot, can you add me back to the owners group on github?11:38
natefinchhahaha11:39
mgzI need to remove myself last...11:39
mgzperrito666: sorry, spam from me11:39
dimiternsorry to be a pest, but a gentle reminder ... jam, fwereade, natefinch, i'd appreciate a review on the following (finalizing networks constraints) - https://github.com/juju/juju/pull/1311:39
natefinchshould we turn off issues if we want bugs in launchpad?11:39
mgztrying to make it so we can't land without the bot actually testing the code11:40
mgznatefinch: probably11:40
mgznatefinch: can you re-owner me?11:40
jammgz: no11:40
mgz;_;11:41
jammgz: I find it funny that your real account (bz2) doesn't have your picture, but your fake one (jujubot) does11:41
mgzyeah, I shall be fixing that11:41
mgzI confused github with an email account dance11:42
jammgz: you are now an owner again11:42
natefinchwhere's the ui for that jam?11:42
natefinchI couldn't find it11:43
jammgz: I take it the idea is to filter down the list of owners, and then just have the bot controlling the official reop ?11:43
jamnatefinch: github.com/juju, click on Members, click on Teams, click on Owners, "add users to team" edit box11:43
mgzjam: yup11:43
jamlooks like you can skip the "click on Members" and go straight to teams11:43
mgzI'm going to leave team leads as owners and see how that works out11:44
natefinchug, ok, I was looking in the list of members not teams11:44
jamnatefinch: so was I11:44
mgzit's a bit more annoying for everyone but should cut out some accidents11:44
jammgz: given I set up lp:juju-core that way, I think you can feel where I fall in that :)11:44
jamthe only question is whether it would block us commenting on PRs11:44
natefinchjam I mean, I didn't know owners was a team and not a role or something11:44
jamnatefinch: sure11:44
mgzokay, *now* I remove myself :)11:45
jamnatefinch: I certainly thought it was just a role that I could change11:45
jamgiven that the members list shows "members" and "owners" directly11:45
jambut I don't think it would show "hackers"11:45
natefinchexactly11:45
jamso it *is* just a team, but it is a github special team11:45
natefinchyeah11:45
mgzyeah, and I can't remove it's access to push a branch, so we all need de-ownering11:46
mgzokay, done11:46
jammgz: so is there any chance to do the same "sudo" trick that we had on LP?11:46
mgzteamlead plz do this for me11:46
jamI know tim and myself would like to not fuck stuff up by accident, only when we really need to11:46
mgzit's not nearly as good11:46
jammgz: I'm more concerned about one of the teamleads accidentally leaving github.com/juju/juju as origin and doing "git push"11:47
mgzwell, I could leave the bot as the only owner, but actually I don't like that as much11:47
jammgz: well we need owners to do membership status, right ?11:47
mgzjam: you'll have to be better than the rest of us and not make mistakes :)11:47
mgzright, you have to be owners really11:48
jammgz: and you can't restrict your own rights... :(11:48
natefinchresponsibility?  I didn't sign up for this11:48
mgzor it's painful to add people/change settings/create repos11:48
jamnatefinch: umm... I think you did :)11:48
natefinchoh, right :)11:48
jamnatefinch: but there is a difference between helping you enforce your own responsibility by intentionally creating boundaries11:49
mgzhm, I still have a big buttom that says merge pull request11:49
jamI'm a big believer in "make it hard to do it wrong"11:49
natefinchjam: me too11:49
jammgz: "hackers have write access"11:49
jamshould I be removing that /11:49
jam?11:49
jamThis team will be able to read its repositories, as well as push to them.11:50
mgznope11:50
jamvs Admin Access: This team will be able to push/pull to its repositories, as well as add other collaborators to them.11:50
mgzwe don't make hackers a team on juju/juju11:50
jamvs This team will be able to view and clone its repositories.11:50
mgzwe need it still for juju/testing say11:50
mgztill we move that to the bot, then we can remove the team from that branch11:50
jammgz: https://github.com/orgs/juju/teams/hackers says "juju/juju"11:51
jamshould I be removing *that* ?11:51
mgzcan you doulbe check, but github.com/juju/juju/settings/collaboration should be owners only11:51
mgzI may have been a bit to automatic with the adding11:51
jammgz: hackers is listed as a team11:51
mgzokay, revoke there11:52
jammgz: and it doesn't let me set perms on team there11:52
mgzjust revoke11:52
jammgz: it seems there isn't an many-to-many relationship that we want11:52
jam"hackers" should have X access on Y project11:52
mgzI may need a bots team, which will be on those branches11:52
jamroveked11:52
jamrevoked11:52
mgzif fact, I think I'll do that just in case11:52
mgzoh, poo11:53
mgzjam: can you reowner me for now... I'll revoke myself later11:53
jammgz: I keep telling you, that's not gonna happen11:53
mgzotherwise I'll keep having to bug you when I screw up >_<11:53
jammgz: ownered11:53
mgzta11:53
jammgz: did you see your "merge this" button go away, at least?11:54
mgzah, let me check via another cunning method11:54
jama second account?11:54
mgzyes, it does11:54
mgzthe bot is not yet granted on most branches11:54
jammgz: I don't actually see the "jujubot" account11:55
jammgz: Is it a full fledged github account, or is it a 'something that has my credentials' account?11:56
mgzgithub.com/jujubot11:56
jamah, there it showed up11:56
voidspacenatefinch: should I add the $$merge$$ magic comment?11:57
mgzokay, this is looking good now11:57
perrito666mm, there seems to be no doc for HA11:58
natefinchvoidspace: yep, after the LGTM, you can do the $$merge$$ ... basically the same as before where you'd set the commit message and mark it as approved11:59
voidspacenatefinch: yeah, done - thanks12:00
voidspaceperrito666: I believe we have a card for that12:00
perrito666voidspace: I am working on it, but as the card said "update HA docs" I assumed there was something to update :p12:00
voidspacehah12:00
voidspacewhy would you assume that? :-D12:01
perrito666I am a hopelessly naive guy12:01
natefinchperrito666: I'll change it to upsert ;)12:02
voidspaceLooks like that branch is building. Should know whether or not the build is fixed in about an hour or so.12:05
voidspaceIn the meantime12:06
* voidspace lunches12:06
=== vladk|offline is now known as vladk
jamdimitern: I do have it open for review12:18
dimiternjam, thanks12:20
=== psivaa is now known as psivaa-lunch
jamlifeless: so I tried just doing "dd" of the ubuntu.iso image. and it comes out with a filesystem that is: /dev/sdg1   *          64     1986559      993248   17  Hidden HPFS/NTFS12:22
jamwhich does have the "boot" flag set12:22
jambut my old machine doesn't recognize it as actually being bootable.12:22
jamwhich is why http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-ubuntu has you use startup disk creator12:22
natefinchstartup disk creator used to 100% reliably fail last time I tried it (about 6 months ago)12:23
natefinchwhich is why I always used dd12:23
natefinchwhich 100% reliably worked12:24
jamnatefinch: interesting. I think it works because of a newer Bios than my circa 2003 machine12:24
jamnatefinch: so when I first tried, it kept failing, but that was because you have to create the partition and boot flag, etc, manually, and it just copies what you need onto the disk12:25
jamwell, usb stick12:25
jamit doesn't seem capable of handling no media/bad filesystems12:25
natefinchstartup disk creator may make a better image... but I couldn't ever get it to actually finish creating anything, so never got to try what it output12:25
perrito666jam: I agree, dd should work just fine12:26
natefinchjam: for me, dd of the image onto the usb stick worked fine as-is12:26
jamperrito666: I can absolutely confirm it does not :)12:27
jamas in, I just tried it12:27
jamand USB doesn't show up as bootable12:27
natefinchjam: but I was putting it into a new computer, so maybe your old one needs something more specifically set up12:27
perrito666jam: the machine I am chatting with now was installed by using a dd usb12:27
perrito666try unetbootin12:28
natefinchperrito666: his machine is oooooold.  So, who knows what people were doing with USB bootable disks in 200312:28
jamperrito666: sure, I bet it does work (sometimes), I can just confirm that it doesn't work here12:28
perrito666try a cd :p12:28
natefinchI'm honestly surprised a 2003 machine even has that capability12:28
perrito666natefinch: that capability is quite old, but before was not mentioned as "boot from usb" but as "hey this seems to be a drive, boot from it?"12:29
jamperrito666: well I could, but I disconnected all the CDs in this thing. I could get there eventually, but fdisk a fat32 partition seems to be workable12:29
jamnote there's stuff like "what is the byte offset of the first partition"12:30
wwitzel32003 .. probably has multiple LPT ports12:30
jamand what is the master partition table12:30
perrito666:|12:30
jam(GPT doesn't work here)12:30
jamwwitzel3: I only have 1 LPT, but I have 2 COM ports12:30
perrito666jam: unebootin wont create something bootable?12:30
jamI haven't tried unetbootin12:31
jamI'm just using upstream ISO/Startup disk creator.12:32
perrito666jam: do you have network and floppy? if so you can create a debian net install disk, install, change the repos and upgrade, I think that ... lets say works12:32
jamperrito666: so fdisk in "dos compatible mode"12:32
jamcreating a primary partition at byte 6312:32
jamset it bootable12:32
jamset it as a Fat32, seems to create something that will actually boot12:32
jambut I get to "Operating System Not Found" which doesn't seem helpful :)12:33
jamit worked two days ago12:33
jamI tried "dd" to see if I was just going the long way round12:33
jamweird, QEMU was happy ,but now my system is not12:34
perrito666jam: maybe this is a stupid question12:34
perrito666what size is your pendrive?12:34
jamperrito666: 16GB12:34
perrito666jam: do you have something smaller to try?12:35
jamnot on hand, and it did work a couple days ago12:35
perrito666meh12:36
jamperrito666: note, dd did seem to work on the 64 bit ISO, but it booted and said "this is not a 64-bit system, download the 32bit instead" :)12:36
perrito666well, is it?12:36
perrito666btw, is a machine that old usable with a newer ubuntu¿?12:38
jamperrito666: again, I was using it for a while, I just wiped it to see if I could dd it12:38
jamso yeah, it is a 32 bit machine12:42
jaminteresting, byte 63 really did matter12:43
jamI tried again with the default offset (byte 32) and it failed to detect it as bootable12:43
perrito666jam: that is sector iirc12:47
* TheMue is back after helping his wife buying more and larger plants for our garden12:51
perrito666TheMue: sweet, that means better air to breathe12:51
jamperrito666: sure, I just mean you have to know the magic 63 or it doesn't work, and it doesn't default to the right magic value12:52
perrito666jam: fdisk defaulted to that magic value when your machine was new :p12:52
jamperrito666: yeah, and now it is actually a bad one because of sector alignment, etc.12:53
TheMueperrito666: exactly, it fine recreation in the garden12:53
TheMues/it/and/12:53
jamwhy can I not reproduce what worked 2 days ago...12:57
perrito666jam: welcome to sinzui's world12:58
TheMue*lol*12:59
perrito666even with the properly partitioned stick you cannot boot?12:59
sinzuiperrito666, jam , speaking of 32bit. If I installed i386 go libs and tools on an amd64 instance, would this machine be valid to run unittests and build i386 juju?13:01
jamsinzui: davecheney is the one to ask that: http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go13:02
sinzuiWe are moving away from cross-compiling13:03
sinzuiI make win32 juju by installing 32bit golang on 64bit server.13:04
sinzuithe real issue is I cannot get an i386 machine that is powerful enough to run unittests and deliver a binary in 30 minutes13:04
jamsinzui: interesting, I'm ~ ok with using an amd64 in 32-bit mode and going with that13:13
jamI have a small concern that it won't notice if we accidentalyl give it a 64-bit binary and fail to test 32-bit at all13:13
jamcould we run some level of smoke test on a real 32 bit ?13:13
sinzuijam, I was thinking of a jenkins slave to act as an i386. After I apt-add-architecture, I change the tests setups to honour it. I would then use the i386 slave to run unit tests, build the binary packages, install, then run lxc tests.13:15
sinzuiI think I need i386 juju-mongodb too13:15
natefinchsinzui: 32 bit go on a 64 bit windows should run almost identically to 32 on 3213:20
sinzuialmost? don't say that that way13:20
sinzuinatefinch, maybe I don't care. Win users do report bugs, and they are not reporting bugs about the client.13:21
natefinchsinzui: it's only almost in that there are file system and registry differences on 64 bit machines, but those are likely things we'll never run into unless we explicitly do some wacky stuff13:22
jamnatefinch: sinzui: so I think the test suite on 32bit is fine, it is just that we could screw it up and not realize we were missing test coverage.13:22
sinzuiokay, thank you natefinch. I will try to remember that13:23
jam"test suite in 32-bits on a 64-bit machine"13:23
natefinchsinzui: basically, the registry on a 64 bit windows also has a segregated 32 bit section... the two normally never realize they're segregated unless you specifically write code to go looking for the other section13:24
voidspacestill building13:25
natefinchvoidspace: since an hour and a half ago?13:25
voidspacenatefinch: I think one was already in the queue13:26
voidspacenatefinch: so yes, not merged yet as far as I can tell13:26
=== psivaa-lunch is now known as psivaa
natefinchahh yeah, single threaded, right.13:27
voidspacenatefinch: yeah, build 10 has been going for 50 minutes13:27
natefinchSeems this is something we're going to have to address sooner rather than later13:27
sinzuijam: natefinch voidspace : I am setting up dedicated slaves to provide better testing and build resources next week. I will try to provide one for the lander bot to test merges quickly13:28
voidspacesinzui: great13:28
jamsinzui: given the Canonistack instance was only dual-CPU and 4GB data, why is the ec2 instance too slow for us?13:29
natefinchjam, sinzui: isn't it because we're bringing up the machine from scratch for every test?  Or am I misunderstanding the infrastructure?13:30
mgzjam: it's a minor mystery13:30
natefinch(for every merge perhaps?_13:30
jamnatefinch: I would hope it doesn't take 35 minutes to bring up a new machine13:30
mgzjam: a good protion is that to get the tests to pass we *have* to run with -p 113:30
jamgiven our test suite was running in ~15-20 min13:30
mgzwhich doubles the time taken13:31
natefinchjam: also, EC2 is *notorious* for being slower than the specs people expect from it.13:31
sinzuiyep13:31
jamnatefinch: bad neighbor problem ?13:31
natefinchjam: yeah, basically13:31
mgzmy plan of attack starts with moving the landing test running to another cloud13:31
wwitzel3jam: so the WaitAgentPresence call isn't about actually waiting for anything. In fact, calling it with 1 ns results in the agent status being properly reported, even when doing ensure-availability && ensure-availability13:31
wwitzel3jam: I just used it there because a) the Presence pinger API was already exposed there and b) I couldn't determine a better place to call it.13:32
jamwwitzel3: I don't see how it affects "ensure-availability && ensure-availability" given the agent hasn't even started yet, but I could see "bootstrap && ensure-availability" is that what you meant?13:33
jamI think the issue is that it forces an early watch of the agent status changing13:33
jaminstead of waiting for it to background poll for it.13:33
wwitzel3jam: sorry, yes bootstrap && ensure-availability13:34
jamwwitzel3: so I think what I'd like to see is something called "RefreshAgentState" that doesn't take a timeout and doesn't have to Watch anything, since it just grabs the current value13:35
wwitzel3jam: I see, ok, and the just refactor WatchAgent to use that internally as well13:36
natefinchjam: yeah, we're not worrying about ensure-availaiblity getting called twice right now, since that's less of a valid thing to do than bootstrap and ensure-availability13:36
jamnatefinch: well, given that we said you could run it in cron, it isn't *that* unexpected. however,sure, the patch wasn't about that, I was just making sure I wasn't missing anything.13:39
jamI think the key bit from wwitzel3's patch is that we currently have a mechanism for tracking presence, but it takes a long time for it to actually notice that the machine agent is running, when we want it to trigger as soon as the agent logs in.13:39
natefinchyep13:40
jamIm slightyl concerned about bouncing agents looking up too much13:40
dimiternjam, poke re that PR13:44
jamdimitern: I posted on it, IIRC13:44
dimiternjam, ah, I can see it now, thanks13:44
sinzuinatefinch, jam, mgz, We might need more powerful instances, but giving the git-tester its own queue or resources will prevent it from queuing for 20 minutes while CI and health checks are running13:55
voidspacemerged!13:56
natefinchwwitzel3, perrito666, voidspace I have the TOSCA meeting right now, can we postpone the standup until it's done?  Probably an hour13:59
voidspacenatefinch: fine with me13:59
perrito666natefinch: sure14:00
natefinchI need to reschedule our standup on wednesdays, but gmail makes it tricky14:00
sinzuivoidspace, can I take down the juju env/mongod that is running under ubuntu user on juju-ci?14:01
voidspacesinzui: oh crap14:01
voidspacesinzui: yes - sorry14:01
sinzuino14:01
voidspacesinzui: I thought I destroyed that environment, my apologies14:01
sinzuiproblem voidspace14:01
sinzuivoidspace, you may have. I just see the mongod running14:02
voidspaceI hope that is "no problem" and not "no. Problem!"14:02
voidspaceok14:02
bodie_morning all14:19
=== alexisb_out is now known as alexisb
perrito666hi bodie_14:20
jcw4o/14:20
rogpeppemgz: any chance i could get permissions to create repos in github.com/juju ?14:26
mgzrogpeppe: ah, I haven't sent the email yet14:26
rogpeppemgz: which email?14:27
mgzrogpeppe: maybe, the issue is we can't seperate the right to create a new repo in juju from the right to screw up any branch under juju14:27
mgzwhich is some what accident-y14:27
mgzI'll re-owner you for now, but please comment on the list when I send this notice :)14:28
rogpeppemgz: what comment would you like me to make?14:28
mgzrogpeppe: done.14:29
rogpeppemgz: ta14:29
mgzthat you need to be able to create repos... we can find another way on that, perhaps a role-account all or some of us have access to14:30
dimiternjam, if you're still here and can have a look, I've updated https://github.com/juju/juju/pull/13 as you suggested14:31
rogpeppemgz: that's not a bad idea14:32
bodie_am I the only one getting this problem in state_test?  http://paste.ubuntu.com/7587871/14:33
bodie_It has nothing to do with anything I've touched as far as I can tell14:33
bodie_so I guess that's a yes haha14:37
voidspacelocal-deploy-precise-amd64 has got as far as bootstrapping the juju machine agent14:37
voidspacedammit, failed14:38
voidspaceand for a different reason14:38
voidspacenatefinch: sinzui: latest build failed14:39
voidspaceInitiate: fetching replicaset status failed: cannot get replica set status: can't get local.system.replset config from self or any seed (EMPTYCONFIG)14:39
voidspacenatefinch: sinzui: I'm going to prepare a branch backing out the changes that caused this14:39
voidspaceI don't think we should follow this rabbit hole any further14:39
natefinchvoidspace: ok.  Damn.14:39
sinzui:/14:40
sinzuithank you voidspace14:40
lazyPowerGreetings core team, have any of you seen an LXC failure message akin to the following: http://paste.ubuntu.com/7587937/ - something about LXC not understanding the argument 'trusty' ?14:47
bodie_odd14:50
bodie_lazyPower, are you on Ubuntu?  I had a hell of a time getting everything working properly until I switched my workstation over to 14.0414:50
lazyPowerbodie_: this is our juju flavored vagrant image14:50
lazyPowerso its precise atm14:50
bodie_ah14:51
bodie_well, that's all I've got, hehe14:51
lazyPowerour trusty image seems to be suffering from similiar issues but I don't have enough empiracle evidence to present as to the root cause of the issues yet.14:51
adeuring1lazyPower: well, I see this error for the Juju vagrant image for precise, for example this one: http://cloud-images.ubuntu.com/vagrant/precise/20140602/precise-server-cloudimg-amd64-juju-vagrant-disk1.box14:55
adeuring1The trusty images work fine.14:55
natefinchahhh stupid chrome, man.  Had to switch to firefox to get hangouts to be stable.  That's pretty sad, Google.14:55
wwitzel3ahh, was wondering what you did to fix it14:55
lazyPoweradeuring1: admittedly its been about 2 weeks since i've looked at the trusty box, if the lxc container issues have been resolved - bueno!14:55
bodie_natefinch, lol14:57
wwitzel3natefinch: should we do standup now?14:58
bodie_hrmn15:01
bodie_http://paste.ubuntu.com/7588034/15:01
jcw4bodie_: go get -u github.com/juju/testing/...15:01
bodie_ah... derp15:02
bodie_that's weird though since I did a go get github.com/juju/juju  -- ah, maybe I left off the /...15:02
bodie_yep, looks like that's doing it15:03
jcw4bodie_: I avoid go get -u github.com/juju/juju because I don't want go get to overwrite my personal repo at that location.15:03
jcw4bodie_: I don't think it will with git, but still...15:03
bodie_I had the same concern but I was able to immediately re-checkout my own branch, so I don't think there was an issue15:04
bodie_hopefully this will do the trick15:04
natefinchwwitzel3: yep15:05
natefinchvoidspace, perrito666: standup15:05
perrito666natefinch: going15:06
bodie_and all tests are green!  BOOYA!15:06
natefinchnice15:07
voidspacenatefinch: https://github.com/juju/juju/pull/1415:15
sinzuiI know know what the powerpc debs are. They are the 32bit debs for ppc64el vms. We don't make juju tools for the arch, we could if the ubuntu in ubuntu on ppc64el envisions running juju inside it15:16
bodie_polishing my nonexistent git rebase skillz: does anyone know if it's possible to use multiple commands per commit?15:26
bodie_e.g. squash AND edit15:26
bodie_I figured it would just be something like s,e15:27
bodie_also, this might be worth looking at (natefinch?) http://paul.stadig.name/2010/12/thou-shalt-not-lie-git-rebase-ammend.html15:29
bodie_personally I've always used the branch-and-merge-prolifically approach, which might have a more "honest" but noisier / less human readable history15:30
mgzsinzui: what's the oldest version of go the jenkins infrastructure compiles juju with?15:43
sinzuimgz, 1.1.2 used by precise and saucy15:44
sinzuimgz, oh and the win client15:44
mgzsinzui: are we planning to change this for the current dev release?15:45
mgzyou had a newer version compile yourself, right?15:45
sinzuimgz, the juju-packaging/devel ppa is building only with 1.2.15:46
mgzsinzui: I guess I'd better take it to the list, but would like to make 1.2 the minimum for trunk15:47
bodie_https://github.com/juju/juju/pull/1515:59
bodie_^_^15:59
sinzuimgz, well I think that is doable since I backported 1.2 to precise. None of the 1.19.3 bugs imply a compiler issue. I can promote my package to the stable archive for 1.20. *BUT* We need foundations to accept golang 1.2 into ctools to really make the transition15:59
perrito666anyone remembers what was the outcome of the discussion about writing the docs as markdown (or anything other than plain text)?16:05
voidspaceperrito666: I *thought* we all agreed on markdown16:05
voidspaceperrito666: it's pretty plain-text-ish anyway16:06
perrito666I thougt so too16:08
mgzsinzui: bash help, github-merge-juju/12 failed at the build step but the way I'm calling into the build script didn't get me an exit code to report the failure, it just aborts the job16:25
* sinzui looks16:26
sinzuimgz, I think you are saying that the script should get to "echo "Build failure, reporting on proposal""16:28
mgzright, but source is wrong16:28
mgzit goes and executes as top level, right?16:28
mgzthat whole block is kinda horrid16:28
sinzuimgz make-release-tarball.bash is setting -e and the script is sourcing16:29
* mgz <3 sh16:29
sinzuiI think we ca avoid the use of source16:29
mgzokay, yeah, that'd do it16:29
mgzI tried to do it with a || { ..block.. } rather than fiddling with -e but no joy on the syntax16:30
sinzuiI try to avoid sourcing because of that. I see the job knows how to find the tarball16:30
sinzuimgz, may I rebuild to get the proper error?16:30
mgzyeah, just add $$merge$$ on the mp16:30
mgzdave won't mind the spam :)16:31
sinzuimgz watching http://juju-ci.vapour.ws:8080/job/github-merge-juju/13/console16:31
mgzta16:31
mgzthat worked. thanks sinzui!16:36
sinzui:)16:36
voidspacenatefinch: when I merged your write-majority code I created an mp that I forgot to mark as WIP16:47
voidspacenatefinch: so there was some interesting discussion on it :-)16:47
voidspacenatefinch: https://code.launchpad.net/~mfoord/juju-core/write-majority/+merge/22082316:48
voidspacenatefinch: part of the problem, which I forgot to mention during standup, is that setting the write mode doesn't return an error16:48
voidspacenatefinch: so you can't use *that* to detect whether there's a replica set or not16:48
voidspacenatefinch: I'll have to find some analagous operation that does nothing (e.g. replicaset.CurrentConfig() ) but returns an error when there's no replica set16:49
mattywIs someone able to spare a few moment to talk about how we test long running commands in core?16:53
natefinchvoidspace: ahh, dang.  So you can set write majority and it won't error out... what happens?16:53
voidspacenatefinch: I think everything after that errors :-)16:54
voidspacethat's what I was seeing in tests16:54
natefinchhaha16:54
voidspacewith the noreplset error we saw16:54
voidspaceor whatever it was16:54
voidspaceno, I think session.SetSafe panics with that error16:55
voidspacesomething like that16:55
voidspacehooray for no exceptions!16:55
voidspacenatefinch: I'll sort it out, not a problem16:55
voidspace natefinch I got an LGTM from jam on my revert PR, so I've gone the magic merge message16:58
natefinchvoidspace: cool16:58
natefinch(sorta)16:59
voidspaceheh16:59
voidspacejujubot is quick16:59
mgzTHANK YOU17:00
mgzbeep beep boop17:00
voidspacemgz: heh :-)17:00
voidspaceno, thank you (I assume)17:00
voidspaceit noticed my magic-merge-message within a few seconds17:00
jcw4mgz: they said you were a machine... didn't realize it was literal17:00
mgz:)17:02
bodie_that sounds like a reference to a bad B sci fi flick17:02
bodie_"My masters built me to be the perfect merge resolver.  Now I must kill all humans."17:02
jcw4quick... someone feed the merge bot a bad whitespace merge... that oughta save mankind17:03
alexisbjam, what networking spec are you and dimiter currently using?17:05
alexisbI should say working off of17:05
voidspacenatefinch: specifically: ... Panic: cannot create database index: norepl (PC=0x414676)17:08
jamalexisb: so *right* now Dimiter is working on fixing up what was discussed with Mark S, about not having "juju deploy --exclude-networks" but instead making it a constraint (juju deploy --constraints=network=^foo"17:08
jamI'm trying to find the concrete doc on that17:08
natefinchvoidspace: man, not sure who's panicking there, but that's terrible17:08
jamthe other actions being worked on are toward: https://docs.google.com/a/canonical.com/document/d/1XZN2Wnqlag9je73mGqk-Qs9tx1gvOH0-wxMwrlDrQU4/edit#heading=h.h1grzzgqa6st17:08
voidspacenatefinch: yeah, it sucks :-)17:09
voidspacenatefinch: inside provider/dummy/environs.go I believe17:09
natefinchoh, the dummy provider.... that's our own stupid fault.... quite possibly specifically my stupid fault17:10
alexisbjam, ack, when we get to the point of network modeling work we will need a spec that we can point to that is current and explains the work being done17:10
jamalexisb: so I know of https://docs.google.com/a/canonical.com/document/d/1bHI5ZXbbnGk3xict7d_39ipOcUI2urFVNMKQv1BFlSk/edit and https://docs.google.com/a/canonical.com/document/d/1UzJosV7M3hjRaro3ot7iPXFF9jGe2Rym4lJkeO90-Uo/edit#heading=h.a92u8jdqcrto though I think the actual concrete plan needs to be properly written up.17:10
voidspacenatefinch: it's state.Initialize that returns that error and the dummy provider panics17:11
voidspacenatefinch: but this is long *after* we set the write mode17:11
jamWhich I pointed TheMue towards, but I don't think we've actually started the process of generating the user docs for how we are going to make networking look.17:11
alexisbjam ack17:12
alexisbwe will wnat to have a target date for completion of plan write-up that we can communicate to the interlock group + mark s17:13
voidspacenatefinch: actually, not *long after*, it's probably immediately after17:16
voidspacenatefinch: write majority is set in state.Open, which is called from state.Initialize which is called from the dummy provider17:17
voidspacenatefinch: so it's opening the state (newState) after setting write majority that fails17:17
voidspaceI'll try guarding it with a replicaset.CurrentConfig call first17:17
voidspaceif that errors we won't set write-majority17:18
natefinchvoidspace: ok.... sorry, I had hoped it would be more straightforward, but it seems that's rarely the case when interacting with mongo17:18
voidspacenatefinch: hah, it's interesting - not a big problem17:18
voidspaceat least this one seems solvable17:19
natefinchvoidspace: yep17:19
voidspacenatefinch: guarding setting the WMode with checking the replicaset config seems to work17:23
natefinchvoidspace: ship it!17:23
voidspacenatefinch: well, you say that...17:23
voidspacebut yes...17:23
voidspace:-D17:23
voidspaceis there any way to create a "work in progress" pull request on github?17:26
voidspaceso I can view the diff17:26
perrito666voidspace: sor of17:27
voidspaceperrito666: explain :-)17:27
perrito666voidspace: you can click on pull request button17:27
voidspaceperrito666: right17:27
perrito666and beforre hitting commit17:27
voidspaceperrito666: I'd like one I can share17:27
perrito666you have the diff tab available17:27
voidspaceperrito666: clicking "compare & pull request" shows the diff immediately17:28
voidspaceperrito666: but there's no "diff tab" anywhere I can see ?17:28
perrito666mmm hold I think I remember such feature17:28
voidspaceanother chrome extension perhaps17:29
voidspaceperrito666: once you've created the pull request there's a "files changed" tab that shows you the diff17:30
voidspacenatefinch: so the actual change is quite simple17:30
voidspacehttps://github.com/juju/juju/pull/17/files17:30
voidspacenatefinch: testing it on the other hand...17:30
voidspacea problem for tomorrow morning I think17:31
voidspaceEOD17:31
perrito666voidspace:17:31
natefinchperrito666: the files changed tab has the diffs17:31
perrito666ok, this will sound stupid but I know only how to do this via url17:31
perrito666Idont know how to get there via the gui17:31
perrito666:p17:31
natefinchperrito666: https://github.com/juju/juju/pull/17/files17:31
natefinchtheir "tabs" are pretty subtle17:31
voidspaceyeah, but you only get that by creating a pull request17:32
voidspacethere's no way to specify that it's still a work in progress except by comment (which is what I've done)17:32
voidspace(well - description)17:32
perrito666I found it17:32
perrito666voidspace: on your repo17:32
* natefinch should learn to read the history before jumping into a conversation17:32
perrito666above the list of files17:32
perrito666there is a greyed link, that says compare17:32
voidspaceah yes!17:33
voidspaceperrito666: thank you17:33
gQuigsI'm just curious and couldn't find backstory on the decision to move juju-core from lp to github, anyone know where it took place? (I already tried looking through the ml)17:33
voidspacehttps://github.com/voidspace/juju/compare/write-majority17:33
natefinchgQuigs: basically an order from On Highâ„¢  ... the thought is to make the project more visible, and lower the barrier of entry for external contributors, since most people are more familiar with git and github than bzr and launchpad17:34
perrito666https://github.com/voidspace/juju/compare/juju:master...voidspace:backout-replicaset-changes17:34
voidspaceperrito666: yep, thanks - that's helpful17:35
perrito666we might want to ship that little piece of advice in the code17:35
perrito666s/code/doc17:35
gQuigsnatefinch: oh.. understood..  was adding git support to lp looked at? - or was the complete package important?17:35
voidspaceright, really EOD17:36
voidspaceg'night all17:36
natefinchgQuigs: it was more the whole package and the fact that more eyes are on github, and we wanted more eyes on juju development17:42
gQuigsnatefinch: got it, thanks for explaining17:54
jamalexisb: good job keeping it right at 30min18:02
alexisbthere are some things that people need to go off and investigate18:03
alexisbso it made since to keep is to the time18:03
perrito666alexisb: what?18:04
TheMuejam: just seen you mentioned me. is network documentation higher priorized than API?18:08
sinzuigQuigs, We were hearing that Juju wasn't a public project. Of course it is, but people didn't see it on github, they couldn't fork it nor could they make a pull request. github ~= "open source and looking for new contributors"18:08
alexisbperrito666, it made sense to me, can't you just read what I was thinking and not what I actually typed ;)18:12
lifelessjam: heh interesting :(.18:48
sinzuijam, lifeless All the senior people are ex bzr and Lp. I think jcastro is the only exception being 6 years, but from ubuntu19:01
jcastrojam is older, we established that at the sprint19:02
jcastrosorry, I mean "more experienced"19:02
perrito666its pretty clear that jam looks younger than all of us, so hopefully he is19:11
perrito666bbl19:34
bodie_in order to test an unexported method, I should just use the same package name as the tested file, right?19:42
bodie_(is there a better word than file to use in this context?)19:42
natefinchbodie_: that's correct19:43
jcw4bodie_: your test package has to have the same package name as the method19:43
jcw4s/method/method package/19:43
natefinchbodie_: there's only two places you can put tests, either the same package as the rest of the directory, or package_test19:44
natefinchbodie_: we usually call them internal and external tests or whitebox and blackbox19:45
bodie_I see19:45
bodie_and there's no special name for a file besides "file" since multiple types and so forth could be in it19:46
natefinchbodie_: personally, I just put all my tests in the same package a the rest of the directory. there seems to be no actual reason to use package_test unless you want to have example code that looks like what external packages would use (in other words, functions and types namespaced by the package name)19:46
bodie_I see19:46
natefinchbodie_: other people like to use blackbox tests as much as possible to ensure they're testing the API rather than the implementation, which I kind of agree with... except that you can still do that in internal tests, except you have a lot more flexibility to mock stuff out and do more focused unit tests19:47
hazmathey is there a document that maps gemstones to humans ?20:06
natefinchlol20:08
natefinchhazmat: https://directory.canonical.com/list/team/20:08
natefinchhazmat: they're actual teams :)20:09
jcw4natefinch: 403 :(20:09
jcw4:)20:09
natefinchjcw4: haha20:10
hazmatnatefinch, yeah.. see how most of those are instantly recognizable ...20:10
natefinchhazmat: maybe it be better if we prefixed them with "Juju Core - "20:11
natefinchhazmat: we just didn't want "Team 1" "Team 2"20:11
hazmatnatefinch, yeah.. that would help. at least they'd group together..20:11
natefinchalexisb: ^^20:12
natefinchnot sure what the process is to get them changed.  I agree, it would be nice if they were grouped together, and more descriptive20:12
natefinchI actually hadn't expected them to be made into official HR teams20:12
natefinchbut I guess since HR needs to know who's managing who20:13
alexisbnatefinch, I can take care of that20:13
=== vladk is now known as vladk|offline
=== menno0-afk is now known as menn0
waiganimorning all21:17
menn0moring waigani21:17
waiganihey menn0 :)21:17
* menn0 sighs21:17
menn0morning even21:17
* menn0 has had a bad night's sleep (kids) but AC/DC is helping21:17
wallyworld__fwereade: sorry, network issues, will reboot and be there soon21:30
wallyworld__fwereade: thumper sorry, g+ has crapped itself21:45
wallyworld__trying to get back in21:46
=== wallyworld is now known as Guest56344
wallyworld_alexisb: be there in a sec, just finishing another meeting22:29
alexisbme too22:30
alexisbwallyworld_, ^^22:30
wallyworld_alexisb: sorry, here now22:35
alexisbwallyworld_, coming22:35
alexisbwallyworld_, sorry22:39
alexisbstill on another call22:39
* thumper goes to walk the dog and think prior to standup22:40
alexisbwallyworld_, I see you typing22:44
alexisbbut you cant hear me22:44
alexisbwallyworld_, I lost you22:58
=== wallyworld is now known as Guest68975
=== sebas538_ is now known as sebas5384
waiganiso already I've: tried to push to upstream and been working in the launchpad repo when I thought I was in github23:17
waiganisigh...23:17
* thumper heads out for lunch23:54
menn0waigani: I moved my old bzr repo well out of the way to avoid exactly that23:56
menn0waigani: and Tim's tip of setting the push url for upstream to something that doesn't exist is a good idea23:56
waiganimenn0: yep, luckily I had done that already, so no harm done23:57
menn0ok sweet23:57
waiganimenn0: I'm now thinking about how to propose three branches, each one relying on the one before it23:57
menn0I would do them one at a time23:58
menn0landing one before proposing the next23:58
waiganioh right, yeah23:58
menn0that way if there's post-review changes for an earlier branch you can adjust the following branch to suit23:59
waiganithat will have to do for now23:59
menn0otherwise it just gets confusing23:59
waiganibzr was a little smarter, but this way is simple and clean and will do for now23:59

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