/srv/irclogs.ubuntu.com/2011/02/23/#launchpad-dev.txt

wgrantSo, I think that non-ML team subscriptions are a bug.00:01
wgrant_Hah.00:02
=== wgrant_ is now known as wgrant
sinzuiwgrant: what to you mean by "non-ML team subscriptions"? mailing list subscriptions for teams that one had a mailing list?00:05
thumperw00t00:05
* thumper does a little dance00:05
thumpernow to just edit the other 200 odd references to LP.client methods in the LP tree00:06
StevenKwgrant: I saw you discussing my traversal change with Julian. Revert it or keep it?00:07
* StevenK nails wgrant to the channel00:10
StevenKsinzui: If you look at lib/lp/soyuz/templates/packagepublishing-details.pt, a lot of the status information is in <strong> tags00:12
* thumper does another little dance00:15
sinzuiStevenK: yes. I think that is defeating the purpose of the list.00:16
StevenKI know that the statuses have been strong for as long as I remember00:17
StevenKSo I'm little nervous changing them00:17
wgrantThey have been strong forever.00:27
wgrantSo there is no reason to keep them.00:27
wgrantcody-somerville: Is there a reason you can't set a /dev/null email address on ~pmteam?00:28
wgrantYellow will be sorting out subscription muting soon, I believe.00:29
StevenKwgrant: So I should remove all of the strong?00:29
wgrantAnd we will be sorting out project permissions a little less soon.00:29
wgrantStevenK: Except maybe the "pending publication" bit next to builds, yes.00:29
wgrantStevenK: Someone decided in 2005 that it should be strong, and nobody ever looked at it again.00:30
cody-somervillewgrant, Is there a bug or blueprint for this change regarding the owner no longer being endowed permissions associated with teams owned?00:30
StevenKwgrant: I just have this feeling that bigjools will like that change even less00:30
wgrantcody-somerville: Bug #22749400:31
_mup_Bug #227494: Do not special case the owner in IPerson.inTeam() <disclosure> <lp-registry> <Launchpad itself:Triaged> < https://launchpad.net/bugs/227494 >00:31
lifelessis bug 181401 fixed?00:31
_mup_Bug #181401: push to lp:project or lp:project/series should to set the development focus and/or create the series <lp-code> <Launchpad itself:Triaged> < https://launchpad.net/bugs/181401 >00:31
wgrantlifeless: I've seen breakage which suggests that it is.00:32
lifelesswgrant: sinzui: also bug 19187000:34
_mup_Bug #191870: Participation in a team as the owner is non-obvious <lp-registry> <registry> <Launchpad itself:Triaged> < https://launchpad.net/bugs/191870 >00:34
lifelessbug 20605800:34
_mup_Bug #206058: Team Administrators cannot change their membership expiration date <lp-registry> <teams> <Launchpad itself:Triaged> < https://launchpad.net/bugs/206058 >00:34
lifelessbug 40924100:34
_mup_Bug #409241: Team member listings show "Owner" as "Administrator" <lp-registry> <teams> <Launchpad itself:Triaged> < https://launchpad.net/bugs/409241 >00:34
lifelessbug 53990300:34
_mup_Bug #539903: Team Owner seems to show ownership, should show leadership - or options <lp-registry> <needs-decision> <team-roles> <teams> <Launchpad itself:Triaged> <loco-directory:Fix Released by chrisjohnston> < https://launchpad.net/bugs/539903 >00:34
wgrantI had all of those open somewhere, but tooooo many tabs :/00:34
wgrantBug #409241 should be fixed by allowing administrators to bless people as administrators, I think.00:35
_mup_Bug #409241: Team member listings show "Owner" as "Administrator" <lp-registry> <teams> <Launchpad itself:Triaged> < https://launchpad.net/bugs/409241 >00:35
lifelessalso https://bugs.launchpad.net/launchpad/+bug/669643/comments/2 was relevant to this discussion00:36
_mup_Bug #669643: Avoid extra queries by making inTeam() accept an ID <lp-foundations> <Launchpad itself:Triaged> < https://launchpad.net/bugs/669643 >00:36
wgrantAdmins separate is a good idea, but requires reworking TeamMembership (in a good way... but it's a bit of work)00:38
StevenKwgrant: I'd appreciate a second pair of eyes: http://pastebin.ubuntu.com/570855/00:38
StevenKwallyworld_: BAH! Why do you have four things in QA-Landing and QA-In process?00:39
wallyworld_StevenK: some of the qa in progress things can be moved across. the qa was done this morning and/or last night. i haven't got it moving the cards yet00:41
wgrantStevenK: Well, that appears to be a lie.00:41
StevenKwgrant: Exactly. :-(00:41
wallyworld_StevenK: the landing stuff is waiting on ec2 and/or buildbot00:41
StevenKwallyworld_: There's nine cards there, and I have a card in Coding-Review that I'd to move.00:42
* wallyworld_ looks00:42
StevenKSorry, eight00:42
StevenKwgrant: Even 'print expected_contents in contents00:42
StevenK' gives False :-(00:42
wallyworld_StevenK: i've moved 2 cards from QA to deployment ready. the board was only a few hours out of date.00:44
StevenKwallyworld_: Thanks00:45
wallyworld_StevenK: np. sorry for the delay. the 2 cards in progress are being done in the one branch. if only ec2/bb didn;t take 8 hours end-end stuff wouldn't have to langusih in the Landing section for so long00:46
StevenKwallyworld_: It would be okay if you didn't have four things going at once. :-)00:47
wallyworld_StevenK: what i do is, i push stuff to ec2, start a new branch, get that done, ask for a review, and while waiting for that, start a new branch etc. so it's all pipelined...00:48
wallyworld_StevenK: and if ec2 takes a while and/or you're waiting for a particular person to review of whatever, you may as well start a new branch00:49
StevenKIt's been ending up that I've been tossing branches at ec2 and then EODing00:50
lifelessStevenK: your mp commit message is naffed00:50
StevenKlifeless: Which one?00:50
lifelessjust got the mail on the chnage00:50
lifelessis now just [r=][bug=]00:51
lifelessdeleted the message already00:51
StevenKlp-land, you fail00:51
StevenKCommit message [[r=stub][bug=713518] SourcePackageRecipe.description is now optional.]00:52
StevenKHowever, we're in testfix anyway00:52
StevenKtest_404 and test_oldurl failed again00:53
wgrantI still have not managed to reproduce those locally.00:53
StevenKwgrant: Can you have another look at https://code.launchpad.net/~stevenk/launchpad/link-recipe-on-ppa-page/+merge/50694 ?00:58
StevenKwgrant: I've addressed all of your concerns, removed the strong like sinzui suggested00:58
wgrantStevenK: Looking.00:59
StevenKPQM, you fail.00:59
wgrantWhat has it done now?00:59
StevenKwgrant: If we're in testfix the body of the mail says:01:00
StevenKCommand failed!01:00
StevenKrunning 0 tests...01:00
wgrantYes,01:00
wgrantbut the attachments say more.01:00
StevenKAnd then you need to read the two gzip'd attachments01:00
StevenKAnd Thunderbird hates gzip01:00
StevenK:-(01:00
wgrantStevenK: Could you put some linebreaks in that TAL?01:02
wgrantAlso that span is redundant.01:02
wgrantPut tal:content="sprb/recipe/name" on the a.01:02
wgrantSame with the other one.01:02
StevenKwgrant: <a tal:attributes="href sprb/recipe/fmt:url" tal:content="sprb/recipe/name" /></a> ?01:03
wgrantStevenK: That. You may also be able to self-close the a.01:04
StevenKI already have />, so maybe that is sufficent.01:04
StevenKVim disagrees.01:05
wgrantAh, so you do.01:06
wgrantYou can't have both that and the </a>, obviously.01:06
StevenKwgrant: Linebreaking the tal makes me sad, since it makes my naive string matching break.01:12
wgrantStevenK: Whitespace normalisation is cool.01:12
StevenKWhich I can't figure out how to do with a string01:13
wgrantMatchers don't have such a facility?01:13
StevenKI have no idea01:14
lifelessStevenK: DocTestMatcher(...doctest.ELLIPSIS)01:18
lifelessand in your reference, use '...'01:18
lifeless-or-01:18
lifelessuse soupmatchers01:18
wgrantDoctests have whitespace normalisation, not just ellipsis... does DocTestMatcher not do that?01:19
lifelessit doesn't set any flags by defailt01:19
lifelessjust set the flag you want01:20
wgrantAh, handy.01:20
wgrantcody-somerville: Still around?01:21
lifelessso matcher=DocTestMatches('foo bar', NORMALIZE_WHITESPACE)01:21
lifelessStevenK: ^01:22
StevenKlifeless: Which gives AttributeError: 'str' object has no attribute 'match'01:25
StevenKlifeless: Since what I'm comparing to is just a string01:25
lifelessStevenK: self.assertThat(yourstring, DocTestMatches('foo bar', doctest.NORMALIZE_WHITESPACE)01:27
lifeless)01:27
lifelessStevenK: or paste your code so that I'm not making random guesses ;)01:28
StevenKlifeless: http://pastebin.ubuntu.com/570869/01:29
lifelessStevenK: so a small style thing that made me wtf when I read this01:30
lifelessStevenK: a matcher isn't static, its an active object01:30
lifelessso calling one expected_contents is mind wrenching01:31
StevenKlifeless: A small note: I've never used matchers before01:31
lifelessI would probably create the string separately01:32
StevenKlifeless: Renamed to recipe_matcher01:32
lifelessexpected_contents = '...'01:32
lifelessbrowser =01:32
lifelessself.assertThat(browser.contents, DocTestMatches(expected_contents, NORMALIZE_WHITESPACE))01:32
lifelessor rename it as you have, that fine too01:32
lifelessok, and is it still giving you this error ?01:33
StevenKYes, because the newlines aren't ignored01:33
lifelessit might be clearer to read if you put the doctest.NORMALIZE_WHITESPACE left alighted with the '<a href'01:33
lifelesshttp://docs.python.org/library/doctest.html#doctest.NORMALIZE_WHITESPACE01:34
lifelessStevenK: you said it was giving you a str has not attribute error01:34
lifelessis that resolved?01:34
wgrantjam: Around?01:35
StevenKYes, if the string is first in assertThat, it's fine01:35
lifeless>>> print DocTestMatches('foo\nbar').match('foo bar')01:35
lifeless<testtools.matchers.Mismatch object at 169b950 attributes={'matcher': <testtools.matchers.DocTestMatches object at 0x7f3b8471fd50>, 'with_nl': 'foo bar\n'}>01:35
lifeless>>> print DocTestMatches('foo\nbar', NORMALIZE_WHITESPACE).match('foo bar')01:35
lifelessNone01:35
lifelessStevenK: ^ works for me01:36
lifelessStevenK: paste the error you get01:36
StevenKOh, sure, let me just edit the tal to inclue 'foo bar' and all my problems will be solved. :-P01:37
lifelessStevenK: oh, and a tiny tweak - s/recipe_matcher/recipe_matches/01:37
lifelessthe intent is to be able to read the assertion as a sentence01:37
StevenKlifeless: http://pastebin.ubuntu.com/570870/01:37
lifelessStevenK: you're comparing totally different things01:38
lifelessthe matchee is the entire portlet01:39
lifelessthe thing you're matching against is a tiny fragment of that01:39
StevenKNow I guess, that the matcher is expecting the content to be exactly what I want, but I only care that the string is in browser.contents01:39
lifelessright01:39
lifelessso for that, you need ELLIPSIS01:39
lifeless-or- to use soupmatches, which is structured and much better for this sort of thing01:39
lifelessanyhow01:39
lifelessadd01:39
lifeless... at the start and end of your expected text01:40
lifelessand add | ELLIPSIS01:40
lifelessto the flags01:40
StevenKlifeless: My issue with soupmatchers was I wasn't sure how to add the free-form text into the mix, such as 'by recipe'01:41
lifelessjames_w: ^01:41
wgrantlifeless: Could you please mentor https://code.launchpad.net/~stevenk/launchpad/less-lazr-security/+merge/50824?01:43
lifelesslooking at it already01:43
lifelessif I get a test timeout in ec201:43
lifelessbut no other errors01:43
lifelessdoes that suggest my changes are ok ?01:43
wgrantlifeless: Windmill layers tend to run late in the suite.01:43
wgrantBut not necessarily right at the end.01:43
wgrantIt suggests that are OK, but does not prove anything.01:44
wgrantI would retest.01:44
wgrantUnless the changes are really simple.01:44
lifelessttps://code.launchpad.net/~lifeless/launchpad/bug-717394-3/+merge/5054601:44
wgrantEeeh. I'd retest.01:45
* StevenK switches back to soupmatchers01:45
wgrantYou never know what bad things people are doing.01:45
lifelessStevenK: so the ... and ELLIPISIS at the start and end will work01:45
lifelessStevenK: if soupmatchers isn't easy to approach, just do the ... for now01:46
StevenKBut they didn't ...01:46
lifelesspastebin01:46
lifelessboth your new code01:46
lifelessand the new error01:46
StevenKToo late was the cry as the ship went down?01:46
StevenKlifeless: I had the soupmatchers code in my undo history, so I've switched back to it01:47
lifelessStevenK: the doctest matcher is in your pastebin01:47
lifeless;)01:47
StevenKYes, I'm fixing it without your help :-P01:48
StevenKAnd fixed!01:48
lifelesscool01:48
lifelesswhat does it look like with soupmatchers?01:48
StevenKI'd like to also check that the strings 'by recipe' and 'for' appear in the right place, but I don't know how to put them in01:48
StevenKlifeless: http://pastebin.ubuntu.com/570872/01:49
StevenKlifeless: Sadly, I agree with your less-lazr-security comment.01:50
StevenKthumper: Ping01:51
lifelessHTMLContains01:51
lifelessStevenK: ^ looks like what you need to get the by recipe and for bits evaluated01:52
lifelessHTMLContains(Equals('by recipe'))01:52
StevenKEquals is from testtools.matchers?01:52
lifelessyes01:52
StevenKAnd where did you see that pattern?01:52
lifelessI read the pydoc for soupmatches01:53
lifelessand am guessing01:53
* StevenK tries it01:53
lifelesshttp://bazaar.launchpad.net/~soupmatchers-dev/soupmatchers/trunk/annotate/head:/README01:53
StevenKActually, Equals() might just do it by itself01:54
StevenKSince it has a .match() attribute01:54
StevenKEr, method01:54
lifelessyes, Equals is a matcher01:54
lifelessas is Not01:54
lifelessRaisesException01:54
lifelessand so on01:54
lifelessStevenK: actuall01:54
lifelessthe readme suggests01:55
lifelessTag("...", text="built for") or some such01:55
lifelessmight want to wrap your entire bit in a span or something. I suggest reading the readme01:55
StevenKI have, twice01:56
lifelessdoes text= not meet your needs?01:56
StevenKI haven't tried it01:56
lifelessok01:56
StevenKOh, no tagname or attrs, just text=''01:57
StevenKsoupmatchers.Tag('first text', text='by recipe'),01:58
StevenKTypeError: __init__() takes at least 3 non-keyword arguments (2 given)01:58
StevenKlifeless: I've just read the README again and couldn't distill any clues about matching plain text02:02
lifelessStevenK: well its not entirely plain i sit? its embedded in an html structure02:02
lifelessso you need to match the containing span02:02
lifelessor try equals02:03
lifelessor do the doctestmatches thing - personally I'd do that simply to get unstuck and moving02:03
StevenKEquals() didn't work and neither did HTMLContains(Equals())02:03
StevenKlifeless: I can just not check for the text and the test passes. I'd just like to actually check it02:04
huwshimilifeless: When you've got a chance I'd like to figure out how to land my Loggerhead changes.02:04
StevenKlifeless: Oh, further to your shipit comment: That will turn up during the test suite?02:05
wgrantStevenK: It will, and it won't break.02:05
lifelessec2 land will run the shipit tests02:06
wgrantShipIt doesn't use those bits.02:06
lifelesswgrant: any idea how we can qa Bug 720826 ?02:08
_mup_Bug #720826: Add subscription description header for bug notifications <qa-needstesting> <story-better-bug-notification> <Launchpad itself:In Progress by danilo> < https://launchpad.net/bugs/720826 >02:08
lifeless\o/ bug down down by 70 queries on prod02:09
lifelessvs prod I mean02:09
lifeless4.42 seconds hot on staging!02:10
lifelessbooyha02:10
thumperStevenK: pong02:14
wgrantWhy does strucsub live in Bugs now? :/02:17
lifelessbecause it was started as a bugs project02:18
lifelessbefore the desiloisation of teams02:18
wgrantYes.02:18
wgrantBut it lived in Registry.02:18
wgrantThen was moved to Bugs post-desiloisation.02:18
lifelessby folk already fixed in the bugs silo - its only future work I really expect this to change02:18
lifelessanyhow, registry is equally wrong ;) <domain> is wrong :)02:19
StevenKthumper: Are you fine with me landing a branch that pulls in lazr.restful 0.17.1?02:19
thumperthere is a 0.17.1?02:20
StevenKthumper: IE: It won't break anything, or I should wait until your work lands?02:20
thumperStevenK: it makes no difference AFAIK if you land it now02:20
thumperStevenK: mine just builds on new features02:20
thumperStevenK: what is the update in 0.17.1?02:21
StevenKthumper: It adds a test, that's it.02:21
StevenKSo I can remove it from the Launchpad tree.02:21
thumperah...02:22
thumperthat's fine with me02:22
thumperland it02:22
StevenKDoing so02:22
thumperI'll deal with the merge conflicts02:22
StevenKthumper: My recipe description DROP NOT NULL fix should have hit db-devel, too02:22
wgrantlifeless: That's qa-ok. The UI really sucks, but it works.02:23
wgrantAnd it's not linked.02:23
wgrantWhich means we only need that pofilestats thing.02:25
wgrantAnd I think we can probably OK that, since apparently it's broken on production anyway and no more broken now.02:25
thumperhow can I quickly record a screen cast?02:28
thumperStevenK: did you test the UI?02:29
thumperStevenK: do you know if required defaults to True, or False ?02:29
thumperStevenK: I have a feeling it defaults to True02:30
huwshimithumper: I've used 'gtk-recordmydesktop' in the past with success02:30
thumperhuwshimi: ta02:33
huwshimithumper: It's worth noting that it will record sound out of your mic unless you uncheck the sound option (great if you want to narrate it, not so great if you are talking to yourself).02:35
thumperhuwshimi: hmm... where did it save it?02:35
huwshimithumper: Home folder?02:36
lifelesshuwshimi: hi02:37
thumperyep02:37
huwshimilifeless: Hello.02:37
lifelesshuwshimi: uhm, propose them, get them reviewed, and land manually if its on trunk02:37
lifelessrunning the test suite, of course02:37
thumperBehold the magic! http://people.canonical.com/~tim/js-update.ogv02:38
huwshimilifeless: OK, so should I just try to get my changes landed directly to trunk?02:38
thumperAnd the code: http://pastebin.ubuntu.com/570890/02:38
thumper\o/02:38
wgrantthumper: Yay, that fixes two bugs I filed.02:38
* thumper takes a bow02:38
wgrantThat is awesome.02:38
wgrantAnd needs to be applied everywhere.02:38
thumperwgrant: yes. yes it does02:39
thumperI'll be emailing the list02:39
thumperwgrant: which two bugs?02:39
lifelesshuwshimi: that was the conclusion from my discussions with poolie and jml: that we'll go with one theme for loggerhead upstream & lp, make it nice for standalone or lp users02:39
thumperwgrant: check out the underlying code :)02:39
lifelesshuwshimi: for things that we need to be lp specific we'll need to add callbacks inside loggerhead that can call into the launchpad_loggerhead stuff02:39
lifelesswgrant: Bug 722568 needs a losa doesn't it ?02:39
_mup_Bug #722568: Empty TranslationMessages confuse stats <qa-needstesting> <Launchpad itself:Fix Committed by jtv> < https://launchpad.net/bugs/722568 >02:39
wgrantthumper: Ah, I put both in one. Bug #721064.02:40
_mup_Bug #721064: Inline recipe text editor doesn't update the "Debian version" field on the page <recipe> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/721064 >02:40
StevenKthumper: That's awesome02:40
huwshimilifeless: OK. I have one change that is LP specific. What should I do with it? Remove it for now?02:40
lifelesshuwshimi: what is it02:40
StevenKwgrant: Can you look at link-recipe-on-ppa-page again?02:40
wgrantlifeless: Yes, but it's already broken on production.02:40
thumperStevenK: which one?02:40
thumperStevenK: link02:41
thumper?02:41
lifelesswgrant: well it runs with incorrect results sometimes02:41
lifelesswgrant: thats not totally broken, and the change might totally break it in theory02:41
lifelesswgrant: so I think wait for losa02:41
huwshimilifeless: it's a backlink to the branch summary page in Launchpad, and labelled specifically so.02:41
wgrantlifeless: No, it crashes.02:41
StevenKthumper: The screencast looks awesome02:41
lifelesswgrant: orly? I thought that was staging only that crashes02:41
wgrantlifeless: That's what we thought too.02:42
wgrantlifeless: But check carob:/srv/launchpad.net-logs/scripts/loganberry/rosetta/pofile-stats.log-2011021702:42
wgrantPeople became aware of this after we were both asleep, I believe.02:42
wgrantthumper: How many requests does it need?02:42
thumperwgrant: there is only one patch request02:43
wgrantthumper: Or does it request all the relevant representations?02:43
wgrantNice.02:43
thumperwgrant: lazr.restful was updated to return the full entry info + html02:43
wgrantthumper: The duplication sort of sucks, though.02:43
thumperwgrant: I'm fixing the duplication02:43
lifelesshuwshimi: you should make that configurable in some way (we can talk about how to do that separately); land it with it configured to not show, and change launchpad_loggerhead in the launchpad tree to make it show when we deploy02:43
wgrantthumper: Great.02:44
wgrantthumper: So, one line per field for dynamic updates? That is fantastic.02:44
lifelesshuwshimi: we want to end up running a stock loggerhead with (conceptual) plugins to it, rather than a patched loggerhead, to reduce engineering overheads02:44
wgrantI like AJAX that is not fucking painful to code.02:44
lifelessthumper: this lazr.restful change02:45
lifelessthumper: its optional, right ?02:45
thumperlifeless: optional in which way?02:45
lifelessserver side generation of the html02:45
lifelessthumper: I mean, launchpadlib api requests shouldn't trigger it02:45
thumpernot unless they ask for it02:45
wgrantI presume the client can pass multiple Accepts.02:45
thumperactually...02:45
lifelessbecause its fantastically slow by comparison to just a json dict02:45
lifeless*fantastically slow*02:45
thumperno I don't think launchpadlib gets it02:45
lifelesscool02:46
lifelessnice work02:46
thumperyou have to specify Accept: application/json;include=lp_html02:46
huwshimilifeless: OK great. So, how to make it configurable?02:46
wgrantExcellent.02:46
lifelesshuwshimi: How does it work?02:46
wgrantthumper: It might be nice if you could specify particular fields.02:46
wgrantBut this shouldn't be too bad.02:46
thumperwgrant: we specifically only do one event for the change to avoid race conditions02:47
lifelesswheeee02:47
wgrantthumper: btw, do you know what's up with the empty grid cell on recipe pages?02:47
lifeless11 seconds python time - wtf02:47
thumperwgrant: each page could break it apart more easily02:47
lifelesshttps://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1880QS4302:47
wgrantAbove "Debian version"02:47
thumperwgrant: yes02:47
thumperwgrant: it has to do with the yui grid flow02:47
wgrantthumper: Easily fixable?02:48
thumperwgrant: if the height of the top left is greater than the height of the top right, then the next one is below right02:48
wgrantAh :/02:48
thumperyui grid layout is deprecated02:48
thumperhuwshimi will fix :)02:48
wgrantHopefully before they are out of beta.02:48
wgrantThey want to look awesome before they are pushed out to everyone.02:48
wgrantlifeless: Wow. I hope that's just asuka being crap.02:49
huwshimithumper: I'll do what now? If it's to do with positioning I'm not help you :)02:49
lifelesswgrant: look at query 2002:51
wgrantlifeless: You are blocking QA now :P02:51
wgrantAwesome.02:51
wgrantThat is really awesome.02:51
lifelesswgrant: not at all, I've been qaing it02:51
wgrantAlso, WTF.02:52
wgrantthumper: No inline name editing :(02:52
thumperwgrant: it is coming02:53
wgrant!02:53
wgrantNo inline series editing :(02:53
thumperwgrant: I wanted my fix for the auto-url change02:53
thumperwgrant: series editing needs more work02:53
wgrant:(02:53
huwshimilifeless: In the templates there are links (in a few templates). That's pretty much it. E.g. lines 19-25 of http://bazaar.launchpad.net/~huwshimi/loggerhead/launchpad-theme/view/head:/loggerhead/templates/changelog.pt02:53
thumperas we don't have any reasonable selectors02:53
wgrantthumper: Oh?02:53
wgrantthumper: Can't it just be a form like the build request one?02:53
lifelesshuwshimi: how are you calculating the link02:54
huwshimilifeless: The link already existed.02:54
lifelesshuwshimi: you have a condition there already02:54
huwshimilifeless: We already had a backlink, but now it's more obvious02:55
lifelesshuwshimi: I suggest running it up standalone and seeing if the links already hide themselves automatically02:55
huwshimilifeless: They do02:55
lifelesshuwshimi: so that seems fine for trunk02:55
lifelessits data driven02:55
lifelessand $otherdeployment of loggerhead can inject their own branch_link attribute02:56
huwshimilifeless: Ok, well I'll put together an MP then. Thanks02:57
thumperwgrant: probably, but that makes it not a simple patch selector...02:59
thumperwgrant: I'll look at it02:59
thumperwgrant: it'd be good to be able to change everything02:59
lifelessok, 37 /  407  POFile:+translate wasn't librarian, its up again02:59
lifeless16 /   11  Archive:+copy-packages02:59
lifelessetc02:59
lifelessI'll go bug filing spree02:59
lifelessI think a lot are GIL issues, we'll see when the ppr refreshes in a few hours03:00
wgrantthumper: That page is just so close to being a perfect model for everything else.03:00
wgrantthumper: It seems sad to leave one thing un-AJAXed.03:00
wgrant+copy-packages already has a bug.03:01
lifelesswgrant: I know03:01
lifelessbut first, stuff03:02
thumperrockstar: check this out: http://people.canonical.com/~tim/js-update.ogv03:02
* thumper sighs03:02
thumperrockstar: should have been in the other channel, but my client can be dumb03:02
StevenKwgrant: O hai? You missed my prod?03:19
wgrantStevenK: Got distracted, looked a couple of minutes ago. Just one more formatting issue that I am looking for pretty solutions to.03:19
StevenKwgrant: And there's the issue of the traversal. Leave it, Julian be damned, or kill it?03:20
wgrantStevenK: I argued with him last night and he facepalmed. Leave it.03:21
StevenKI don't think I can land it with his "Needs Fixing"03:22
lifelesssure you can03:22
StevenKFair enough.03:23
wgrantMost side reviewers do not rescind their Needs Fixing.03:24
wgrantStevenK: Reviewed.03:24
StevenKwgrant: Your diff is wrong, it's sprb.requester, and that pushes it over the length limit03:26
wgrantStevenK: Look a few lines earlier.03:26
StevenKBleh03:27
StevenKwgrant: Then why is text still sprb.requester.displayname? :-)03:28
wgrantStevenK: Because I didn't notice that one because its formatting didn't suck!03:28
wgrantpls fix03:28
StevenKwgrant: As you keep saying to me: SILENCE!03:28
wgrantThat's the one.03:28
StevenKwgrant: http://pastebin.ubuntu.com/570905/03:29
StevenKEr, ignore the lack of context at the end of the diff, my mouse ate it03:29
lifelessStevenK: how many instances can you reliabilty bring up in jenkins on our test cloud03:30
wgrantLooks good.03:30
wgrantThanks.03:30
StevenKlifeless: I have no idea. Why?03:30
lifelessthinking about parallel testing03:30
StevenKEr?03:30
lifelesswe can trivially multi machine parallel test on jenkins03:31
wgrantSo we disable Windmill, move to Jenkins, and have things in stable in 30 minutes? :)03:31
StevenKlifeless: Parallel test what, exactly?03:31
StevenKI'm still confused.03:31
lifelesslp03:32
lifelessif we provide a fractional filter to run 1/M tests03:33
lifelessand start up M machines03:33
=== vednis is now known as mars__
StevenKlifeless: 1: We can't use the UEC if we move to Jenkins to prod usage. 2: I'm not certain how many instances I can run in parallel03:36
lifelesswe can't ?03:36
StevenKNo03:37
StevenKelmo forbids it.03:37
lifelessoh03:37
lifelessdid he say why?03:37
StevenKYes. It's used by everyone who has an account, and there are no resource limits available on our UEC currently, which means we can get 'locked out'03:38
StevenKlifeless: When you get undistracted, can has another look at https://code.launchpad.net/~stevenk/launchpad/link-recipe-on-ppa-page/+merge/50694 ?03:41
lifelessisn't it requestor ?03:44
wgrantIt varies.03:45
wgrantI've seen both, and I don't think one is particularly American :(03:46
lifelesssmall style thing03:47
lifelessoptionak03:47
lifelessbt I'd indent the <a ... lines in tal03:47
lifelessif you look at the other <li> regions that is done there03:47
huwshimilifeless: For the loggerhead review it will be a Launchpad dev who does it, right? So should I just ask here?03:48
lifelesshuwshimi: yes, normal process - request on the project, ask the OCR here03:49
lifelesshuwshimi: that applies for *everything* listed on launchpad.net/launchpad-project03:49
huwshimilifeless: Right, got it. Thanks03:50
StevenKlifeless: Done locally, anything else?03:50
wgrantI suppose I should take an OCR slot.03:50
* wgrant takes an OCR slot.03:50
StevenK\o/03:50
lifelessStevenK: i commect on the mp03:50
huwshimiStevenK: A review if you can: https://code.launchpad.net/~huwshimi/loggerhead/launchpad-theme/+merge/5086303:51
StevenKlifeless: So, file a bug saying IPerson.getPPAByName() has to die or be fixed?03:52
StevenKhuwshimi: You know we have a branch limit of 800 lines, right? :-)03:53
StevenKBut, uh, lots of CSS03:53
StevenKhuwshimi: Can has screenshot?03:53
huwshimiStevenK: Oh I did not. I'm not even sure I know what you mean by that.03:54
StevenKDiff against target: 1415 lines (+606/-636) 10 files modified03:54
StevenKWe prefer that 1415 to be under 80003:54
StevenKBut it is a preference03:54
huwshimiStevenK: Right03:54
huwshimiStevenK: Would you like me to do something about that?03:55
StevenKhuwshimi: No, it's fine. As you say, it's a massive CSS cleanup.03:55
huwshimiStevenK: Screenshot coming up. Actually how do I (can I?) push to people/~huwshimi03:56
StevenKhuwshimi: scp to people.canonical.com:public_html03:57
huwshimiStevenK: Great thanks03:57
lifelessStevenK: it will depend on what the fix for 'ppas are only for ubuntu' is03:57
StevenKhuwshimi: As an employee, you ought to have access.03:57
StevenKlifeless: I suspect derived distributions will also grow PPAs03:57
lifelessStevenK: for instance, we could say that a ppa called 'testtools' can *either* be for Ubuntu03:57
lifeless*or* for Linaro03:57
lifelesswhich would leave that API completely safe to use.03:57
lifelessor we could say that the various suites in a PPA can extend across any support distro in LP03:58
lifelessor we could support multiple ppas with the same name on a person, and different distros.03:58
StevenKMy thought is that if the distribution is not in the URL, it's Ubuntu, and if it is, it's that.03:58
lifelessI think its prejudging it to decide that that API is a problem.03:58
wgrantOne thing we need to say is that this is going to be the last solution.03:59
wgrantBecause every previous one has been designed ignoring everything except the immediate issue.03:59
StevenKhuwshimi: You *might* need to ssh into people.canonical.com first and 'mkdir public_html'03:59
StevenKwgrant: Then you file a bug? :-)04:00
StevenKwgrant: Did you file a bug, or shall I?04:08
wgrantStevenK: I didn't. I'm not sure it needs one.04:10
StevenKlifeless seems to think so.04:10
lifelesserm04:11
lifeless16:59 < lifeless> I think its prejudging it to decide that that API is a problem.04:11
lifelessdid that get through ?04:11
StevenKYes04:11
wgrantI think it should be left to the design work next week.04:11
lifelessYou *can* file a bug if you agree with julian that that api is a problem.04:11
wgrantThe issue is going to be clear as soon as someone goes near multi-distro PPAs.04:11
wgrantSo a bug does not add very much at all.04:11
wgrantParticularly as it cannot recommend a solution, nor indeed clearly identify the problem.04:11
lifelessthere's at least 4 different answers to the question 'what should ppas interaction with linaro be'04:12
lifelessthe api isn't a problem today04:12
lifelessit might be a problem in the future04:12
StevenKIt, and others *will* be when we want to add PPAs for distributions that aren't Ubuntu.04:13
StevenKSignificant parts of Soyuz are coded in such way to blithely believe that the only thing we ever build for and publish for is Ubuntu.04:14
lifelesshang on04:15
lifelessthose are unrelated assertions04:15
wgrantStevenK: No, they actually aren't, but anyway.04:15
lifelessStevenK: nothing says one PPA can't be for both linaro and ubuntu04:15
lifelessStevenK: similarly, nothing says we have to permit a PPA name to be shared across distros04:16
lifelesswhich would equally leave that API safe04:16
StevenKRight, I'll land it, and won't file a bug. wgrant, Julian and I are aware of the issues surrounding multi-distro PPAs04:17
wgrantAnd anybody who tries to do multi-distro PPAs will become aware very rapidly.04:19
wgrant:( KDE's bugzilla lies.04:28
wgrantIt says it uses P1 through P5 as priorities.04:28
wgrantBut some of the bugs have priority 'NOR'...04:28
lifelessjml: https://dev.launchpad.net/LEP/ParallelTesting04:31
lifelesswgrant: fun04:31
StevenKthumper: Can has review of my review: https://code.launchpad.net/~huwshimi/loggerhead/launchpad-theme/+merge/5086304:47
lifelesshuwshimi: nice04:50
StevenKI think it looks brilliant04:50
StevenKlifeless: Did Launchpad lose it's picture?04:52
StevenKIn the top left corner of https://launchpad.net/launchpad , that is04:52
huwshimilifeless: It's a start. Just need someone to make it part of Launchpad proper now :)04:53
lifelesshuwshimi: it has an ajax api04:54
wgrantThat's a nice start.04:54
lifelesshuwshimi: I don't think we want to fold the code into LP; we do want it to be better integrated04:54
lifelessless of a box-of-bits feeling to ut.04:54
lifeless*it*04:54
lifelessStevenK: no, its there for me.04:54
huwshimilifeless: Yeah, agreed04:54
lifelessone think I'd like to do is folk the loggerhead api into the main website urlspace04:55
lifelessso that we can use it without cross domain stuff04:55
lifelesss/folk/fold04:55
StevenKlifeless: You're using Chrome, and I'm using Firefox. This may be related.04:56
wgrantStevenK: Works OK for me in both.04:57
lifelessStevenK: there for me in ff too04:57
wgrantFirefox 4b11, though.04:57
lifeless3.6.13 for me04:57
wgrantStevenK: What was it showing?04:57
wgrantmizuho may be being crap again.04:57
wgrantIt is very good at that.04:57
StevenKwgrant: Nothing04:58
wgrantStevenK: What did Firebug say about the image load?04:58
lifelesswgrant: thanks for prepping the deploy05:01
wgrantlifeless: I just couldn't let you do two in a row.05:02
wgrantOr my inbox was crying.05:02
StevenKHaha05:02
wgrantOne of those.05:02
lifeless5.4 million pages yesterday (+ opstats/haproxy)05:02
StevenKwgrant: How can I tell?05:02
StevenKI've found the logo <img> in firebug05:02
wgrantStevenK: There should be a Network tab or something.05:02
wgrantYou don't want the DOM browser.05:02
lifeless3M api.*05:04
lifelessso thats what 60% just on launchpadlib :(05:04
wgrantlifeless: Do we log users?05:04
lifelessits determinable somehow05:05
wgrantI wonder if anyone will notice/complain if I move the security deploy stuff to the bottom of the page in a trivial edit...05:05
lifelesswgrant: I think that would be fine05:05
StevenKwgrant: Content-Typetext/html05:06
wgrantI might also precede it with a \0 to indicate how much I love it.05:06
wgrantStevenK: Oh dear.05:06
wgrantStevenK: Which frontend?05:06
wgrantAnd which request URL?05:06
wgrantLength: 2050 (2.0K) [text/html]05:07
wgrant:(05:07
StevenKGET /50084288/launchpad-logo HTTP/1.105:07
StevenKHost: launchpadlibrarian.net05:07
wgrantBypassing the cache gets an octet-stream as expected.05:07
StevenKwgrant: Looks like bananananana05:07
StevenKlaunchpad_dogfood=> SELECT mimetype from libraryfilealias where id = 50084288;05:09
StevenKapplication/octet-stream05:09
wgrantIt is both :(05:09
* StevenK facepalms05:09
wgrantBoth somehow got text/html.05:09
wgrantSquid-log-diving time, I guess...05:09
StevenKOrsum05:10
lifelessrelatedly05:13
lifelessthere is a bug open05:13
lifelessabout the librarian and mimetypes - and comments in the code too05:13
lifelessthe idea is that we honour the mimetype and stop guessing05:13
lifelessand then the librarian server *only ever* hands out what the mimetype says it should be05:13
StevenKCan we force it be image/png, then?05:14
lifeless if you update the LFA yes05:14
lifelessthats the point, the LFA has crap in it05:14
lifelessa) garbo hourly task to fix those05:15
lifelessb) migrate librarian to use that data05:15
lifelessc) win05:15
wgrantapplication/octet-stream is not optimal, but also OK.05:15
LPCIBotProject devel build (465): FAILURE in 5 hr 24 min: https://hudson.wedontsleep.org/job/devel/465/05:16
LPCIBot* Launchpad Patch Queue Manager: [r=benji][bug=134063] Updates DateTime widget to kick back formats it05:16
LPCIBotcan't possibly cope with.05:16
LPCIBot* Launchpad Patch Queue Manager: [r=sinzui][ui=sinzui][bug=687379] Changes alignment of diff overlay05:16
LPCIBotpopup to align on the diff popup link, rather than on the viewport,05:16
StevenKRight, but image/png let's the browser plan a little better05:16
LPCIBotso the diff won't expand above the top of the page.05:16
LPCIBot* Launchpad Patch Queue Manager: [r=jml][ui=none][bug=723003] Make the Sphinx doc build process not05:16
LPCIBottry to connect to the Internet.05:16
StevenKtest_404 and test_oldurl again05:17
StevenKANNOYANCE05:18
wgrantYes.05:18
wgrantHmm.05:18
wgrantI wonder if we should catch that exception, cause the test suite to hang in an unkillable way, and spam people to look at the instance.05:18
StevenKIn an Hudson run? There's one person that has keys to the builders05:19
wgrantOr buildbot.05:19
wgrantOr ec2, although that is far less frequent.05:19
StevenKNo signs of OOM killage05:21
StevenKI wish I knew what was going on05:23
wallyworld_bollocks. if i've already created a mp, there's no way to go back and set a dependent branch?05:26
lifelessresubmit05:26
lifelessand then set the dependent branch during that step05:26
* wallyworld_ shakes fist at stupid mp page :-(05:26
StevenKresubmitting doesn't allow you to do that?05:26
lifelessthis is a bit suboptimal05:26
wgrantStevenK: I think that changed recently.05:26
StevenKBout time05:26
* wallyworld_ takes it all back. it's actually quite easy05:27
wallyworld_i had thought i would have to start again, but i forgot all this stuff was enhanced at some point05:28
wgrantYay, I crashed KDE bugzilla.05:28
StevenKNo big loss05:28
mwhudsonwgrant: that makes feature equivalence between KDE and gnome now?05:28
wgrantHeh.05:29
wgrantAhaaaa05:44
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
wgrant:(06:20
wgrantWe have two separate Bugzilla status maps.06:20
lifeless\o/06:22
wgrantHere I was wondering why this test wasn't failing when someone broke status mapping a couple of months ago...06:22
lifelesshmm06:29
lifeless7:30 at night06:29
lifelessI might finally get to write some code06:30
wgrantHeh.06:30
lifelessta is a balancing act ;)06:31
wallyworld_anyone seen this windmill error on ec2? 'BugsYUIUnitTestCase' object has no attribute 'client'06:33
wallyworld_that's not even related to my changes06:33
wgrantThat's a new one to me.06:33
wgrantBut probably still spurious.06:33
wallyworld_2nd time it's happened :-(06:33
wallyworld_got a bunch of them06:33
lifelessrace condition?06:33
wallyworld_  lp.app.windmill.tests.test_yuitests.AppYUIUnitTestCase.runTest06:33
wallyworld_  lp.bugs.windmill.tests.test_yuitests.BugsYUIUnitTestCase.runTest06:33
wallyworld_  lp.bugs.windmill.tests.test_yuitests.BugsYUIUnitTestCase.runTest06:33
wallyworld_  lp.bugs.windmill.tests.test_yuitests.BugsYUIUnitTestCase.runTest06:33
wallyworld_  lp.code.windmill.tests.test_yuitests.CodeYUIUnitTestCase.runTest06:33
wallyworld_  lp.registry.windmill.tests.test_yuitests.RegistryYUIUnitTestCase.runTest06:33
wallyworld_  lp.registry.windmill.tests.test_yuitests.RegistryYUIUnitTestCase.runTest06:33
wallyworld_  lp.soyuz.windmill.tests.test_yuitests.SoyuzYUIUnitTestCase.runTest06:33
wallyworld_  lp.soyuz.windmill.tests.test_yuitests.SoyuzYUIUnitTestCase.runTest06:33
* wallyworld_ is disliking windmill a lot today06:33
wallyworld_lifeless:  could be a race condition. but you'd think an error like "has no attribute" would be quite deterministic06:34
* wallyworld_ will have to look a little deeper.....06:34
wallyworld_just had to get it all off my chest. nothing like venting a little to relieve the stress06:35
lifelessstill, another branch landed. \o/06:45
=== Ursinha is now known as Ursinha-afk
lifelesswgrant: why closed duplicate -> invalid ?06:58
lifelesswgrant: shouldn't we dereference to the target ?06:59
wgrantlifeless: Yes, we should. Bug #5664406:59
_mup_Bug #56644: Remote bugs that are duplicates are shown as "Invalid" <bugwatch> <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/56644 >06:59
wgrantBut this is reverting to the old behaviour that was lost in r1143406:59
lifelessby accident?06:59
wgrantYes.06:59
wgrantAll unknown CLOSED/RESOLVED/VERIFIED statuses used to map to Invalid.07:00
wgrantBut that rev listed a few known ones, mapped them to Invalid, and mapped the rest to Unknown.07:00
wgrants/mapped them to Invalid/mapped them to appropriate statuses/07:01
lifelessah07:01
lifelessand the map to unknown was bong07:01
wgrantIt was explicit, so nothing got logged.07:01
wgrantInvalid isn't a great mapping, but it's better than Unknown.07:01
wgrantThanks.07:03
wgrantjtv: Hi.07:10
lifelessok, I can make bug search 40 times faster07:14
lifelessfor the ubuntu homepage query07:14
wgrant:(07:15
lifelesssee my comments on https://bugs.launchpad.net/launchpad/+bug/61840607:17
_mup_Bug #618406: Distribution:+bugs-index timing out in ~2% of requests <lp-bugs> <pg83> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/618406 >07:17
lifelesswgrant: trivial fix07:17
wgrantlifeless: Well, it makes it non-deterministic.07:18
lifelessin a fashion noone should care an iota about07:19
stubvery non-deterministic, since IIRC we only have 4 levels of heat07:19
lifeless507:19
wgrant5 flames.07:19
wgrantBut they are buckets.07:20
lifeless4 flames07:20
lifeless0,1,2,3,407:20
wgrant5 levels of flame.07:20
wgrantRight.07:20
lifelessanyhow07:21
lifelesswe can change the index07:21
lifeless(heat desc, id)07:21
lifelessor (heat desc, importance desc)07:21
lifelessor (heat desc, importance desc, id) - all on bug07:21
lifelesshowever07:21
stubordering by heat, bug.id, bugtask.id might be better07:21
lifelessstub: nope07:21
lifelessstub: forces materialisation07:21
lifelessstub: see the plan - its doing a sort() - i tried with heat desc, bug.id - still did the sort07:21
lifelesshowever, and this is important07:21
lifelessthis is for this hot bugs list07:22
lifeless*that* list has solid heat variation07:22
stubIt won't - you are retrieving 40 items and there are only 5 buckets07:22
lifelessthe buckets are not evenly populated07:23
lifelessits a decay function07:23
lifeless(the bucket allocator is a decay function)07:23
lifelessthe actual heat value is unconstrainted07:23
lifelessand does not have buckets07:24
stubThe index we seem to want to use here is (heat, last_updated), so ORDER BY Bug.heat DESC, Bug.last_updated DESC LIMIT 40 should hit the index and be deterministic enough07:24
lifeless(check the data)07:24
stubok07:24
lifeless Limit  (cost=6957590.92..6957591.02 rows=40 width=1017) (actual time=2761.605..2761.621 rows=40 loops=1)07:25
lifeless   ->  Sort  (cost=6957590.92..6958004.71 rows=165515 width=1017) (actual time=2761.603..2761.613 rows=40 loops=1)07:25
lifeless         Sort Key: bug.heat, bug.date_last_updated07:25
lifelesscauses materialisation07:25
lifeless         Sort Method:  top-N heapsort  Memory: 92kB07:25
lifelessI'm totally fine with us changing the index.07:25
lifelessbut I think we'll have very deterministic results for ubuntu as a whole with just heat.07:25
stuboh... that is the heat_last_updated index not the (heat, last_updated) :-(07:25
lifeless Limit  (cost=6957590.92..6957591.02 rows=40 width=1017) (actual time=2649.104..2649.119 rows=40 loops=1)07:26
lifeless   ->  Sort  (cost=6957590.92..6958004.71 rows=165515 width=1017) (actual time=2649.101..2649.106 rows=40 loops=1)07:26
lifeless         Sort Key: bug.heat, bug.heat_last_updated07:26
lifelessnot to mention, but the hot bugs list is broken anyway07:26
lifeless         Sort Method:  top-N heapsort  Memory: 92kB07:26
lifelessits not including series bugs07:26
stubSo yeah, it seems deterministic enough for production. Tests might have difficulties though as you mentioned.07:27
stubYeah - I skimmed the indexes too quickly. We don't have a suitable multicolumn index at the moment for guaranteeing determinism and remain fast. We could add one if we want but that is always annoying to add indexes only to keep the test suite happy.07:28
lifelessright07:29
lifelessthe top 40 bugs by heat in ubuntu are deterministic07:29
lifelessbased on staging data07:29
lifelesspossibly the last 2 will jump around a little, because there is a quantisation effect due to the algorithm.07:32
=== almaisan-away is now known as al-maisan
lifelessstub: https://bugs.launchpad.net/launchpad/+bug/618406/comments/407:34
_mup_Bug #618406: Distribution:+bugs-index timing out in ~2% of requests <lp-bugs> <pg83> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/618406 >07:34
lifelessstub: make sense?07:34
stubApart from importance, which we don't have on Bug.07:35
lifelessstub: grah, yes.07:35
lifelesswe could push heat down to the tasks - denorm is07:36
lifelessor rather, make it context specific07:36
lifelesswhich might give better results07:36
stubWe just create an index on (heat, id) and ORDER BY heat DESC, id DESC07:36
stubThat will give the same sort of determinism we have at the moment, and be nearly as fast as the heat only lookup07:43
lifelesssure07:43
lifelesswasn't sure if it was worth the index07:43
lifelessI wonder if the heat index is being used at all at the moment07:43
stubI suspect better an index than denormalizing :)07:43
stubI think it is - it wasn't in the unused indexes lists I was looking at the other day. Probably being combined with other indexes.07:43
lifelessstub: denormalisation isn't that bad. How big would this new index be?07:51
stubdouble the size of the existing heat index...07:51
* stub forgets how wide timestamps are07:51
stuboh.. its another int. double.07:51
lifeless60MB07:51
lifelesslets do it07:51
lifelessstub: I can't find any uses of bugtask.heat_rank08:05
lifelessstub: am I missing something08:05
stublifeless: That column isn't used. I don't know if this was a column for a feature never implemented, or a column that should have been dropped.08:05
stubWe need to ask a bugger.08:05
wgrantDoctest you suck and I hate you.08:05
wgrantYes, let's define the logging level in a file in another directory... what could possibly go wrong.08:05
lifelessstub: I think just drop, it won't have valid data if its not being update08:05
lifelessstub: can always add it if/when someone actually works up a feature for it08:05
stubThe only value in the production db is 008:05
lifelessexactly08:05
lifelessgrrr08:32
lifelesspublic branches linked to private bugs -> boom08:32
wgrantHm? Works fine, modulo a leak or two.08:32
lifelesshttps://code.launchpad.net/~oops-tools-dev/wsgi-oops/trunk08:32
wgrantOh, that one.08:33
wgrantNew bug.08:33
lifelessModule lp.app.browser.tales, line 1529, in _link_summary_values08:33
lifelessreturn {'id': str(self._context.id), 'title': self._context.title}08:33
lifelessUnauthorized: (<Bug at 0x17001050>, 'title', 'launchpad.View')<br />08:33
wgrantRight, it's trying to show the bug linked to the MP.08:33
wgrantA bug was filed a week or so ago... trying to find it.08:34
wgrantlifeless: Bug 71990108:37
_mup_Bug #719901: Cannot view branch with revisions fixing private bugs <bug-branch-links> <regression> <Launchpad itself:Triaged> < https://launchpad.net/bugs/719901 >08:37
adeuringgood morning08:53
mrevellHello09:19
stubAny opinions on where an ICleanup interface should live (for declaring adapters for arbitrary objects to a cleanup method)09:19
lifelessstub: outside the lp tree? :P09:20
lifelessstub: whats this for - do fixtures or context managers meet your needs already09:21
stubI want to make the loop tuner call a cleanup method on the loop instance, if it is defined.09:21
stubNicer to use adaption rather than sniff for a well known name. And __del__ is fragile and IMO should never be used.09:22
lifelessI'd make the loops a Fixture09:22
lifelessadd that into the base class09:22
lifelesscall setUp before using the loop09:22
lifelesscleanUp at the end of the loop09:23
stubThe loops implement an interface - they don't subclass from any particular root.09:23
stubthere is no base class.09:23
lifelessmmm09:24
lifelesswell you could interface this up09:24
lifelesspersonally I'd just make them all subclass from fixture09:24
lifelessthe cleanup facilities in it are mature and useful09:24
stubThere doesn't seem to be any sane location in lp.* for such an interface :-P (nor a load of the other stuff still in canonical.*, as I'm sure jml is finding)09:25
lifelessI'd be quite happy to have a zope interface for fixture in the fixtures tree09:25
lifelessif that woul dhelp09:25
stubWhere is the fixtures tree?09:25
lifelesshttps://launchpad.net/python-fixtures09:27
lifelessis the upstream09:27
lifelessits widely useful beyond unit testing, so ignore that bit of the blurb09:27
daniloslifeless, fwiw, bug 720826 was already qad yesterday (before I added special rollout requirements for that), but since it was only [incr] change, I didn't consider it a big deal to mark the bug as such (i.e. it wouldn't block the rollout, wouldn't it?)09:28
_mup_Bug #720826: Add subscription description header for bug notifications <qa-ok> <story-better-bug-notification> <Launchpad itself:In Progress by danilo> < https://launchpad.net/bugs/720826 >09:28
lifelessdanilos: --incr seems to be broken in some corner cases09:29
lifelessdanilos: I touched it because it showed up in the deployment-stable rpeort09:29
daniloslifeless, ah, ok then, sorry for causing more work for others then (I did put it properly through QA on the kanban board, but unfortunately, that's still not linked to LP)09:30
wgrantIs that the one where the [incr] was at the start, separated from the rest by a space?09:30
lifelessdanilos: no worries09:30
stublifeless: Not sure I want the 'exceptions are swallowed' bit.09:30
lifelesswgrant: --incr combine with something or other results and doesn't send the right thing to pqm IIRC09:31
lifelessstub: they aren't anymore09:31
=== jtv changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: jtv | https://code.launchpad.net/launchpad-project/+activereviews
lifelessstub: thats stale - where did you see that ?09:31
stublifeless: ic. The docstring for addCleanup says they are swallowed.09:31
lifelessstub: I shall fix that09:31
lifelessstub: if multiple excpetions are raised (one per cleanup, say), then one exception is raised, with its args being the individual exceptions that got raised09:32
lifelessstub: if only one is raised, it is reraised asis09:32
lifelessright, those docstrings are really stale. naughty lifeless09:34
stubSo declaring an IFixture interface seems overkill, as the sanest way to use this would be to just subclass Fixture and then isinstance is fine (which isn't the component architecture way, but that is often a good thing ;) )09:35
stubjtv: Any objection to the loop tuner runner sniffing for isinstance(Fixture), and invoking the setUp and cleanUp methods?09:37
stubOr perhaps that is better left for the garbo09:38
jtvstub: otp for a minute more… what is it you actually want to do?09:38
stubTell a loop tuner instance 'you were aborted so clean up now'09:38
lifelessstub: personally, I'd just subclass Fixture on all our loops09:39
lifelessstub: and then not even worry about the isinstance sniff. Seems simpler.09:39
stubWithout adding a new method to ILoopTuner, and without making all the existing loops inherit from a subclass09:39
* jtv reads backscroll09:39
lifelessstub: I've pushed rev 22 explaining things better09:40
jtvAre we supposed to use fixtures in production code?  I thought they were just for tests.09:41
stubWe have dozens of implementations and this is the first time we have wanted cleanup. Adding setup, cleanup, reset (addsetup etc.) to everything seems overkill.09:41
stubjtv: Its generic code, not test specific, but alot of it makes no sense for this use case.09:42
jtvYes… maybe we should just have an extra method in the ITunableLoop, with an empty default implementation.09:42
lifelessjtv: the inspiration was a specific set of testing problems; they are much more general than that.09:42
jtvBy the way stub, are you using the DBLoopTuner or the plain LoopTuner?09:43
stubjtv: dblooptuner09:43
jtvCool.09:44
jtvAnyway, in the spirit of duck typing, why not def cleanUp(self) to the tunable-loop API, guarantee that it gets called at least once by the loop tuner, and provide a blank default?09:45
jtvI agree that a full fixture interface seems a bit much.09:45
jtvAfter all, all we really want here is a *cough* *cough*destructor*cough* *cough*09:45
lifelessjtv: the 'full fixture interface' is just: call setUp before doing stuff with it, and cleanUp afterwards.09:46
lifelessjtv: so if we do the duck typing thing, its nearly no extra overhead to use the full fixture interface09:46
lifelessI don't really mind whats done here, just throwing my 20c in the ring09:47
jtvBut then what does setUp _mean_?  It's still a method too many.09:47
lifelessjtv: from that argument, cleanUp is unneeded to - the inner loops just need a finally09:47
jtvI don't see how that works—the whole point is that this spans the interface between looptuner and tunableloop.09:48
jtvSo we're talking about how the tunable loop tells the looptuner, "I need you to promise that you'll call this cleanup method at the end, no matter what happens."09:49
jtvOne way we could do it is to make the caller use either "with" or a fixture (from my point of view they do the same thing, just with static/dynamic lifetime) but that burdens the call site with the needs of the type.09:50
stubjtv: I started with ICleanup(loop) to do that. More complex than duck typing, but catches typos when you declare a 'cleanup' method instead of a 'cleanUp' method.09:50
jtvClever.09:51
stubBut I guess this is Python09:51
jtvI wouldn't worry about it _too_ much, no.09:52
jtvI guess it's easier to get the adapter wrong than to get the method name wrong.09:53
stubI'll add cleanUp() to ITunableLoop as an optional method, which will be compatible with loops inheriting from Fixture.09:54
jtvYes, that's nice.  Do we have any of those?09:55
stubNo, but we might if this becomes a more common problem.09:57
* stub wonders if we have any loops that don't inherit from TunableLoop, and we could just use inheritance09:58
lifelessstub: I didn't see any when I was last looking at the code - thats why I suggested adding Fixture to the TuneableLoop base class10:02
wgrantjtv: Could I throw a review your way?10:03
wgrantOh.10:04
wgrantlifeless already did.10:04
wgrantSneaky lifeless10:04
jtvwgrant: yes, but otp now10:04
stubthere are a few in translations10:12
StevenKOMGWTFBBQ10:36
wgrant?10:36
StevenKWe need to QA and deploy r12433 *right* *now*10:37
jmlStevenK: patience.10:38
StevenKThat bug has been annoying me for *weeks8.10:38
StevenKs/8/*/10:38
wgrantIs that the MP diff thing?10:38
StevenKwgrant: Yes10:38
wgrantHeh.10:38
wgrantWe could QA and deploy that in 5 minutes if you really want to.10:39
StevenKWe could, yes ...10:41
LPCIBotYippie, build fixed!10:43
LPCIBotProject devel build (466): FIXED in 5 hr 27 min: https://hudson.wedontsleep.org/job/devel/466/10:43
LPCIBotLaunchpad Patch Queue Manager: [r=leonardr][no-qa] add an API to get all of the subscriptions for a10:43
LPCIBotset of bugtasks.10:43
jmlthat reminds me10:44
jmlsometime this week, I'd like Ursinha & matsubara to get a chance to orchestrate a nodowntime rollout10:44
wgrantThere's not that much orchestration to do, which is nice.10:44
jmlyeah. I get that impression.10:45
wgrantAlthough if they were doing them I think they would make it even more trivial.10:45
jmlyeah, that's also my thinking :)10:45
wgrantThe largest task (apart from sorting out QA stragglers) is turning the deployment report into a list of bugs to put on the wiki.10:46
jmlplus, we really need to figure out this QA vs not-abysmal-to-deploy thing10:46
* jml goes to get food.10:47
wgrantOut of order bug notifications make me sad.11:02
bigjoolsjml: when using the logger in the poppy daemon, everything seems to get swallowed. I vaguely recall some weird trick you need to do to get it working?11:10
=== al-maisan is now known as almaisan-away
jmlbigjools: which logger? poppy uses two.11:20
bigjoolsjml: gah11:21
jmlbigjools: or rather, there's Python logging and Twisted logging.11:21
bigjoolsjml: logging.getLogger("poppy-sftp")11:21
bigjoolsso the former11:21
jmlright.11:21
bigjoolspresumably they need to be connected?11:21
jmlbigjools: you need to add a handler to it, I think.11:21
bigjoolstwisted.... always needs something different :)11:22
jmlbigjools: umm... I guess they should be.11:22
jmlbigjools: historical reasons, when Twisted was first written, Python didn't have logging.11:22
bigjoolsjml: ah I can copy what the buildd-manager does11:23
jmlbigjools: that sounds like a great plan.11:23
bigjoolssorted11:26
wgrantjml: Hah, I just got hit by that LockWarner thing for the first time.11:44
jmlwgrant: yay, now we can be partners in hatred11:44
jmlwgrant: https://bugs.launchpad.net/launchpad/+bug/72116611:45
_mup_Bug #721166: Tests sometimes fail on EC2 due to _LockWarner garbage <build-infrastructure> <Launchpad itself:Triaged> < https://launchpad.net/bugs/721166 >11:45
wgrantjml: The prime target of my hatred at the moment is Zopeless.11:49
wgrantIt has almost perished.11:49
jmlwgrant: I'm glad to hear it.11:49
wgrantAfterwards it may be redirected to this garbage.11:49
jmlheh.11:49
jmlwgrant: there are three separate spurious test failures that bit me last week. I think I'll try to tackle one of them on my next hacking day.11:50
bigjoolsjml: so, the idea for waiting on the log file output works a treat.  Except for the isolation tests :)11:58
jmlbigjools: you mean, ones that call code in-process?11:59
bigjoolsjml: no, the simultaneous upload11:59
bigjoolsI need to wait for multiple occurrences of the magic string12:00
jmlright.12:00
jmla parameter to waitForClose() perhaps?12:00
bigjoolssomething like that yeah12:00
bigjoolsI freaking love Python today12:03
deryckMorning, all.12:04
bigjoolshi deryck12:05
=== almaisan-away is now known as al-maisan
jmlbigjools: yay12:07
bigjoolsjml: string.count() FTW12:08
jmlbigjools: ahh yeah.12:09
jmlbigjools: you know you can do that directly off a string, no need to import string12:10
bigjoolsI didn't12:10
jml'abba'.count('b') => 212:11
jmlI want to spend all of today programming.12:24
jmlBut I am going to have meetings and read specs instead.12:24
bigjoolsjml: heh, doing this fix has highlighted a bug in the hooks.  If the uploads happen *really* close to each other then the path containing the timestamp overlaps12:29
jmlbigjools: yay finding bugs. that sounds like a fairly shallow one, which is even better :)12:29
bigjoolsjml: not entirely sure how to fix it minds12:30
=== Ursinha-afk is now known as U
=== U is now known as Ursinha
jmlbigjools: won't the targetcount uniquify them already?12:30
bigjoolsyeah I just saw that12:30
bigjoolswtf12:30
jmlor are there separate "Hooks" instances?12:31
bigjoolsurgh, that'll be it12:31
bigjoolsnicely spotted12:31
bigjoolsthe cheap fix is to make targetcount static :)12:31
jmlyeah. the slightly less cheap but oh-such-good-value-for-money thing is to put the count on an object with a longer lifetime, such as an object that represents the server12:32
wgrantFor everything else, there's mktmp12:33
* bigjools spots tumbleweed rolling past12:34
bigjoolsunfortunately the shell can't see the server it seems12:35
jtvbigjools: since you're just tumbleweed-spotting, maybe you could review https://code.launchpad.net/~jtv/launchpad/bug-181368-ami/+merge/5091012:35
bigjoolsjtv: self-review such a small change12:36
jtvIt's not the size, it's that I don't know if I did it right.  :)12:36
jtvAlso, there's a useful bash tip in the MP.12:36
bigjoolsyou'll find out when you try and use it :)12:36
jtvYeah I guess.12:37
bigjoolsthat is a useful tip - I've seen it before, never got around to setting it up12:37
jtvFor all those oh-sh*eep moments when you wish you'd remembered to echo $*12:38
jtvSorry, $?12:38
jtvWhy do we hard-code a geographical location into our choice of AMI?  I'm tempted to self-review a change to the Singapore one.  :)12:39
jtvOr is there something in our script that picks the nearest?12:41
jmljtv: approved.12:42
jtvthanks jml, a sanity check is always welcome12:42
jtvI find them more reliable than sheep entrails lately12:42
jmljtv: find a better augur.12:43
jtvWell I thought I did, after Arthur Andersen went down.12:43
jtvOh, au_gur_…12:43
jmljtv: re geographical location, don't know. Maybe the ec2 api docs have something.12:43
jtvIt could probably help a lot to pick the right location… to illustrate, apparently we'd get more bandwidth to the US through a proxy running in EC2 Singapore than we do directly.12:45
bigjoolsthe bandwidth that counts is between the ec2 instance and the DC12:45
jtvbigjools: so we should all be using the one near the DC?12:54
bigjoolsjtv: well I would have thought so, no idea where that is though12:54
bigjoolsbut the b/w between the US and London is immense anyway12:55
jtvlucky bastards12:55
jtvbigjools, was that you who had trouble with the LC_TIME setting going into the image that the image can't deal with?13:01
bigjoolsjtv: yes13:02
bigjoolsI mentioned it in the wiki13:02
bigjoolsit expects en_US13:02
jtvthat's why I'm asking… turns out the script code removes LC_ALL from the env.  It could just do the same for LC_TIME I suppose.13:02
jtvOh, food gong13:02
=== jtv is now known as jtv-eat
bigjoolsjtv-eat: ah yes that'd be better13:03
* bigjools away lunch13:03
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
=== danilos changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: jtv, danilos | https://code.launchpad.net/launchpad-project/+activereviews
danilosforgot about that bit :)13:13
gary_posterugh, staging down for code update again. :-(  Hopefully this one does not become another marathon outage.13:20
gary_posteranyone happen to know if this one has lasted awhile?  (this is staging, not qastaging)13:21
jmlhmm.13:21
jmlec2 is sometimes sending emails that are 33,557,808 bytes long.13:21
gary_posterthat seems excessive13:21
jmlyes.13:22
* jml finds out whether a partial base64 string can be decoded13:22
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
jmlnot by standard python tools, is the answer.13:28
benjijml: if this is a one-off, this thing appears to handle truncated base64 strings: http://www.motobit.com/util/base64-decoder-encoder.asp13:31
=== candrea is now known as Guest89707
jmlbenji: thanks. it doesn't seem to work for me. I'll try to bump up the limits on my mail server and hope for the best.13:34
danilosjml, well, you can always make it in 4 tries at most13:37
jmldanilos: not sure what you mean.13:38
danilosjml, you just try with round_to_4(string), round_to_4(string[1:]), round_to_4(string[2:]) and round_to_4(string[3:]) where round_to_4 rounds the length to zero modulus 413:38
jmldanilos: oh, you're using an actual knowledge of what's going on. that's cheating.13:39
danilosjml, base64 decodes each 4 characters into 3 bytes13:39
danilosjml, heh, ok then :)13:39
jmlhmm. just looks like a data file. can't recognize the format.13:44
jmlderyck: we're really using YUI 3.3 on prod now, right?13:54
deryckjml, indeed we are13:56
jmlderyck: sweet. thanks.13:56
derycknp13:56
* jml adds a hacking task.13:56
allenapjtv, danilos: Do either of you have time to review https://code.launchpad.net/~allenap/launchpad/async-person-merge-162510/+merge/50919?13:58
danilosallenap, I'll take it :)13:58
allenapdanilos: Cheers :)13:59
danilosallenap, I am very happy to see this happening, btw! :)13:59
allenapdanilos: Awesome!13:59
danilos(talking about bug 162510, fwiw)13:59
_mup_Bug #162510: Person:+delete timeouts : Person merging needs to be done asynchronously <canonical-losa-lp> <chr> <feature> <lp-registry> <merge-deactivate> <tech-debt> <timeout> <Launchpad itself:Triaged by allenap> < https://launchpad.net/bugs/162510 >13:59
danilosallenap, line 195 of the diff: "nor is it not guaranteed" sounds kinda weird14:07
danilosallenap, but, first things first: this is going to be backed up by a DB patch for is_pending_merge as well?14:07
danilosallenap, s/is_pending_merge/is_merge_pending/14:07
allenapdanilos: No, it doesn't need a patch.14:08
danilosallenap, how's it going to protect against race conditions?14:08
allenapdanilos: Do you mean against a merge being requested twice?14:09
danilosallenap, yeah, possibly even to a different person14:09
abentleyhenninge: would you be free to mumble soon?14:10
allenapdanilos: I haven't actually checked if it'll break in that case. I assume PersonSet.merge() will break, but perhaps I ought to add a specific check.14:10
allenapdanilos: My intention with Person.is_merge_pending is to use it to either display a message on Person:+index, or to disable all mutations from that page.14:11
danilosallenap, right, but you can do it only inside the session if it's not persistent14:12
allenapdanilos: It's derived from the database.14:12
danilosallenap, i.e. if somebody reloads the page, they won't see a warning and they'll be able to change stuff14:12
danilosallenap, it is? oh14:12
danilosallenap, right, I only got to that point now14:13
allenapdanilos: Adding notifications via the request object is session-bound, or something like that, but I wasn't planning on using that.14:13
danilosallenap, yep, I see how you get it, the presence of a merge job indicates that the merge is pending, all good :)14:14
allenapdanilos: I've fixed the docstring, thanks for spotting that.14:16
=== jtv-eat is now known as jtv
danilosallenap, I suppose framework to run PersonTransferJobs is already there? (or membership notifications wouldn't even go off :)14:21
allenapdanilos: Yeah, it'll get run with: cronscripts/process-job-source-groups.py MAIN14:22
danilosallenap, cool, so the only other thing that I can ask you to do is to make sure DB privileges for that script are suitable for whatever the merging needs (it probably needs a lot more than what it used to); if you want to add a minimal test that runs the script in appropriate environment, I wouldn't mind14:24
allenapdanilos: Good idea :)14:24
danilosallenap, it'd also be nice to get rid of the web server DB user privileges that are not going to be used, but I am sure that's very hard to figure out and very easy to get wrong, so if you feel like it's worth it, just file a bug14:25
allenapdanilos: I think that'll be a case of trial and error. Lots of error. I also suspect that I may end removing nothing.14:26
danilosallenap, and it's a very nice branch, btw, I like it :) r=me14:26
allenapdanilos: Cheers, thank you!14:26
henningeabentley: let's do it in 30 min if that's ok.14:29
abentleyhenninge: sure.14:29
jcsackettabentley: do you know how one gets full mp diffs available on qastaging? i need to qa a bug about diff-overlays.14:36
abentleyjcsackett: You need to run the merge-proposal-jobs script.14:36
abentleyjcsackett: though if your code has landed on staging, it's easier to qa there because the scripts already run.14:36
jcsackettabentley: i'll see if it's there; thanks. if it's not, i assume i have to bug losas for the script?14:37
abentleyjcsackett: yes, you'd have to bug the losas.14:37
jcsackettabentley: thanks.14:38
abentleyjcsackett: also, I think you'll need to run scan-branches before running the merge-proposal-jobs script.14:39
jcsackettabentley: dig.14:39
bigjoolsjml: your suggestion does not work14:45
abentleyjkakar: That issue I was having turns out to be a known bug that References don't know they're associated with ClassAliases.  Bug #68298914:47
jtvbigjools, could you do something for me?  â†’14:48
jtvecho $LC_TIME14:48
jmlbigjools: it does.14:48
bigjoolsjtv: en_GB.utf814:49
jtvthanks14:49
jkakarabentley: Ah, interesting, thanks for letting me know.14:50
bigjoolsjml: pebkac :(14:50
abentleyjkakar: no worries.14:51
=== Ursinha is now known as Ursinha-lunch
leonardrlifeless: apropos our conversation of last week, https://bugs.edge.launchpad.net/lazr.restful/+bug/72375315:10
_mup_Bug #723753: Continuous deployment makes web service mistakes much more dangerous <lazr.restful:New> < https://launchpad.net/bugs/723753 >15:10
henningeabentley: let's chat! ;-)15:18
danilosallenap, hi, do you know if BugNotificationRecipientReason gets used anyhow? should BugNotificationRecipientSet instead use it?15:37
allenapdanilos: Not off the top of my head. I'll have a look.15:37
danilosallenap, thanks15:37
allenapdanilos: What's BugNotificationRecipientSet?15:38
danilosallenap, s/Set/s/ :)15:38
allenapAh ha :)15:39
=== abentley changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: jtv, danilos, abentley | https://code.launchpad.net/launchpad-project/+activereviews
allenapdanilos: Yes, I guess it was meant to be used by BugNotificationRecipients, but that looks like it would just complicate things now.15:44
allenapdanilos: It's dead code, may as well remove it. I wonder if the reason+header generation in BugNotificationRecipients is tested?15:44
allenapI'm almost certain it is, but I can't remember where.15:45
danilosallenap, what's interesting is that BugNotificationRecipientReason is well tested in lib/lp/bugs/mail/tests/test_bugnotificationrecipients.py15:46
abentleydanilos or jtv: could you please review https://code.launchpad.net/~abentley/launchpad/class-alias-mergable/+merge/50940 ?15:46
allenapdanilos: Yeah, odd isn't it. I guess it was never plumbed in.15:46
jtvabentley: coming15:46
=== al-maisan is now known as almaisan-away
danilosabentley, ok, I am letting jtv have it15:47
jtvhe's so generous15:47
abentleyjtv, danilos: thanks.15:47
abentleyjtv: still in the Netherlands?15:47
=== deryck is now known as deryck[lunch]
jtvYes15:48
danilosabentley, fwiw, I remember writing a complex query with ClassAlias, but perhaps you need to explicitely add it to the store.using() list (at least I think it used to work)15:48
abentleydanilos: The issue was that I was using a Reference, and the Reference thought it was part of the class, not the ClassAlias.15:49
abentleydanilos: So I switched to the column property instead, which worked properly.15:49
danilosabentley, ah, ok15:50
jtvabentley: done15:51
jtvClassAliases are pretty shallow AIUI15:51
abentleyjtv, thanks.15:51
jtvabentley: by the way, care to review a similarly small branch for me as well?  https://code.launchpad.net/~jtv/launchpad/bug-723733/+merge/5093515:52
abentleyjtv: the set_trace_if function seems a bit weird to me.  Is its main purpose is to reduce the number of lint warnings?15:56
jtvabentley: yes, though I do also see those as a hint that this needs encapsulating.  If we're doing something weird, repeatedly, then it might as well have a name.15:57
abentleyjtv: I see what you're saying.  I think I might have written it into EC2Command.run instead, but this is fine.16:00
jtvthanks… TBH I was a bit lazy because I didn't want it to overshadow the main change16:01
jtv(And didn't want to spend much time on it)16:01
abentleyjtv: r=me16:01
jtvthanks16:01
jtvdanilos, henninge: the approval page is no longer timing out… I just dealt with a few of the remaining oldest entries.16:03
LPCIBotProject db-devel build (390): FAILURE in 5 hr 50 min: https://hudson.wedontsleep.org/job/db-devel/390/16:04
=== Ursinha-lunch is now known as Ursinha
jcsackettjtv: any chance you might be able to help me figure out why a user can't save any tranlations for the loco-teams directory?16:07
jtvjcsackett: "can't save" any translations?16:08
jcsackettshe puts in some strings, tries16:08
danilosjtv, cool16:08
jcsacketttries to save them, and gets the "try again in a few minutes" message.16:08
jtvjcsackett: sounds like a timeout… got an oops number?16:08
jcsackettjtv: no, just the "Try again in a few minutes, if it persists ask someone in #launchpad" message.16:10
jcsackettjtv: full details are in #launchpad now, if you're interested in hopping in--i'm well into my zone of ignorance on just about anything translation related.16:11
jtvjcsackett: I'll have a look16:11
abentleyhenninge: Does this look reasonable to you? http://pastebin.ubuntu.com/571203/16:12
abentleyhenninge: I was getting ForbiddenAttribute, and switching security policies doesn't fix that.16:13
jcsackettjtv: ok, thanks.16:13
abentleyhenninge: But once an attribute is writable by *someone*, then scripts can write to it.16:14
henningeabentley: yes, looks reasonable. ;)16:14
=== beuno is now known as beuno-lunch
henningeabentley: The reason may be that these attributes are marked as "readonly" in the interfaces.16:16
henningeI was wondering why the "set_schema" config  does not suffice.16:17
henningeso "set_attribute" seems to override the "readonly" flag on the attribute.16:18
abentleyhenninge: Yes, for TranslationMessage, setting it readonly=False makes set_schema provide it.16:20
abentleyTranslationTemplateItem doesn't use set_schema.16:20
henningeinteresting16:21
henningeabentley: I was wondering how setSequence updates the sequence without a set_schema.16:23
henningeabentley: Looking at it, it gets its TransalationTemplateItem instance from a database call, so I guess that returns naked objects.16:24
abentleyhenninge: looks correct to me.16:25
bigjoolsI find it really satisfying that when I want to force a package upload with a bad signature, the dput options are -fu16:33
jml:)16:36
abentleydanilos or jtv: Could you please review https://code.launchpad.net/~abentley/launchpad/translation-splitting/+merge/50949 ?16:36
jtvabentley: bit busy atm, and may get called away.  I'm afraid I'll have to bow out soon.16:37
abentleyjtv: understood.16:38
danilosotp16:40
=== salgado is now known as salgado-lunch
lifelessjml: for Ursinha / matsubara to do a deploy - I'd be delighted to walk them through it whenever16:49
jmllifeless: thanks.16:50
jmllifeless: I think the key thing is getting wgrant to *not* do one16:50
=== jtv changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: danilos, abentley | https://code.launchpad.net/launchpad-project/+activereviews
lifelessjml: why?16:51
jmllifeless: because there are rarely revisions to deploy when Brazil wakes up16:52
lifelessthere are 5 revs queued up already since last nights deploy16:52
Ursinhalifeless, thanks, I'd love to do that16:52
jmlthen I am misinformed :)16:52
Ursinha(before wgrant :P)16:52
lifelessjml: there are rarely revisions ready to go when wgrant and I get up as well - its proactive qa of revs in the queue that gets it ready for a deploy16:53
=== deryck[lunch] is now known as deryck
lifelessright now for instance, a patch from jc is blocking the qa pieline, there are 2 more ready after that, and then the 4th blocked on a patch from me.16:54
lifelessUrsinha: well, lets do one after the team lead call ?16:54
Ursinhalifeless, yes!16:54
lifeless\o/ 74 queries/external actions issued in 4.15 seconds for a bug search on qastaging / ubuntu16:58
=== jtv is now known as jtv-afk
jmllifeless: down from...?17:01
lifelessjml: last week it was timeouts :)17:02
=== beuno-lunch is now known as beuno
=== danilos changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: abentley | https://code.launchpad.net/launchpad-project/+activereviews
danilosabentley, sorry, I am wrapping up for the day, and your branch is not on the small scale (though, I am intrigued by it, since this is something we've been missing for general message-sharing as well :)17:15
thumperderyck: I want to chat with you some time later about some yui / windmill tests, but when I'm more awake and caffeinated17:27
deryckthumper, sure.17:27
=== salgado-lunch is now known as salgado
lifelessUrsinha: would you like to schedule a deploy ?17:28
Ursinhalifeless, yes.17:28
lifelessUrsinha: how would you like to do this - irc, voice, ?17:28
Ursinhalifeless, I'll have a call with jml and then I'll be ready17:28
lifelesskk17:28
Ursinhaworks for you?17:28
lifelessI'll go grab breakfast17:28
Ursinhaargh17:31
Ursinhalifeless, I'm back17:56
lifelesscool17:57
lifelessso17:57
lifelessUrsinha: how would you like to do this - irc, voice, ?17:57
Ursinhalifeless, I'm fine with anything, do you think we need voice?18:01
Ursinhaas in too much information to type18:01
lifelessdunno :)18:01
lifelessok18:01
lifelessso - lets start18:01
lifelessfirst thing is to assess whether there is enough to deploy - we don't want to overload the losas.18:02
lifelessdeploys take about an hour of wallclock time18:02
Ursinharight18:02
lifelessand a losa needs to spend ~ 5-10 minutes during that period kicking parts of it off18:02
lifelesswe do 10 commits a day, so 5 commits is a reasonable number to deploy (assuming nothing really urgent - if there was urgent stuff we wouldn't wait for 5:)18:04
lifelesshttps://devpad.canonical.com/~lpqateam/qa_reports/deployment-stable.html18:04
lifelessshows that we have nothing ready to deploy18:04
UrsinhaI see18:04
UrsinhaI'm pretty familiar with that report at least :P18:05
lifelessbut, if we check to ensure the first commit is safe to deploy18:05
lifelessthen we will have 5 revisions ready to go18:05
lifelessso lets do that18:05
Ursinhayep18:05
Ursinhaso do you ask the landing owner to qa that or you do that yourself?18:05
lifelessif they are around, you might ask.18:05
lifelessas it happens jcsackett is trying to get it qa'd now, but the losas will be gone.18:06
jcsackettlifeless: :-P18:06
lifelessUrsinha: one of the htings I look for is whether it can possibly be worse18:07
lifelessUrsinha: if it can't be, then deploying it is ok :)18:07
lifelessUrsinha: so, I'd visit https://bugs.launchpad.net/launchpad/+bug/687379 - the linked bug18:07
Ursinhahehe18:07
_mup_Bug #687379: Merge proposal diff overlay is bigger than the screen and can't be closed <confusing-ui> <javascript> <lp-bugs> <qa-needstesting> <regression> <Launchpad itself:Fix Committed by jcsackett> < https://launchpad.net/bugs/687379 >18:07
lifelessUrsinha: click through to the merge proposal18:07
lifelessand read whats changed, what the reviewer etc said, and consider the existing behaviour18:08
* jml is off18:08
Ursinhabye jml18:08
Ursinhalifeless, right18:08
lifelessand in this case, it looks like:18:09
lifeless - the old behaviour is unusable18:09
lifeless - the change is tiny and can't break other things - its isolated the branchmergeproposal javascript18:09
lifelessUrsinha: so I would mark this qa-ok immediately18:09
Ursinha  hm, right18:10
Ursinhawe should consider the qa-deployable or something that just says the branch is deployable18:10
lifeless(if losas were around doing a more thorough test like jcsackett tried to, would be awesome. This is a risk balance thing)18:10
Ursinharight18:10
lifelessUrsinha: yes, exactly18:10
lifelessUrsinha: so, go ahead and qa-untestable or qa-ok the bug18:10
* Ursinha marks the bug qa-untestable18:11
lifelessnow we switch back to the -stable report18:12
Ursinhalifeless, I'll poke the script to generate that now18:13
lifelessI typically repeat this for all the bugs - qaing any that can be, assessing others for deployability18:13
lifelessI talk to the engineers / team leads where it seems doubtful18:13
Ursinhaok18:13
lifelesse.g. distro mirror probing script changes are very hard to qa at all18:13
lifelessthen, yes - the script taking a long time to update is a real concern :)18:14
lifelessyou're privileged18:14
lifelessUrsinha: then, once it updates, rev 12437 will be deployable18:15
lifelessUrsinha: so stage two - prepare a deployment request on LaunchpadProductionStatus18:15
lifelessUrsinha: what I do is:18:16
lifeless - open the page, click edit, use ctrl-f and search for 'requested stable depl' - that gets me to the right section18:16
lifeless - and we can see that last nights deploy didn't get moved correctly when it was done, the losas generally do that.18:17
lifelessthere is a big table higher up the page that contains the recently complete deployments18:17
lifelessso we should move last nights deploy up to that table18:17
Ursinhaok, looking18:18
Ursinhalifeless, deployment is already in the big table18:20
Ursinharequested stable deployments is empty18:21
Ursinhaok, now18:21
lifelessah cool18:21
lifelessmy copy of the page was stale I guess18:21
lifelessso, now, we edit the requested stable deployments section18:21
lifelessthis is very mechanical18:21
lifelesswe take the revno from the stable report18:22
lifelessthe 'can be deployed to production' one - second row at the top18:22
lifelessfor the bug #'s column18:23
lifelesswe go through each row in the deployment report and copy the Bug 12345 text18:24
_mup_Bug #12345: isdn does not work, fritz avm (pnp?) <isdnutils (Ubuntu):Fix Released by doko> < https://launchpad.net/bugs/12345 >18:24
lifelesschange it to Bug:123418:24
lifelesswhich makes it a wiki ling18:24
lifeless*link*18:24
lifelessfor requested by put your own name18:25
lifelessfor approved by 'qatagger'18:25
Ursinharight, I took last one as example18:25
lifelessfor roll out to, put 'nodowntime'18:25
lifelessand for comments put any special things that the revisions being deployed need18:26
Ursinharight18:26
lifelessI figure that out by reading all the revisions one at a time in the stable list, clicking through to the bug etc depending on how familiar I am with it18:27
lifelessfor instance, some things need a new feature flag added *before* the deploy starts18:27
lifelessengineers will often arrange for that18:27
lifelessor code so that it doesn't need to happen at the same time18:27
lifelessbut its not always like that, so a small check is good18:27
lifelesssave the page18:27
lifelessping a losa18:27
Ursinharight18:27
lifeless<wait an hour>18:28
lifelessthen click on all the bug links you put in the wiki page to open the bugs18:28
lifelessfor each one, if its fixed by a nodowntime deploy, toggle it to fix released18:28
lifelessif it needs other actions18:28
lifelessor if its a incremental branch18:28
lifelesstoggle it back to in progress18:29
Ursinhaok. right18:29
lifeless(or leave at fix committed if the remaining work is e.g. a deploy to germanium)18:29
lifeless-done-18:29
lifelessthere are bugs open on qatagger for all the pain points :)18:31
Ursinhaah, I know!18:32
Ursinhaabout not being able to run it on demand, don't you have access to lpqateam user on devpad?18:32
lifelessI tried to sudo to it the other day18:32
lifelessdidn't work18:33
lifelesswill try and sort that out when the losas aren't sprinting18:33
Ursinhahm18:33
Ursinhalifeless, file an RT asking for your user to be added to lpqateam on devpad18:36
lifelessyeah, had done18:36
Ursinhathat should be enough18:36
Ursinhaah, cool18:36
lifelesslate last year18:36
lifelessneed to find it, talk to is etc18:36
lifelessnext week :)18:36
lifelessUrsinha: I'd love it if this were documented well enough that losas can operate it easil18:36
lifelessy18:36
Ursinhaaccess to lpqateam?18:37
UrsinhaI can arrange that18:37
lifelessaccess + instructions18:37
lifelesshow to deploy18:37
lifelesshow to do an on-demand run18:37
lifelesswhere it logs18:37
UrsinhaI'll do that18:38
lifeless\o/ thanks18:38
Ursinhaas you gave me such detailed information, it's half written already :)18:38
Ursinhathanks for your time lifeless18:38
lifelessUrsinha: oh, perhaps we've confused each other - I was talking about qatagger operation - I expect deployment requests to come from devs always.18:39
Ursinhaah18:39
Ursinhasure :)18:39
lifelessUrsinha: although I'm happy if you're writing up the deployment request stuff too.18:39
lifelessI thought it was already on the wiki, let me have a look18:39
lifelesshuh, no its not18:40
lifelessdowntime deploys are, but a bit sketchily18:41
Ursinhalifeless, where?18:45
lifelessmergeworkflow page18:46
jcsackettis there a compelling reason to not move canonical.launchpad.validators to lp.services.validators or similar?20:07
thumperjcsackett: no20:24
thumperno reason at all20:24
thumperjcsackett: they could though go to lp.app.validators20:24
thumperwhich I think would be more fitting20:24
thumperthey are more a core part of the app than a service20:25
jcsackettthumper: agreed, that's a much better place.20:25
thumperleonardr: want to chat on mumble about the series work?20:37
leonardrthumper, sure20:38
leonardrlet me push what i have20:38
leonardrlp:~leonardr/launchpad/publish-distro-series-for-recipe20:39
lifelesssinzui: around ?20:49
lifelesssinzui: I've been thinking about your javascriptified batch navigator20:49
leonardrhttps://bugs.launchpad.net/lazr.restful/+bug/72375320:50
_mup_Bug #723753: defaulting to exporting new web service methods on all web service versions makes web service mistakes dangerous <lazr.restful:Triaged> < https://launchpad.net/bugs/723753 >20:50
leonardrthumper:20:51
leonardryou can say whether or not a field is published in the very first version20:51
leonardrwith exported(field, exported=False)20:51
leonardror exported(field, exported=True)20:51
leonardrwe could change it so that the value was the first version in which it's exported20:52
leonardror exported(field, exported="devel")20:52
leonardror add a new argument exported_as_of20:52
sinzuilifeless: I just got back from picking up my children20:52
sinzuiI can talk20:52
lifelesssinzui: cool20:52
lifelesssinzui: I'm wondering about two things20:52
lifelessadmist eathquakes20:52
lifelesssinzui: should we teach batchnavigator to handle sparse batches20:53
lifeless(the first, last 40 thing that bugs do)20:53
lifelesssinzui: and how much work would javascriptifying the batch navigator be20:54
sinzuilifeless: I do not know if there is a lot of gain for that. We talked a little about that with google page results, but did not pursue it since google does not promise there really will be another batch20:55
sinzuiI am strongly in favor of ajaxing the batch navigator.20:55
lifelessthirdly (monty python count to 2 :P)20:55
lifelessthere is this thing about 'only show the comment form if the user has read relevant messages'20:56
lifelesswhere a proxy metric for relevant messages is pretty poor at the moment20:56
sinzuiThat seems like a difficult assertion to make on a user20:56
lifelessindeed20:56
lifelessbut thats why it doesn't show always20:57
sinzuioh?20:57
lifelessyeah20:57
lifelessits so nice that bug one renders now20:57
lifelesshttps://bugs.launchpad.net/ubuntu/+bug/120:57
_mup_Bug #1: Microsoft has a majority market share <iso-testing> <ubuntu> <Clubdistro:Confirmed> <Computer Science Ubuntu:Invalid by compscibuntu-bugs> <EasyPeasy Overview:Invalid by ramvi> <GNOME Screensaver:Won't Fix> <Ichthux:Invalid by raphink> <JAK LINUX:Invalid> <The Linux OS Project:In Progress> <metacity:In Progress> <OpenOffice:In Progress by lh-maviya> <Tabuntu:Invalid by tinarussell> <Tivion:Invalid by shakaran> <Tv-Player:New> <Ubuntu:I20:57
lifelessnote that there is no comment form at the bottom of the page20:58
sinzuiI surmised.20:58
lifelessif you click add a comment, it tries to load every comment20:58
sinzuiI worked on a site once that put a timer on the submit button to encourage users to read what was above it20:58
lifelessbut its nonsense to argue that this stops poor comments, because if there are 200 comments, what inexperienced user will read them all20:58
lifelesslet alone 400, or 100020:58
lifelessso I think I'm thinking alone these lines:20:59
lifeless - short term and long term20:59
lifelessshort term:20:59
lifeless - stop showing first 40, last 40, instead show first 100 in a standard batch navigator21:00
lifeless - if we're on the last batch, show the comment widget21:00
lifelessmedium term:21:00
lifeless - ajaxify the navigator, and unhide the comment widget at the end of the batch21:00
lifelesslong term:21:00
lifeless - some mechanism for really relevant / important comments (e.g. 'do not comment on this bug. File a new one if you have battery problems, no matter how similar you think it is') so that they are more visible/likely to be read.21:01
lifeless[this may imply nested conversations, a voting system, or some other stuff]21:01
sinzuiDoes someone really need to see the beginning  or middle of a conversation started 6 years ago. epic bugs needs a summary of the story so far, the current batch of comments (the last page I suppose) and provide a link to see the hirstorical record21:02
lifelesssinzui: I don't know. Certainly we could start on the last page not the first and let people walk back21:03
lifelesssinzui: for summary of story so far, folk should edit the description21:03
lifelesssinzui: the historical record should be done via batching/incremental display - its just to big to do quickly in one request.21:03
sinzuilifeless: yes that is why we can edit the description21:04
lifelesssinzui: sounds like we're in agreement21:04
sinzuilifeless: I think so. would like short term should start on the last page, but I think that could be medium term if it is costly to know we have more than a reasonable number of messages21:07
sinzuiThat is a bad edit21:07
lifelesswe can do last page equally easily21:07
lifelessI was showing a preconception by suggesting first 100 rather than last 10021:08
StevenKlifeless: So staging is still broken?21:18
thumperStevenK: mumble?21:18
StevenKthAye, sec21:19
LPCIBotProject db-devel build (391): STILL FAILING in 5 hr 24 min: https://hudson.wedontsleep.org/job/db-devel/391/21:28
LPCIBotLaunchpad Patch Queue Manager: [rs=buildbot-poller] automatic merge from stable. Revisions: 12436,21:28
LPCIBot12437 included.21:28
thumperhttps://bugs.launchpad.net/launchpad/+bug/68251621:33
_mup_Bug #682516: No link to recipes for packages <lp-code> <recipe> <Launchpad itself:Triaged> < https://launchpad.net/bugs/682516 >21:33
huwshimiMorning21:36
leonardrthumper: https://bugs.edge.launchpad.net/lazr.restful/+bug/72395921:36
_mup_Bug #723959: Separate the floating "latest" version from the latest version-in-progress <lazr.restful:New> < https://launchpad.net/bugs/723959 >21:36
StevenKMoaning21:36
=== salgado is now known as salgado-afk
=== Ursinha` is now known as Ursinha-afk
=== abentley changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
wgrantlifeless: yes, but heat updating is insane, but it's not *that* insane. Copies only update the head of the bugs that they close, then calculate the max heat of the source package.22:02
lifelesswgrant: well22:03
lifelessyou might think so22:03
wgrantIt's still thoroughly ridiculous.22:03
lifelessbut it would be a lie22:03
lifelessthis is what they calculate:22:03
wgrantBut not utterly ridiculous.22:03
lifelessMax(Bug.heat), Sum(Bug.heat), Count(Bug.id))22:03
wgrantRight, but it's not recalculating each bug's heat.22:04
lifelessno, but its querying it22:04
lifelessthis pages every distro series source package bug in the context in22:04
wgrantRight.22:04
lifelessthis is that insane.22:05
lifelessreading in 400000 bugs is not a good idea.22:05
lifeless[yes its filtered to open status, but it may still be doing a seq scan. I'll need to check]22:06
wgrantI'm of the opinion that bug heat in general is insane, and this is not significantly less sane than the rest of it.22:08
lifelessbug heat has lots of room for improvement, thats true.22:08
=== barjavel.freenode.net changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: abentley | https://code.launchpad.net/launchpad-project/+activereviews
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
jmlbuild is broken.22:13
=== cr3 is now known as 5EXAB9PT4
lifelessjml: windmill timeout22:17
lifelessbuild forced22:18
jmllifeless: thanks.22:19
=== jcsackett is now known as 5EXAB9LW3
lifelessmeepe22:23
lifelessbugs with 300 attachments22:23
=== cr3_ is now known as cr3
sinzuiwgrant: mumble?22:33
=== beuno is now known as 84XAAAATU
=== Ursinha-afk is now known as Guest72054
lifelessreference = 'Making output directory...\n'22:38
lifelessactual = "Making output directory...\nException IndexError: IndexError('list index out of range',) in <bound method _LockWarner.__del__ of <bzrlib.lockable_files._LockWarner object at 0x1378e290>> ignored\n"22:38
lifelessforced22:39
StevenKlifeless: Latest build failure looked like Sphinx to me?22:39
StevenKAh22:39
jcsackettwgrant: bug 723274; set it fix committed/released whatevs as appropriate. it's been assigned to you.22:42
_mup_Bug #723274: Bug status changes to unknown when upstream status changes to dupe <bugwatch> <trivial> <Launchpad itself:In Progress by wgrant> < https://launchpad.net/bugs/723274 >22:42
wgrantjcsackett: Thanks.22:44
StevenKwgrant: I can't see a recent landing from you that enabled logging commits?22:44
lifeless4.8 seocnds in structural subscriptions22:45
wgrantStevenK: It was a side-effect of the ZTM refactor that I thought might affect a lot. But the test suite suggested that only a couple of tests didn't already pass a transaction in. Which might mean that we have an isolation issue.22:45
wgrantStevenK: See the lib/canonical/launchpad/webapp/adapter.py diff in r1241822:47
StevenKwgrant: I'm concerned that I tossed 2 branches at ec2 yesterday, with roughly 2 hours between them -- 1 passed completly and 1 failed22:47
wgrantStevenK: You've seen this error on ec2?22:48
lifelessgary_poster: hi22:49
StevenKwgrant: Yes, it failed for one of the branches, but also fails locally22:49
lifelessgary_poster: heads up on a bug that may be a side effect of, or related to your current project22:49
lifelesshttps://bugs.launchpad.net/launchpad/+bug/72399922:49
_mup_Bug #723999: structural subscriptions taking 4.8 seconds during nomination editing POST <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/723999 >22:49
wgrantStevenK: Was the test order different between the success and the failure?22:50
lifelesswgrant: do you have a branch working on bugtask:+index person late evaluation ?22:52
StevenKwgrant: Yes22:53
wgrantlifeless: I have a fix for the one-person-query-per-visible-comment one.22:54
wgrantI was going to put more in there. But maybe I should just land it.22:54
wgrantStevenK: What changed? Everything?22:54
lifelesswgrant: just land it, or I'll be colliding with you22:54
StevenKwgrant: "Some". I'm checking with a naive diff, and that has 400 lines different22:55
wgrantlifeless: If you have a related branch, you might as well take my 6 character fix.22:55
lifelesswgrant: paste it somewhere then22:55
lifelessor push o rwhatever22:55
lifelessbbiab, lunch breaking22:55
wgrantlifeless: http://paste.ubuntu.com/571411/22:56
gary_posterlifeless, ack, thanks for heads up.  It is certainly related one way or another, and I'll add the bug to the story and to the kanban board.23:20
lifelessgary_poster: thanks23:22
thumperec2 error ?!?! ImportError: No module named pqm.pqm_submit23:22
thumperanyone know what is going on?23:23
jcsackettthumper: oh thank goodness it's not just me.23:23
jcsackettno idea what's going on, but i finally just threw a branch to ec2 test b/c ec2 land was failing with that msg.23:23
thumperhmm...23:24
* thumper does ec2 test23:24
wgrantDo you have bzr-pqm installed?23:24
wgrantThere was a launchpad-dependencies update last night which may have gone fairly wrong.23:25
thumperwgrant: I do23:26
jcsackettme too.23:26
thumperwgrant: it is the ec2 image23:26
StevenKthumper: Which number did it use?23:27
* thumper looks23:27
thumperUsing machine image version 50823:27
wgrantOh, in the image?23:27
wgrantThere was a new one of those last night too.23:27
StevenKMy two landings yesterday used 507. Hmmm, perhaps 508 is busted23:28
wgrantRemove jtv's ID from the list, I guess.23:28
jmlok. now I'm really gone for the day23:28
lifelessciao23:29
jmlhave a super wednesday23:29
wgrantNight jml.23:29
jmlplease fix all of the critical bugs.23:29
lifelessI Can Has Fix ?23:29
jmlThursday, I mean.23:29
lifelesswgrant: -lol-23:29
wgrantlifeless: Yes.23:30
wgrantlifeless: Terribly difficult.23:30
lifelesswgrant: did you spot load_people23:31
=== barjavel.freenode.net changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: abentley | https://code.launchpad.net/launchpad-project/+activereviews
StevenKBad server!23:32
wgrantlifeless: I didn't.23:35
lifelesswgrant: I suspect we're going to be coming back to it23:38
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
lifelesswgrant: so this 6 character fix is easy23:40
lifelessI wonder how many others are like this23:40
lifelessthis hsould drop bug 1 with all comments down to 200 queries.23:44
_mup_Bug #1: Microsoft has a majority market share <iso-testing> <ubuntu> <Clubdistro:Confirmed> <Computer Science Ubuntu:Invalid by compscibuntu-bugs> <EasyPeasy Overview:Invalid by ramvi> <GNOME Screensaver:Won't Fix> <Ichthux:Invalid by raphink> <JAK LINUX:Invalid> <The Linux OS Project:In Progress> <metacity:In Progress> <OpenOffice:In Progress by lh-maviya> <Tabuntu:Invalid by tinarussell> <Tivion:Invalid by shakaran> <Tv-Player:New> <Ubuntu:I23:44
lifelesstheres some poor python scaling in there23:44
wgrantlifeless: Huh? It's at like 490 for only 40 comments.23:46
wgrantThis will take it down to 450 for 40.23:46
wgrantlifeless: Could you mentor https://code.launchpad.net/~jameinel/launchpad/loggerhead-disconnect-701329/+merge/48665?23:48
StevenKwgrant: So, in regards to test_source_query_counts, I should re-ec2?23:49
lifelesswgrant: there https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1880N214823:50
lifelesswgrant: 309 reps of j-i-t person lookup on comments=all23:50
lifelesswgrant: thats 80 comments in your metric, not 40.23:50
wgrantStevenK: Could you send me both subunit logs?23:51
wgrantlifeless: Fair point.23:51
wgrant40 on each end.23:51
lifelessif the commenters are distinct, 80 less23:51
lifelessbut they aren't23:51
wgrantlifeless: Note that lots of those people are not comment lookups, I suspect.23:51
StevenKwgrant: wget http://people.canonical.com/~stevenk/{less-lazr-security-r12400.subunit.gz,link-recipe-on-ppa-page-r12407.subunit.gz}23:52
lifelesswgrant: select count(distinct message.owner) from bugmessage,message where bug=1 and bugmessage.message=message.id;23:52
lifeless count23:52
lifeless-------23:52
lifeless   53523:53
wgrantHmm. That's odd.23:53
wgrantNo manual entry for subunit-diff23:54
wgrantGr.23:54
StevenKsteven@liquified:~% subunit-diff --help23:54
StevenKsteven@liquified:~%23:54
wgrantYes.23:55
lifelessthats jelmers perl special23:55
StevenKAnd lifeless doesn't believe me when I tell him the subunit tools are as user-friendly as git23:55
lifelessI would like it to be done in python23:55
lifelessjelmer: ^ confusion ftw23:55
lifelesshowever its better to have it than not23:55
wgrantTrue.23:56
wgrantDidn't do exactly what I wanted, but was still handy.23:56
jelmerlifeless: I might redo it in python at some point23:56
StevenKjelmer: Or write some help!23:56
StevenKOr some *roff!23:56
jelmerI am looking forward to the day I can write more *roff23:58

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