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

mwhudsonif 99.9% requests were really ok though, nagios would be having to making sqillions of requests to trip at all often00:00
lifelesswgrant: what is hard vis-a-vis shared cache?00:01
wgrantlifeless: We could go with a shared SQLite DB for now. But that probably introduces concurrency issues, and is clearly harder than None :)00:02
wgrantIt also becomes a lot harder once we de-SPOF guava.00:03
mwhudsonparticularly, using sqlite would mean we'd have to remember it when we load balance across machines00:03
lifelessyes00:03
wgrantExactly.00:03
lifelessa concern for historydb too00:03
wgrantDoes historydb have to be shared?00:03
wgrantI don't really know how it works.00:03
spmI heard a rumour that sqlite is webscale?00:03
mwhudsonyes, although that's suboptimal performance vs not working00:03
lifelesswgrant: sharing is how its faster than the prior cache00:04
mwhudsonlifeless: not really00:04
wgrant:(00:04
mwhudsonit's mostly faster than the other cache because it can be updated incrementally00:04
lifelessmwhudson: its faster on additional branches because it can be reused00:05
mwhudsonthe caches are already shared between the two instances of loggerhead running on guava00:05
mwhudsonyes00:05
mwhudsoni agree a cache that could be shared across machines would be better00:05
wgrantDo I want to fix ec2 land to stop adding [ui=none]?00:23
lifelessyes00:23
wgrantIt's also tempting to fix the formatting of the post-bug-filing alert.00:25
lifelessI think thats tagged high not critical, though I wouldn't obeject00:30
wgrantIf it were critical I wouldn't be mentioning it to see if you objected :P00:31
lifelessits really up to curtis to object or not ;)00:34
thumperStevenK: it is BranchNamespace.renameBranch00:36
thumperStevenK: it has a param rename_if_necessary00:36
wgrantlifeless: You define the set of critical bugs, and you are around, so you'll do!00:46
lifelesshah00:51
lifelessanyhow, its probably shallow, and would be lovely to have00:52
lifelessand I'm a strong believer in engineer discretion00:52
wgrantStevenK: Hi.01:11
StevenKwgrant: O hai01:21
wgrantStevenK: I have a quick review for you, if you've got a sec.01:22
wgranthttps://code.launchpad.net/~wgrant/launchpad/bug-711016-no-ui-clause/+merge/4809401:22
StevenKwgrant: Did you see my earlier prod?01:22
StevenK[10:11] < StevenK> wgrant: Is http://pastebin.ubuntu.com/560772/ better?01:22
wgrantStevenK: Completely missed that, sorry.01:24
wgrantStevenK: That looks good. Did you see my diff?01:24
StevenKwgrant: Nope, so I went and changed it anyway.01:24
StevenKwgrant: That MP looks good -- with one proviso -- there's still tests that check ui=blah, right?01:25
wgrantStevenK: Yup.01:26
StevenKthumper: https://code.launchpad.net/~wgrant/launchpad/bug-711016-no-ui-clause/+merge/48094 when you can01:27
thumperStevenK: ack01:27
wallyworldStevenK: you have time today to take a look at this (after your other stuff is done) ???? https://code.launchpad.net/~wallyworld/launchpad/recipe-find-related-branches/+merge/4736701:27
wallyworldthumper: what's your verdict about the extra text in the related branches view - as per my comment to your comment :-)01:29
thumperwallyworld: I don't think the text is accurate, and is likely to be confusing01:32
wallyworldthumper: ok. i'll get rid of it01:33
StevenKthumper: I'm preparing a rollback of recipe deletion, are you fine to rs it?01:40
thumperyep01:40
wgrantYou know, it would be really nice if ec2 phoned home.01:47
wgrantSo we could have a full branch dashboard.01:47
StevenKBloody hell, it's not even 1pm and it's already 36degC01:48
wgrantIt's already hit the max (38°C) here.01:50
wallyworldStevenK: know what you mean. i tempted to go sit in my pool and try not to splash water on the laptop :-)01:50
StevenKHaha01:50
StevenKthumper: Bah! It's *moveBranch*01:51
wgrantlifeless: Thanks.02:12
wgranthuwshimi: Hi.02:25
huwshimiwgrant: Hey there02:26
wgranthuwshimi: I'm currently having some fun with the notification CSS.02:27
huwshimiwgrant: what kind of fun?02:28
wgranthuwshimi: I want to put some <p>s in a notification instead of straight text. But then the notification's bottom padding and the <p>'s bottom margin combine to make a huge gap.02:28
lifelesswgrant: and urls plox ?02:28
huwshimiwgrant: Ah right02:28
wgranthuwshimi: I can fix it by adding a .informational > p:last-child {margin-bottom: 0;}, but that seems bad.02:29
wgranthttps://code.launchpad.net/~wgrant/launchpad/bug-654585-linkify-bug-acknowledgement is the branch.02:29
huwshimiwgrant: so, using last-child is a good thing, but it only works in modern browsers. The usual way around it is to apply a class of "last" to the last <p>.02:31
huwshimiwgrant: This is also kind of ugly, but it's how we've been solving the the problem for years.02:32
wgranthuwshimi: Even IE7 supports it, right?02:32
wgrantWe already use last-child somewhere... possibly breadcrumbs.02:33
huwshimiwgrant: Actually I believe it only works in IE9. But I could be wrong about that02:33
wgrantYou're right.02:34
wgrantWTF02:34
huwshimiwgrant: Indeed.02:34
wgrantDo we care enough about IE<=8 to fix it there too?02:37
wgrantOh, IE>=7 support :first-child, but not :last-child. Lovely.02:40
lifelesssweet02:43
lifeless=== Top 10 Time Out Counts by Page ID ===02:43
lifeless    Hard / Soft  Page ID02:43
lifeless     644 / 8052  Archive:+index02:43
lifelesswgrant: did I just paste three timeouts ?02:44
wgrantlifeless: Just the one.02:45
StevenKBut three lines.02:45
lifeless15:43 < lifeless>      644 / 8052  Archive:+index02:45
lifeless15:43 < lifeless>      200 /  410  BugTask:+index02:45
lifeless15:43 < lifeless>       91 /  194  Distribution:+bugs02:45
lifelessAlso I hate the latest freenode rev02:46
wgrantOnly got the first of those.02:46
lifeless*hate*02:46
huwshimiwgrant: I'm not sure. So I think we should take a time + effort vs  how badly it breaks attitude.02:46
lifeless      68 /   33  Branch:+index02:46
lifeless      43 /   14  Archive:+copy-packages02:46
lifeless      32 /  295  POFile:+translate02:46
lifeless      24 /  283  Distribution:+bugtarget-portlet-bugfilters-stats02:46
lifeless      16 /   49  Archive:+packages02:46
lifeless      11 /   40  Product:+code-index02:46
lifeless      10 /   16  DistroSeriesLanguage:+index02:46
wgranthuwshimi: Mm. I suppose I could hack text_to_html to add a class to the last paragraph.02:47
wgrantBut I hate IE.02:47
huwshimiwgrant: in this case, if the break is aweful and it is easy enough to fix, then do it.02:47
huwshimiwgrant: I believe we have low numbers of IE users, but enough to be significant.02:48
* thumper heads to coffee02:50
StevenKDo we have accessible stats of browser usage?02:51
wgrantSome people have Google Analytics access.02:51
wgrantsinzui was looking at them during the Thunderdome.02:51
huwshimiwgrant: I personally have the opinion that it is time to let things break on IE6, because as long as we attempt to make it look half decent, organisations etc. will not bother to upgrade, but once the web experience starts to break then the pressure from users will be enough to make organisations make the upgrade02:51
wgranthuwshimi: Certainly, disregarding IE6 has been good standard policy for a while.02:52
lifelesshuwshimi: a massive hack attack on it wasn't enough ?02:52
wgrantlifeless: No.02:52
huwshimilifeless: You would think so02:53
huwshimiinfact I think that even if a couple of major websites were broken on IE the pressure would mount (e.g. facebook)02:54
lifelessbut those sites have the most to lose ;)02:55
huwshimilifeless: Well facebook is phasing out ie6 support for some of their features already02:57
lifeless\o/02:58
StevenKSurely businesses will play the "You shouldn't be viewing Facebook at work anyway" card, and not upgrade anyway? :-)02:59
wgrantOh good, just to make it easy the thing that text_to_html iterates over is a generator.03:01
huwshimiwgrant: Is this so that you can add the last class?03:03
wgranthuwshimi: Yes.03:03
huwshimiwgrant: I'm guessing that means it's going to be hard to add the class? Or impossible?03:03
wgranthuwshimi: Well, I can turn the generator into a function that returns a list instead.03:04
wgrantUgh.03:11
* wgrant gives up for a while and lunches.03:12
huwshimiwgrant: When you get back let me know and we can talk about this again.03:18
StevenKthumper: So I'm struggling with this rename-recipes-when-merging branch -- do you think I should subclass IBranchNamespace and then call it from the merging code?03:18
wallyworldif i were to raise a bug to address a performance issue, that would be a Defect rather than an Improvement? Or not?03:22
lifelesswgrant: we don't really have defect/improvement in our workflow03:23
lifelessbah03:23
lifelesswallyworld: ^03:23
wallyworldsooooo, the verdict?03:24
lifelesswallyworld: So I don't understand the question03:24
wallyworldi'm talkin abou the kanban board03:24
wallyworldsorry, not enough context03:24
wallyworldi knew what i meant :-)03:24
lifelesswallyworld: so, you're on the recipe squad right?03:26
lifelesswallyworld: in principle everything you're working on is improvement03:26
wallyworldyeah, but it's to fix the +daily-builds performance issue03:26
wallyworldok, i'll use improvement, thanks03:27
lifelesswallyworld: its an improvement :)03:27
wallyworldlifeless: many times i'm included to consider performance issues as defects :-)03:28
wallyworldanother question too: i've had an ec2 failure email, with no errors attached but instead the message "SMTPError: SMTP error: 552 Message size exceeds maximum permitted"03:28
wallyworldwhere do i look to see what happened?03:28
lifelessblah03:30
lifelessthe compressed subunit log was larger than the mailserver would accept03:30
lifeless'someone' should make ec2 test attach that to the branch using the subunit API in launchpad03:31
lifelessthumper: you've added brand new things to the API before, right ?03:31
lifelessthumper: new types etc, I mean.03:32
wallyworldlifeless: in the meantime, how do i get the test log? i guess it's lost when the ec2 instance shuts down?03:33
spmstub: what's the table/query to see what DB patch a given DB is currently up to?03:33
lifelesswallyworld: yeah :(03:33
wallyworldbollocks :-(03:33
stubselect * from launchpaddatabaserevision order by major,minor,patch;03:34
spmta03:34
wallyworldlifeless: it was the recently done sql bind parameters branch. perhaps something failed so spectacularly that the log file got too big?03:35
lifelessspm: I'm guessing that means we has tree ?03:35
lifelesswallyworld: thats quite possible03:35
spmlifeless: no not yet. I was wonder htf qastaging get's it's db patches at all.03:35
lifelessspm: it doesn't03:36
lifelessspm: it gets restored to.03:36
lifelessspm: it *must not* apply db patches because its what we QA our deployments on03:36
spmyah. and hence was wondering how it managed to maintain some semblance of code/db sync at all.03:37
lifelessspm: its meant to be restored weekly with staging, and for db deploys it has the patches applied to it.03:38
lifelesshowever something seems to be quirky there03:38
spmyes. hence my questions and htf'ing03:38
lifelessspm: not functionally quirky, if that makes sense.03:39
spm:-)03:39
StevenKwgrant: Do you think I should just force a build to get buildbot/pqm happy again?03:40
lifelesswallyworld: hi03:54
wallyworldlifeless: hello03:55
lifelesswallyworld: we have db transactions, reading twice from the DB is pointless.03:55
lifelesswallyworld: perhaps I'm misunderstanding something.03:55
wallyworldyou mean in the deleted recipe branch?03:55
lifelessyes03:55
lifelessunless you're in two separate transactions (which you may need to be to avoid having long running transactions on big uploads)03:56
wallyworldi wasn't sure of the transaction boundaries and so was being (overly) cautious03:56
lifelessif you're in two separate transactions, then I'd just check at the end03:56
wallyworldjust to avoid any possible race conidions03:56
lifelesswallyworld: well, it raises red flags to me03:56
wallyworldi didn't want to go to the expense of trying a build if there was no pint, hence the check up front03:56
lifelesswallyworld: thusly: it makes it more complex, and its either not needed, or it is needed but wasn't clear that it is.03:56
lifelesswallyworld: I guess I'm asking for more surety that it is/isn't rather than a hopeful statement that doesn't fit with transaction semantics.03:57
lifelesswallyworld: separately, whats this daily build performance bug you're going to look at? I'm curious.03:58
wallyworldnot so much transaction semantics but where the transaction boundaries are. i'll revisit it though....03:59
wallyworldhttps://devpad.canonical.com/~lpqateam/ppr/lpnet/latest-daily-timeout-candidates.html03:59
lifelessah, a page dear to my heart03:59
wallyworld+daily-builds, about 1/2 way down03:59
lifelessah yes03:59
lifelessI was mentioning this to tim the other day03:59
lifelessnever completes in < 5 seconds04:00
lifelesssuggests its doing -way- to much work04:00
wallyworldyeah :-(04:00
wallyworldto me that's a defect but.....04:01
wallyworld... i've added an improvement card04:01
lifeless:)04:01
lifelessspm: can you toss a haproxy status page screeny my way? We're seeing more might-be-GIL stuff, and as we haven't done single-threaded appservers yet, I can't eliminate it...04:06
lifelessbut the queue dpeth stuff often gives decent hints04:06
spmprod?04:06
lifelessyeah, servers C,E,H04:07
wgrantStevenK: Always.04:11
lifelesshmm is +code-index memcached?04:11
StevenKFricken buildbot04:11
lifelessok, phew, new bugs for new timeout limit filed04:13
lifelesswallyworld: https://bugs.launchpad.net/launchpad/+bug/711072 - I've doctored it up to add more info for you04:29
_mup_Bug #711072: RootObject:+daily-builds times out <timeout> <Launchpad itself:Triaged by wallyworld> < https://launchpad.net/bugs/711072 >04:29
lifelesswallyworld: I hope that helps04:29
wallyworldlifeless: thanks, although you've taken all the joy away of me finding that myself :-) i don't mind getting down and dirty with a profiler you know :-)04:31
lifelesswallyworld: I logged into devpad04:34
lifelesscd /srv/launchpad.net-logs04:34
lifelessgrep +daily-builds lpnet/*/2011-02-01 -r04:34
lifeless(I didn't get the joy of profiling either)04:35
wallyworldlifeless: thanks for the tip04:35
StevenKbuildbot, DIAF. Whoever thought the xmlrpc interface to it is documented is brain-dead04:52
lifelessStevenK: it was fairly straightforward when I read the code04:52
StevenKI love how buildbot-poller hard codes lucid_lp and lucid_db_lp in multiple places.04:53
thumperlifeless: yes in the past I have, but not for ages04:59
* thumper is making dinner04:59
lifelesswgrant: where are you up to on archive:+index ?05:11
wgrantlifeless: The OOPSes I've looked a recently have been for a copy archive, and resulted in bug #709717.05:15
_mup_Bug #709717: ArchiveView.num_pkgs_building can be very slow <lp-soyuz> <oops> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/709717 >05:15
wgrantI haven't checked the general case since Julian's fixes.05:15
lifelesswgrant: can you pleae put page ids in titles of such bugs? helps me at least ;)05:16
wgrantlifeless: Sure, sorry.05:17
lifelessno need to apologise05:17
lifelessits informal05:17
huwshimiHave a good rest of the day people.06:13
lifelessStevenK: so whats up with Revision 12277 can not be deployed: needstesting06:26
lifelesswgrant: still around ?06:30
lifelesswgrant: why in bug 691478 do we need a union ?06:30
_mup_Bug #691478: Archive:+index timeouts <dba> <qa-ok> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/691478 >06:30
wgrantlifeless: There are a couple of places we use them.06:34
wgrantOne is to determine the set of builds that we need to consider: we grab those in the archive itself, and union with those that were copied in.06:34
lifelessI'll be glad when wallyworld's parameter saving patch gets stashed06:38
lifelesslol06:38
lifelessok, I think I need to call it a day06:43
StevenKlifeless: Sorry, I was picking up Sarah; still here?07:21
lifelessStevenK: here08:03
StevenKlifeless: I'm rolling it back and not QA'ing since I don't want users to lose information when they merge if they have recipes.08:32
* wgrant stabs lucid_db_lp.08:36
lifelessStevenK: ok, nowish ?08:43
StevenKlifeless: It has been rolled back, it's tip of devel08:44
lifelessStevenK: sweet08:46
thumperhttps://code.launchpad.net/~thumper/lazr-js/multi-line-editor-goodness/+merge/48118 if someone likes looking at styles and javascript08:56
* thumper is really done08:56
bigjoolsmorning08:56
* thumper claims 6 bug fixes with that merge proposal \\o/08:58
* thumper flees the office08:58
gmbLow bandwidth good morning.09:00
bigjoolscoffee shop or 3g?09:00
adeuringgood moring09:01
gmbbigjools: Hahaha. 3G round here? To make a hollow laughing. At the moment I'm doing irc and email over GPRS. Coffee shop will happen later when traffic in town has died away.09:03
bigjoolszoiks09:03
gmbI know. Party like it's 1995.09:04
mrevellHowdy09:18
bigjoolsopen id + redirects = FAIL09:28
bigjoolswgrant: around?09:44
wgrantbigjools: Hi.09:54
wgrantDid you break mawson?09:54
bigjoolswgrant: no09:54
wgrant:(09:54
bigjoolsbut I am testing on it09:55
wgrantbigjools: What provides bzr lp-land? bzr-pqm?09:56
bigjoolswgrant: yes09:56
bigjoolswgrant: quick question for your consideration:09:57
bigjoolsin rescueBuilderIfLost() I want to fail the builder if a nonvirtual builder ends up in ABORTED09:57
bigjoolsbecause we can't be sure abort() worked09:57
bigjoolswhat do yo uthink?09:57
wgrantThey only end up ABORTED if someone manually kills things. Acting on ABORTING might be more useful.09:58
bigjoolswgrant: the manually killing thing is precisely the situation I am considering09:58
bigjoolsand catches the ABORTING stage too09:59
bigjoolssee bug 70534209:59
_mup_Bug #705342: buildlog contains a mix of two different builds <Launchpad itself:In Progress by julian-edwards> < https://launchpad.net/bugs/705342 >09:59
wgrantHmm, actually, they will also end up ABORTED once the build finishes.09:59
wgrantThat's the normal case.09:59
wgrantSigh.09:59
bigjoolshmmmmn?10:00
bigjoolsthere's nothing normal about it10:00
wgrantBuilders will eventually recover from ABORTING without manual intervention.10:00
wgrantBecause the build will finish.10:00
wgrantI wonder how often that happens.10:00
bigjoolswell the double build thing happens even when we call cleanSlave after seeing ABORTED10:01
bigjoolsthere's a plethora of slave bugs here10:01
wgrantRight. After manual intervention.10:01
bigjoolsyes10:01
wgrant(in other news, a few hundred lines of lpland look remarkably identical to autoland)10:02
wgrantI wonder if the same diff applies.10:02
bigjoolsso if we end up in ABORTED on a nonvirtual slave I am suspicious10:02
bigjoolsand therefore want to fail it10:02
bigjoolsbecause it means the admin has pebkac10:02
wgrantNot always.10:03
bigjoolsmostly10:03
wgrantI do not know the relative frequencies.10:03
wgrantI suspect that the problematic case is a tiny minority.10:03
* bigjools greps10:03
bigjoolsI only see one case10:05
wgrantOK, I should not be able to take a 154 line diff and apply it to a different project with no conflicts.10:07
bigjoolsI am making the change anyway10:07
bigjoolswgrant: :(10:07
wgrantbigjools: OK.10:07
wgrantI guess we'll see how it goes.10:07
bigjoolsyeah10:07
bigjoolsif nothing else it'll prevent serious issues10:07
wgrantbigjools: Also, as you may be aware, We have an upcoming Debian release.10:08
bigjoolsnow, to work out why assertFalse doesn't fail for a True value10:08
bigjoolsyeah10:08
wgrantI've landed the config changes already.10:08
bigjoolsI saw10:08
wgrantDo we need to do anything beyond creating the new series and adding the series name to iron's crontab?10:08
bigjoolsnot entirely sure tbh, it's been a while since we changed gina config!10:09
bigjoolsdogfood FTW10:09
wgrantIndeed.10:09
wgrantI know this will work. I was mostly wondering if there were any instructions to create the series, or if we should just imitate the previous one.10:10
bigjoolstest it on DF10:10
wgrantk10:10
wgrantHow do I get the Debian archive onto there?10:11
wgrantCan I sync bits of it from iron or similar?10:11
bigjoolslet me know if you want to bring it down/up since I am testing10:11
bigjoolsummm ask Steve, he did something with it recently10:11
wgrantI can't do it yet, since wheezy doesn't exist.10:11
wgrantAlthough I guess I could mangle the squeeze indices to look like wheezy.10:11
* bigjools - > call10:12
jtvHi folks how do I make my tests pass in python?  I keep saying "pass" but it doesn't work.10:33
bigjoolscan someone take a look at this and guess as to why, although the assertionerror is raised, the test doesn't fail? http://pastebin.ubuntu.com/56067411:00
=== wgrant_ is now known as wgrant
bigjoolsjml: around?11:16
LPCIBotProject devel build (407): FAILURE in 5 hr 38 min: https://hudson.wedontsleep.org/job/devel/407/11:20
jmlbigjools: am now11:21
* gmb returns, via Starbucks.11:21
bigjoolsjml: can you check my paste above please11:21
gmbThe coffee blows, but the wifi is oh so sweet.11:21
bigjoolsjml: I've got a failure in a twisted test but it's not causing the test to fail11:21
bigjoolsdunno where the problem is, trying to debug the test runner ...11:22
bigjoolsgmb: compared to the Dallas hotel coffee, Starbucks was great.  :(11:22
jmlbigjools: yuck. can you paste the test & what happens when you run it?11:22
gmbWell, yeah.11:23
jml(the full class would be nice, actually)11:23
bigjoolsjml: http://pastebin.ubuntu.com/560899/11:23
bigjoolsthe if 1==2 is to avoid the condition that makes the test pass11:24
jmlbigjools: does the breakpoint get triggered?11:28
bigjoolsjml: yes11:31
bigjoolsjml: see http://pastebin.ubuntu.com/56067411:31
jmlbigjools: the problem is that the assertion error is being swallowed?11:32
bigjoolsjml: that's what it looks like11:32
bigjoolswhen I debug, I can see it getting recorded as a Failure, then nothing happens when it ends up in fail_if_exception_caught()11:33
jmlbigjools: OK. Let's try to whip up a minimally reproducing example.11:33
* bigjools tries something else11:33
bigjoolsjml:11:34
bigjools    def test_failing_test(self):11:34
bigjools        self.assertFalse(True)11:34
bigjoolsdoes not fail ...11:34
jmlbigjools: that would be a minimally reproducing example.11:35
bigjoolsindeed :)11:35
jmlbigjools: just trying locally, in case it's something in your branch / local config.11:35
bigjoolsok11:35
bigjoolsjml: I added that to TestBuilder FWIW11:35
jmlcannot import name BuildNavigationMixin...11:36
bigjoolscirc imports :/11:37
jmlI haven't changed anything!11:37
bigjoolsif you run with -t it doesn't do it11:37
jmloh right.11:37
bigjoolsonly if you specify the module11:37
bigjoolsle sigh11:37
bigjoolsjml: I've narrowed it down to the presence of this line in the test class:11:38
bigjoolsrun_tests_with = AsynchronousDeferredRunTest.make_factory(timeout=10)11:38
bigjoolsremove that and the simple case fails11:38
bigjoolsthis is rather worrying :)_11:38
jmlbigjools: that line says "use the reactor when running tests and wait for deferreds to fire"11:39
jmlI expect the bug is in ADRT though.11:39
jmldammit. I've got to go.11:40
jmlbigjools: please see if you can reproduce it using just testtools.11:40
jmlbigjools: file a bug on testtools and I'll fix it when I get back.11:40
bigjoolsjml: I'll dig11:41
bigjoolsthanks11:41
deryckMorning, all.12:06
bigjoolsjml: https://bugs.launchpad.net/testtools/+bug/71120912:26
_mup_Bug #711209: When running Twisted tests, failures are not reported <testtools:New> < https://launchpad.net/bugs/711209 >12:26
wgrantjelmer: Could you please land that bzr-pqm change? I don't think I have privs.12:34
jelmerwgrant: sure12:38
jelmerwgrant: I really think this kind of stuff should live in another plugin, perhaps the same plugin as lpreview_body12:41
jelmeranyway, not your fault :)12:41
wgrantjelmer: Yes :(12:43
wgrantHmm, recipes are pretty cool.13:10
gary_posterallenap: ping?13:18
allenapgary_poster: Hi there.13:21
gary_posterHi allenap :-) .  Could I have a second review from you on a branch?  It is a branch that moves the bug_notification_level from structural subscriptions to the filter.  I have one specific question for you, and then I'd appreciate a general review as well.  https://code.launchpad.net/~gary/launchpad/move-events-to-filters/+merge/48069  Can you take the time for that?13:23
gary_posterit's a big branch :-/13:23
allenapgary_poster: Sure :)13:23
gary_posterthank you!13:24
gary_posterallenap, the specific question is about the delete method on the filter.  I pose the question/concern in the second reply to the MP, about the XXX13:25
allenapgary_poster: Cool.13:26
gary_posterthanks again13:26
=== bac changed the topic of #launchpad-dev to: Performance Tuesday | https://€‹dev.launchpad.net/€‹ | PQM is open | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
deryckabentley, adeuring -- I14:00
deryckI'm coming :-)14:00
maxbbac: Um... did you just introduce weird unicode into the topic? :-)14:05
bacmaxb: no, i tried to remove weird unicode14:24
=== bac changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
=== leonardr changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: leonardr | https://code.launchpad.net/launchpad-project/+activereviews
jmlbigjools: the test doesn't fail when run purely with testtools14:44
jmlas in, it fails correctly14:44
bigjoolsjml: :/14:44
bigjoolsdid you see the bug?14:45
jmlbigjools: yeah, I did.14:46
jmlbigjools: bringing in more of the LP stack now to reproduce14:46
bigjoolsjml: I have no clue why it thinks that attribute is not settable14:47
bigjoolstrez bizarre14:47
=== matsubara is now known as matsubara-lunch
jmlthis would be easier if my laptop wasn't suffering display refresh problems14:48
* jml tries a different runner14:49
* bigjools discovers how hard it is to search for an sql statement containing "except"14:50
jmlhmm.14:50
jmlso w/ ADRT it passes incorrectly14:51
jmlw/ SDRT it gives that stack trace that you supplied in the bug14:51
jmlw/ RT it fails as it ought.14:51
bigjoolshummm14:51
jmllet me eliminate zope.testing14:51
bigjoolsthanks for debugging14:51
jmlactually, first, getting rid of LP's base TestCase14:52
jmlbigjools: np.14:52
=== salgado is now known as salgado-lunch
jmlhttp://paste.ubuntu.com/560985 - huh14:58
* jml tries with just testtools14:58
bigjoolsjml: I bet that something is declaring that attribute as a @property when the other classes are not15:00
bigjoolseasy to grep for it15:00
jmlwhich attribute!15:00
bigjoolsthe one in the traceback15:00
jmlthe exception message specifies neither the object nor the attribute name15:01
bigjoolsI pdb'd far enough to find it15:01
bigjoolslook in the traceback!  last line15:01
jmlf_locals15:02
bigjoolsappropriate name15:03
jmlhmm.15:03
bigjoolsthe other worrying thing is that an except was totally swallowed15:03
bigjoolsexception15:03
jmlthis is perplexing.15:04
jmlthe exact same test behaves correctly (i.e. fails) when run as part of the testtools suite15:05
bigjoolsso is the async runner inserting a class into the hierarchy that declares f_locals as a property?15:05
bigjoolssorry, not giving this my full attention15:06
jmlno, it's not.15:07
jmlif it were, it would fail when run as part of the testtools suite15:07
jmlhmm.15:08
abentleybigjools, I seem to be getting None for this when processing a source package recipe build fails.  Could some of these relationships be waiting for the upload to succeed before they're set? http://pastebin.ubuntu.com/560988/15:09
bigjoolschecking15:09
jmlbigjools: also, don't worry about attention. it helps me enough to dump new data in the channel :)15:09
bigjoolsabentley: SourcePackageRelease won't exist will it?15:10
bigjoolsjml: heh ok :)15:10
abentleybigjools, I guess not.  Is there another way I can find the sourcepackagerecipebuild for a packageupload?15:12
bigjoolslemme see15:12
jmlok. I have no idea how I got the behaviour I pasted.15:12
adeuringdanilos: do you have some time to discuss the remove_translations script (bug 705652)?15:14
_mup_Bug #705652: Make remove_translations side aware. <upstream-translations-sharing> <Launchpad itself:In Progress by adeuring> < https://launchpad.net/bugs/705652 >15:14
danilosadeuring, sure, in say 30 mins, would that work for you?15:15
adeuringdanilos: sure.15:15
danilosthanks, adeuring, and feel free to re-ping me in that time :)15:15
adeuringdanilos: ok, will do :)15:16
bigjoolsabentley: hmmm I don't understand how there is a packageupload at all if the upload failed15:16
jmlhah15:17
jmlok15:17
bigjoolsat what point are you looking for this data, in the failure code?15:17
jmlI think it's something imported by test_builder that's playing havoc15:17
bigjoolsjml: yay....15:17
jmleasy enough to figure out15:18
bigjoolsabentley: if there's a failure, you need to fall back to the data in the changes file really, the database will not be intact and is about to get its txn aborted15:18
* jml bisects15:18
bigjoolstwo jmls!15:18
bigjoolscan we put one of you in another timezone?15:19
abentleybigjools, this is in the archiveuploader, which already uses a PackageUpload object.15:19
bigjoolsabentley: right, but I doubt it's committed yet15:19
bigjoolsabentley: what are you fixing/doing exactly?15:19
abentleybigjools, I am fixing the way the PackageUpload object determines whether it's processing a user upload or a build.15:20
abentleybigjools, until my changes, it used self.builds for that.15:20
bigjoolsas in a recipe build15:20
bigjoolsabentley: the builds won't be signed15:21
abentleybigjools, as in a recipe build or binary build.15:21
bigjoolsuser uploads are always signed15:21
bigjoolsabentley: what's the problem you're fixing?15:21
abentleybigjools, it's sending two emails because part of the code thinks it's doing a user upload and part of the code thinks it's doing a build upload.15:22
bigjoolsok15:22
bigjoolswhat are the conditions it's checking?15:22
bigjoolsand, wtf, why 2 places!15:22
jmlhah15:25
jmlok.15:25
abentleybigjools, PackageUpload is now using self.builds and getSourceBuild to determine whether it's doing a build.  UploadProcessor is using its own, very different  self.builds to determine whether it's processing ubilds.15:25
jmlfound the offending line in lp.testing.__init__.15:25
jmlnow have to figure out why it's there before I kill it with great killing.15:26
abentleys/ubilds/builds/15:26
jml(also, implicit global monkey patches of core libraries should always have a comment)15:26
jcsackettjml: and should maybe be avoided, if possible. :-P15:27
bigjoolsabentley: ok, I'll have a looksee15:27
jmljcsackett: well, I guess.15:27
jmlhuh. I reviewed the change.15:28
jcsackettjml: i mean, you're talking the realm of tests, where monkeypatching is sort of required. but "implicit global monkeypatch" is sort of a frightening prhase, don't you think? :-P15:28
bigjoolsabentley: what is calling those, the notify() stuff?15:28
jmljcsackett: yeah, it is.15:28
bigjools_Frame.f_locals = property(lambda self: {})15:28
bigjoolswtf!15:28
jmljcsackett: here it's really a specific instance of "imports should not have side effects"15:29
jmlbigjools: looking into it now15:29
jcsackettjml: dig.15:29
jmlbigjools: found the bug and the code review15:29
jml425113 fwiw15:29
bigjoolsexcellent15:29
bigjoolsbug 42511315:29
_mup_Bug #425113: Some tests can fail without detection <build-infrastructure> <lp-foundations> <Launchpad itself:Fix Released> <Twisted:New> < https://launchpad.net/bugs/425113 >15:29
abentleybigjools, yes, PackageUpload.notify15:29
bigjoolsoh the irony15:29
bigjoolsabentley: right, there's two lots of email that goes out15:29
bigjoolsso it makes sense15:30
jmlhmm.15:30
jmlthere was a comment in the MP15:30
jmlahh, it got moved, probably by a zealous import formatter.15:31
abentleybigjools, I think ultimately it would be good to have polymorphism change the behaviour of PackageUpload.notify depending on whether it's a build or user upload.15:31
bigjoolsabentley: so, the code at the top of notify() is clearly wrong for recipe uploads15:31
=== almaisan-away is now known as al-maisan
jmlcurse you distribution mirror prober!15:32
bigjoolsjml: it'll be fun to see how many tests start failing when you remove that15:32
abentleybigjools, the test for whether it's SECURITY?15:33
jmlbigjools: thing is, it was added to stop tests from failing silently15:33
bigjoolsjml: hence: [15:29:34] <bigjools> oh the irony15:33
jmlyeah15:33
jmlI guess what I mean is, I don't think anything will fail when I remove it15:33
bigjoolsabentley: oh actually, scratch that15:34
=== salgado-lunch is now known as salgado
jmloh15:34
jmlexcept that maybe some tests are failing silently now15:35
jmlwas a bit too focused to get that15:35
bigjoolsexactly15:35
jmlthe thing here is that testtools doesn't have the bug that trial has15:36
bigjoolsabentley: so sending two emails is the right thing in some circumstances15:36
bigjoolsabentley: do you have a case where that's wrong?15:36
jmlI'm going to move this monkey-patch into the TwistedLayer, which should do the trick.15:36
bigjoolsabentley: actually for PPA uploads it should always be one, I am thinking of the distro case15:37
abentleybigjools, right.15:37
jmlffs15:37
jmlhow do I change a bugtask against testtools to be targeted against Launchpad? it says "too many matches" when I type "launchpad"15:38
abentleyjml, use the dropdown thingy.15:38
bigjoolsabentley: can you point me at the code in the upload processor?15:39
bigjoolsit's been 2 years since I delved into the notification code15:39
jmlabentley: ta15:40
abentleybigjools, lib/lp/archiveuploader/uploadprocessor.py:63415:41
bigjoolsabentley: the email bit I mean15:41
bigjoolsit's not sending email there?15:41
bigjoolsgrar, this code is utterly shite15:42
abentleybigjools, it's invoking self.build.notify there.15:42
abentleybigjools, and hey! that's my code!15:42
bigjoolslol :)15:42
abentleybigjools, well, I refactored it, anyhow.15:42
bigjoolsok, so that code there is for BFNs15:43
abentleyBFN=Build Farm Notification?15:43
bigjoolsall the routine notification should be done in PU.notify15:43
bigjoolsbuild failure notification15:43
abentleybigjools, what do we notify about except failure (and success for recipe builds):?15:44
bigjoolsuploaders always get an email15:44
bigjoolsfor source uploads anyway15:45
abentleybigjools, and we don't permit binary uploads, right?15:45
danilosadeuring, heya :)15:45
bigjoolsabentley: not from user15:45
bigjoolss15:45
adeuringhi danilos. shall we talk on mumble?15:45
danilosadeuring, sure thing15:46
bigjoolsabentley: process-upload is invoked with --builds in the buildmaster machine and then it knows to allow build uploads15:46
abentleybigjools, right, that's where UploadProcessor.builds comes from.15:46
bigjoolsabentley: if you can, I  would try and poke all your notification code into PU.notify15:47
bigjoolsmove it away from the build15:48
bigjoolsthen it will be consistent with the existing processing15:48
bigjoolsand you can easily check to see if it's a recipe upload if you want to tweak any text15:49
abentleybigjools, I can do that, but PU will still be incorrectly detecting that this is a user upload.15:50
=== deryck is now known as deryck[lunch]
bigjoolsabentley: check to see if the upload is signed15:50
bigjoolsit does that in a couple of places already IIRC15:50
bigjoolsself.signing_key15:51
bigjoolsabentley: once you move the notification code here, the logic will then be correct for when we start uploading sources from recipe to Ubuntu15:51
abentleybigjools, actually, in order to move the code into PU.notify, I'd need to pass the build into PU.notify, so I guess I can just check whether it's None.15:52
bigjoolsabentley: you don't need to pass the build15:53
abentleybigjools, I want to do notification by calling self.build.notify, as we do with other build notifications.15:53
bigjoolsabentley: no, use PU.notify15:53
abentleybigjools, I don't want to duplicate the code needed to send a build notification.15:53
bigjoolsotherwise it will never work properly15:54
bigjoolsthis is not a build notification15:54
bigjoolsit's a source upload notification15:54
abentleybigjools, does not compute.15:54
bigjoolsyou are uploading a source package that has come from a recipe15:54
bigjoolsall of the notification logic for that is already there15:55
bigjoolsall you need to do is possibly add extra text if you know it's from a recipe (I've not seen the recipe notifications)15:55
abentleyNo, it's not.  Users would get a totally different email from what they used to get.15:55
bigjoolsdoing this as a build notification is wrong15:55
abentleybigjools, why?15:55
bigjoolsI just explained15:55
bigjoolswhere are the recipe "build" emails?15:56
abentleyI disagree.  I think upload failures should look like other build failures, except they should include the upload log.15:56
abentleybigjools, this is how we used to do it.15:57
sinzuiI wonder how hard it would be to add a feature to inline help to create self-documentation for enums15:57
bigjoolsthen they are totally different to normal source upload emails and that is inconsistent15:57
bigjoolswe created the source upload format after a LOT of consultation with people15:57
abentleybigjools, the people who are doing recipe builds are expecting consistency with build failure emails, not source  upload emails.15:57
bigjoolswho are they?15:58
=== beuno is now known as beuno-lunch
abentleybigjools, upstreams.  This is "bridging the gap" work.15:58
bigjoolswhat about successful uploads?15:58
abentleyFor recipes, successful uploads are generating build-style notifications.15:59
=== matsubara-lunch is now known as matsubara
bigjoolsI don't think we should be doing that16:00
bigjoolsit's inconsistent with source uploads16:00
abentleybigjools, I think we should, because it's consistent with what we were doing before async uploads were implemented, and because source upload format is not valued by the target audience.16:01
bigjoolsthis will cause a lot of issues when we start doing recipe builds for ubuntu16:01
bigjoolserrr, yes, it is16:01
bigjoolsthe format is irrelevant anyway, I am telling you where to send the notifications from16:02
bigjoolsyou can format them how you like16:02
bigjoolsor they like16:02
abentleybigjools, in order to format them how I like, I'm going to pass the build in.  Otherwise, I'd have to omit useful information from the notification.16:02
bigjoolsif you do it from the build object, you will end up duplicating all the logic in PU - as you are now discovering16:03
bigjoolsok - you'll need to pass the build in if you can't get hold of it16:03
abentleybigjools, no, I won't.  the logic is quite different.16:03
bigjoolsok - ignore me16:03
jmlneed a review for https://code.launchpad.net/~jml/launchpad/failing-tests-bug-711209/+merge/4818416:08
jmlfix for some tests failing silently16:08
sinzuihi jml: I will take it16:09
jmlsinzui: thanks.16:09
sinzuijml: r=me16:14
jmlsinzui: ta16:14
jmlbranch now in ec216:25
jmlI can hardly wait.16:25
sinzuibigjools: ping16:29
leonardrreviewer needs some reviews done: https://code.launchpad.net/~leonardr/lazr.restful/web-link/+merge/48052 and https://code.launchpad.net/~leonardr/launchpad/web-link/+merge/4725816:31
bigjoolssinzui: otp, will get back to you16:31
danilosallenap, hi, you around?16:32
allenapdanilos: Yes, but I need a few minutes.16:32
danilosallenap, sure thing16:32
leonardrall unassigned reviews in the review queue are done16:33
leonardrexcept mine16:33
bigjoolssinzui: hi, how can I help16:36
sinzuibigjools: I am reading line 1974 of lib/lp/soyuz/doc/archive.txt. Why is the team OPEN.16:37
abentleybigjools, I see that isAutoSyncUpload checks both signing_key and contains_build, which suggests that they could vary independently.  Are you sure checking for a signature is a reliable test, or did you mean something else?16:38
bigjoolssinzui: I suspect no reason at all16:38
sinzuiActually I think I know. Because a MODERATED requires an extra approval step for future tests in the doc16:38
bigjoolssinzui: ah yes, good point16:38
bigjoolsthat doctest is a nightmare16:39
bigjoolsI've watched it grow over 3 years16:39
sinzuibigjools: so it is. I am going to change the doc to MODERATED and will update another test to use addMember16:39
sinzuiOr I can delete the entire section if I find a unittest for this behaviour16:39
bigjoolssinzui: +116:40
sinzuithank bigjools16:40
bigjoolsabentley: it's possible in the past that they did, but builds are never signed now16:41
bigjoolsabentley: what time do you start work normally?  I want to call you about this tomorrow16:42
abentleybigjools, I start work at 14:00 UTC.16:42
bigjoolsok, thanks16:42
allenapdanilos: Sorry about that. My son was demanding some toy train time. What's up?16:43
LPCIBotProject devel build (408): STILL FAILING in 5 hr 24 min: https://hudson.wedontsleep.org/job/devel/408/16:45
LPCIBot* Launchpad Patch Queue Manager: [r=julian-edwards][ui=none][bug=708785] Fix a trivial speeling mistak16:45
LPCIBoton the 'bug also affects' popup help text.16:45
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless,16:45
LPCIBotstevenk][bug=711016] Stop ec2 land from adding [ui=none] to commit16:45
danilosallenap, no worries :)16:45
LPCIBotmessages, since PQM no longer requires it.16:45
LPCIBot* Launchpad Patch Queue Manager: [rs=thumper][bug=683798,16:45
LPCIBot669288][rollback=12277] Stop deleting recipes when people/teams are16:45
LPCIBotmerged.16:45
danilosallenap, so, I have this lovely duty of implementing LIFECYCLE direct subscriptions16:45
danilosallenap, I've so far implemented the way to figure out what a certain change should be notified on16:46
danilosallenap, like this: https://code.launchpad.net/~danilo/launchpad/lifecycle-subscription/+merge/4818516:48
danilosallenap, now, I wonder how to best test for any changes in subscribers/bug.py add_notification where I want to use change.change_level directly16:49
danilosallenap, also, in add_bug_change_notifications there's a few getRecipients calls which all use METADATA as the level16:50
danilosallenap, and I am not sure how to best modify this16:51
allenapdanilos: Did you say anything between "I've so far implemented ..." and "and I am not sure ..."?16:52
danilosallenap, I think I did :)16:52
allenapdanilos: Rats, I got knocked off t'internet and bip didn't give me any scrollback.16:52
allenapdanilos: Can you say it again?16:52
danilosallenap, pasted privately16:53
danilosallenap, under the assumption that it was you who got knocked off, and not me :)16:53
allenapdanilos: Cool. Erm, can I look at the branch so far?16:53
danilosallenap, sure thing, it shouldn't be hard to deduce URL from the WIP MP :)16:54
danilosallenap, and in the MP, you can also see the diff so far, just to get an idea of what I am doing16:54
allenapdanilos: You're making me work :)16:55
danilosallenap, there is a diff ready to consume at https://code.launchpad.net/~danilo/launchpad/lifecycle-subscription/+merge/48185 :)16:55
danilosallenap, and ok, lp:~danilo/launchpad/lifecycle-subscription :)16:55
=== deryck[lunch] is now known as deryck
danilosallenap, the diff so far has no changes to  add_bug_change_notifications (I first want to understand how best to test this, since it seems to be involve zope event machinery or something, and events are fired "manually" in most tests I've seen)16:58
allenapdanilos: It's taking me a while to swap this back in... :)17:00
danilosallenap, heh, I can understand that, you probably haven't touched this for a few years (it seems most of this code is from 2009)17:00
allenapdanilos: Yeah, we did a sprint for this when BjornT was the team lead and I think the only thing since then is that it's moved into lp.bugs.17:01
danilosallenap, I am basically looking for the most minimal way to test that notifications are added properly and for the right group of people, before I go on the changing spree...17:01
danilosallenap, so, my idea is to basically do something like the following change: http://paste.ubuntu.com/561035/17:02
danilosallenap, however, without knowing exactly what's going on, and without tests that describe how this is properly used, I don't feel comfortable JFDI17:03
allenapdanilos: Okay. I'll try and figure something out.17:04
danilosallenap, heh, if you've got to dive into code yourself, I don't want to bother you, since I can do the same thing :)17:04
allenapdanilos: I don't mind, but yes, that's what I'm going to do. I can't remember any of it without reading it again, though it might come back quickly.17:05
=== beuno-lunch is now known as beuno
danilosallenap, sure, if you can do it quickly and come up with a good attack plan, I'd appreciate it; if not, just set yourself a time limit on when to give up :)17:10
gary_posterallenap: thank you for the review!  I've been looking at options for the deletion.  I wanted to explore __storm_remove__ hook but I don't see any reference to that (in LP code, storm, or https://storm.canonical.com/Manual#Hooks) or anything similar, to my surprise.  Unless you direct me to something I missed, I'll make "delete" or something like that.17:17
=== al-maisan is now known as almaisan-away
gary_posterfollowing the pattern on the filters themselves17:17
allenapgary_poster: Sorry for sending you on a wild horse chase... afaik, __storm_remove__ doesn't exist. I was just thinking about it as an idea.17:18
gary_postergotcha, allenap.  A good idea :-)17:19
gary_posterbut understood.  I'll go with delete for now then.17:19
gary_posterThank you!17:19
allenapgary_poster: Welcome :)17:19
allenapdanilos: There are no unit tests of add_bug_change_notifications(). I think I'd start some, and simply check that the right set of recipients have notifications added for them. The notify/subscriber machinery should be tested already. It might be even clearer to stub out bug.addChange() to get the recipient list directly, and no faff around with the database.17:31
allenapdanilos: All you really need to know is that the change_level from the IBugChange class is being used when calculating subscribers, isn't it?17:32
danilosallenap, yeah, but I also need to understand exactly what's going on inside that method so I don't break it as well :)17:33
danilosallenap, and I want to be able to state with some authority what kind of emails will people get after my changes :)17:33
danilosallenap, anyway, thanks for looking into it17:40
allenapdanilos: I don't think you'll break it. For this branch I don't think you need to worry about asserting exactly what the end product looks like; the composition of the messages already tested elsewhere. You just need to check that the correct recipients are chosen.17:41
allenapdanilos: One aside: I don't addChangeNotification() is really being used any more, except in bugnotification-sending.txt. I will throw up a branch to remove it.17:42
bigjoolsthe branch diff overlay on bugs pages is not removable :/17:46
leonardrsinzui, shall i review https://code.edge.launchpad.net/~sinzui/launchpad/team-membership-policy-1/+merge/48203 ?17:52
danilosallenap, thanks18:06
sinzuileonardr: yes please18:10
leonardrsinzui, changing the order of the enums doesn't affect which numbers they're given behind the scenes?18:11
leonardrsinzui: i understand the difference between a delegated team and a moderated team but i don't see what difference it makes. are you going to/have you reduced the powers of people who are indirect members of a delegated team?18:15
leonardrsinzui: was subscription_policy_description simply not used at all? the only place it's referenced here is when you remove it18:18
sinzuileonardr: all it really does is place the new members in the proposed state. It is an open team with all the restrictions of an open team18:19
sinzuisubscription_policy_description was not used. It has not been used in 18 months18:19
bigjoolsjml: merged your branch into mine and it's all hunkydory now, cheerfs18:20
bigjoolsand on that note, dinner time18:20
bigjoolsnn all18:21
sinzuileonardr: locoteams is MODERATED now because they want to prevent people and unapproved teams from joining. They think it is fine if people or teams join at a local level.18:21
leonardrsinzui: so it's an open team that requires approval for direct memberships but not indirect memberships, and there is no functional difference between a direct and an indirect membership?18:21
sinzuileonardr: correct18:21
leonardrsinzui: 96 "contol" => "control"18:22
leonardralso "polcy"18:22
sinzuiah18:23
leonardr166 "verses" => "versus"18:24
* leonardr is more picky about typos in user-visible text18:24
leonardrsinzui: i see the answer to my first question. you reordered the enums but you didn't change the numbers18:25
sinzuidamn right I did not change the enums. Those are in the database. making moderated teams into open teams will make 1000's of ppas insecure18:26
leonardri was just wondering how you had done that18:27
leonardrsinzui: your split of the __doc__ on line 264 seems a little hacky to me, but it's ok18:28
sinzuileonardr: Lp forms layout enums by their sequential order. They are easier to read and understand if the rules are changing along one axis18:28
sinzuiyeah. it is wacky. I do not like it. I could not think how to compose the enum from a title and description so that a common description could be shared.18:29
leonardrsinzui: maybe TestTeamSubscriptionPolicyChoiceCommon.POLICY should be None?18:32
sinzuiThat will break one of the tests that creates a team18:32
leonardrnever mind, i thought it was being used as a base class18:33
sinzuiI could either inline the helper logic, or I could change the helper to failover18:33
sinzuiMaybe inheritance is bad in this case because the test was ambiguous18:34
leonardri think it's ok18:34
leonardri think what tripped me up was the comment18:34
leonardr# Any policy can be used in set of tests.18:35
sinzuileonardr: yuck18:35
leonardrwould it be accurate to say "Any policy will work here, so we'll just pick one"18:35
sinzuiyes, that is better18:35
leonardrsinzui: a little confused about line 59818:38
leonardrwhy is cprov now a team owner?18:38
sinzuithat is not the method sig18:39
sinzuiITeam.addMember(member, review)18:39
sinzuiThe team owner is the reviewer adding cprov18:40
sinzuiThe "ignore" is a TeamMembership record for the new membership18:40
leonardrgot it18:41
sinzuiThe previous code relied on the auto-approved rule in join() for OPEN teams. The problem is that no OPEN team can own a PPA, so the example documentation will actually fail in most circumstances.18:41
leonardri understand now. it's fallout from line 58918:42
leonardrsinzui: r=me with the minor changes mentioned above18:42
sinzuithanks. my spelling will need fixing in the enum, the html help, and the wiki page because I pasted from the enums18:43
lifelessmoin18:43
sinzuiThe pun never ends18:44
leonardrsinzui: "polcy" and "contol" are only in the help afaik18:45
leonardrmaybe the wiki as well18:45
leonardrbigjools, i will review https://code.edge.launchpad.net/~julian-edwards/launchpad/double-build-bug-705342/+merge/48219 now18:47
jtvhi lifeless18:47
lifelesshi jtv18:48
jtvlifeless: I didn't find a good way to run external commands in parallel, so wrote up a simple manager class.  Might be something you want to look at: https://code.launchpad.net/~jtv/launchpad/commandspawner/+merge/4822618:50
jtvI'm going offline now though to deal with other people's IT problems.18:50
lifelessjtv: did you look at the existing job system code for doing that? or the various twisted things we have?18:51
lifelessjtv: we can talk later18:51
leonardrbigjools: what's the difference between a virtual and a nonvirtual builder?18:52
jtvlifeless: yes, looked at those.18:52
lifelessleonardr: a nonvirtual one we don't run kvm/xen on; its just a chroot18:53
lifelessleonardr: policy around those is we only run trusted builds on nonvirtual builders18:53
leonardrlifeless: you mean that the only builds run on nonvirtual builders are trusted builds?18:53
lifelessleonardr: yes (that is, ubuntu archive builds rather than PPA builds)18:54
leonardrlifeless: thanks. bigjools:r=me18:56
leonardrjtv, lifeless: do you want me to take a look at https://code.edge.launchpad.net/~jtv/launchpad/commandspawner/+merge/48226 or do you want to talk it over first?18:58
lifelessleonardr: I think you should just review it18:58
leonardrok18:58
jtvleonardr: thanks18:58
lifelessleonardr: we certainly don't have a look-alike in-tree18:58
lifelessthere's likely something on pypi we could use18:59
lifelessbut whats written is written18:59
lifelessjtv: if you had time in the future to either incorporate a pypi module, or to factor this out to a truely standalone thing we can publish on pypi, I think either of those things would be most excellent.19:01
jtvlifeless: that's a good idea, though it lacks all sorts of things that others might want but we currently don't.19:02
lifelessjtv: sure; we can accept patches for such things :)19:03
jtv"the Internet will solve it!"19:03
lifelesshttps://github.com/taichino/python_prefork is similar19:03
jtvOh, sorry, that's Internet 1.0.  The 2.0 phrase is "we'll crowdsource it."19:03
* jtv mumbles something about not needing not steenkin' github projects19:04
* jtv instantly regrets this as github sends chromium into an unusable state19:04
lifelessoh oracle19:06
lifelessyou sad cats19:06
jtvlifeless: ?19:07
lifelessyou know about the hudson trademark thing, right ?19:07
jtvNot enough, evidently.19:07
lifelessok, so oracle buy Sun19:07
jtvyes me knoooo19:08
jtvme hold share19:08
jtvbut cats?19:08
lifelessday one they have the hudson lead developer go from a decent work environment - good sized dual lcd yada yada yada, to a puny single screen in a existing oracle block19:08
lifelessnot long later he walks19:09
lifelessthen this trademark thing brews up19:09
lifelesscommunity voted - 9019:09
lifeless90% wanted to rename to get out from under the trademark.19:09
lifelessovernight a 'susan duncan' from oracle posted a 'hudson will continue as hudson, we have a team @ oracle, come one come all' kind of email.19:10
lifelessso rather than following 90% of the devs + users, they are going alone, with -1- person that knows the codebase at all.19:10
lifeless(and who wrote ~ 1% of it)19:10
* jtv nods attentively19:11
jtvlifeless: so were you using the word "cats" strictly in the sense of "people"?19:13
lifelessyes, getting my 70's thang on19:13
jtvNow I see.19:14
jtvSo yes, sad cats indeed.19:14
jtvHow about we pass the hat around and see how much we can offer Michael to change his name?19:15
lifelesslol19:15
jtvThe prefork thing looks like it would't do much for our use case by the way, though it's hard to say without documentation.19:15
lifelessits not a direct fit19:16
lifelessthats for sure19:16
lifelessjtv: lol; the first two replies to her message: 'unsubscribe'19:18
jtv<laugh>19:18
jtvNow if they could re-do it in python, that'd be different.19:20
lifelesssonatype are going with hudson19:21
lifelesscloudbees with jenkins19:21
lifelesswheee19:22
leonardrjtv: can you make it clear in line 287 that error 11 *is* "resource temporarily unavailable"? i had to look it up to make sure19:22
jtvleonardr: oh, I thought I'd done that.  Will fix fortwith.19:22
jtvforthwith.19:22
leonardrjtv: it's just a little vauge19:22
jtvleonardr: You're right.  Found a better spelling: errno.EAGAIN!19:24
jtvFix pushed.19:27
jtvleonardr: you may be wondering why, in communicate(), I didn't extract the loop body into a method.  I did that originally, but that hid the fact that I remove an entry from the dict that the loop iterates over—and therefore the reason to iterate over keys() instead of iterkeys().19:33
leonardrjtv: do you need to iterate over dead processes once they're dead?19:34
jtvNo, I just don't want to upset the iteration.19:35
leonardri don't think it matters much, but do i have it right that it's not necessary?19:35
jtvYes, you have it right.19:35
jtvMaybe I'm just being too conservative.19:35
leonardri was wondering about test_communicate_returns_after_event19:35
leonardrwhat happens to the sleep process? it just keeps running in the background?19:36
leonardrwould it make sense to tear that down?19:36
leonardrif it's running in the background it's not a big deal19:36
jtvIt does, but that's why I did the self.addCleanup(spawner.kill).19:37
leonardrthanks, i was looking for a TestCase style teardown19:38
leonardrie an actual teardown method in the class19:38
jtvThough come to think of it… it'd be neater to do actual wait()s for the child processes wouldn't it?19:38
leonardri don't know much about this--is wait() blocking?19:39
jtvTechnically it is, I think, but not for long.19:40
jtvIt's been ages, so I'm vague on the details… wasn't un-wait()ed children how you got zombies?19:40
leonardrjtv, i am also vague on the details19:40
jtvI can whip up a quick test to find out.19:41
jtvYup, that's a zombie.  Need to wait() for it.19:43
leonardrjtv: will that cause the test to stall for 10 seconds?19:44
jtvNo19:44
jtvJust keep a zombie process around.19:44
jtvWhich is basically garbage and not nice,19:44
leonardrjtv: i mean if you wait() will it cause the test to stall19:45
jtvNo, only if the sub-process catches the terminate signal.  Which doesn't happen in the tests.19:45
thumpermorning19:50
jtvmorning thumper!19:51
thumperjtv: up late?19:51
jtvthumper: no, in NL19:51
jtvleonardr: I'm just pushing a change that does a kill()/complete() on all spawners in the acceptance test.  That oughta take care of any zombie danger.19:52
leonardri'm glad i could stumble into an improvement19:53
* thumper goes to look at the vast amount of email in the inbox19:53
jtvleonardr: so am I—I'm not a big believer in permissive reviews. ☺19:54
leonardrtaking a look at your changes now19:56
lifeless~/win 6319:56
jtvI've heard of win64, but…19:58
leonardrjtv, r=me20:01
jtvleonardr: thanks!  I'm adding a docstring note to explain about the zombies, but otherwise, should be good to go.20:01
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: leonardr | https://code.launchpad.net/launchpad-project/+activereviews
leonardrok20:02
thumperderyck: ping20:03
lifelessflacoste: can you high-pri rt 43756 ?20:03
lifelessflacoste: I have to run to town with Lynne, back in ~3 hrs20:03
thumperderyck: https://code.launchpad.net/~thumper/lazr-js/multi-line-editor-goodness/+merge/4811820:03
* leonardr could still use reviews of two of his branches20:03
thumperleonardr: https://code.launchpad.net/~thumper/lazr.restful/only-traceback-system-errors/+merge/4807520:03
thumperleonardr: what do you need?20:04
leonardrthumper: hi there20:04
thumperleonardr: I started on one20:04
thumperleonardr: the other was still work in progress20:04
deryckthumper, I didn't have time to look yet.  You wanting me to review it for you?  Or just see what's up?20:04
thumperleonardr: although I did look through it20:04
leonardryeah, i responded to it. the other one is ready now20:04
thumperderyck: I'm after a real review :)20:04
leonardrthe other one being https://code.launchpad.net/~leonardr/launchpad/web-link/+merge/4725820:04
thumperderyck: but pointers to what testing may be needed20:04
leonardrthumper, looking at your lazr.restful branch now20:04
flacostelifeless: no permission to view ticket, did you file using launchpad@rt... ?20:05
thumperderyck: the only JS thing that has really changed is the stripping of trailing whitespace, and hiding the spinner20:05
deryckthumper, ok, give me a minute, and I'll try to get it before I EOD.20:05
thumperderyck: thanks20:05
derycknp20:05
lifelessflacoste: jam filed it20:05
lifelessjam: ^20:05
lifelessflacoste: gone; back later20:05
leonardrthumper: r=me20:07
thumperleonardr: your lp weblink branch looks fine to me20:07
thumperleonardr: shall I mark it needs review?20:07
jmlg'night.20:07
thumpernight jml20:07
leonardrthumper: yeah, go ahead. i didn't realize that was what was keeping it20:07
thumperok20:08
leonardrgary, i am reviewing https://code.launchpad.net/~gary/launchpad/bug711362/+merge/4823220:09
gary_posterthank you leonardr20:12
leonardrgary, i am confused by lambda: self.subscription.delete instead of self.subscription.delete. what's the difference?20:14
leonardris it the very attempt to access the delete attribute that causes the exception?20:15
thumperhmm... I need to configure my local bits to be able to sumbit to lp:lazr.restful20:15
gary_posterleonardr: yeah, I tried that first too.  yes, exactly20:15
leonardrthumper: do a bzr co of trunk, then merge in and bzr commit. that's what i do20:16
thumperleonardr: it isn't pqm managed?20:16
leonardrthumper: no20:16
thumperleonardr: ah... ok20:16
* thumper does that20:16
leonardrwe could maybe make it pqm managed again, but it used to be submitting a change to lazr.restful ran the launchpad test suite for no reason20:17
deryckthumper, so looks good to me.  I would add a js test that the icons are re-enabled on error.  And some text on the example page to explain that it will error every other attempt would be nice.20:18
deryckthumper, r=me with those changes.20:18
thumperderyck: ok20:18
leonardrgary: what do you mean "The original delete fails if it does not remove the filter first"? i don't see that in the code. do you mean that the only way the filter could not be removed is if the delete failed?20:18
flacosteleonardr, benji: any news on the packaging of the new desktop integration into natty?20:19
leonardrflacoste: no, i'll ping barry again20:19
flacosteleonardr: thx20:19
gary_posterleonardr: the DB rejects the delete of the structural subscription because the database would then be an inconsistent state20:21
gary_poster(with the filter record pointing to the structural subscription)20:21
leonardrok, in that case i'm not sure what 'the original delete' is20:22
gary_posterleonardr: it removes the filter first in the delete method.  I think "the original delete" is a bad term at least in part because there is no need to call it "original".  I guess I meant something like this:20:23
thumperwow... the second buildout of lazr.restful was much faster than the first20:23
leonardrthumper: that's the cache advantage20:23
gary_poster"Trying to delete the structural subscription without first deleting the filters, as the "delete" method does, would raise a database IntegrityError.  Therefore, we know that the filter really is gone, but we double check it here anyway."20:25
gary_posterleonardr: and fwiw, this is the exception you would have gotten:20:26
gary_posterIntegrityError: update or delete on table "structuralsubscription" violates foreign key constraint "bugsubscriptionfilter_structuralsubscription_fkey" on table "bugsubscriptionfilter"20:26
gary_posterDETAIL:  Key (id)=(5) is still referenced from table "bugsubscriptionfilter".20:26
thumperleonardr: lazr.restful branch landed \o/20:26
thumperleonardr: much faster than PQM :)20:26
gary_poster"as the delete method does" is still confusing :-/20:26
leonardrgary: ok, that's what i thought was going on. how about this wording20:26
leonardr"We know that the filter is gone, because we know the subscription is gone, and the database would have prevented the deletion of a subscription without first deleting the filters"20:27
leonardr"but let's double check"20:28
gary_posteryes, leonardr20:28
gary_posterthank you20:28
leonardrgary, np20:28
leonardrgary, r=me20:29
gary_posterThanks leonardr.  I'm improving the comment now.20:29
gary_posterI'll also add a comment about the lambda20:29
leonardrthumper: once my ec2 test completes i will do a lazr.restful release and land the launchpad branch20:30
thumperleonardr: sounds great20:30
leonardri was able to verify that launchpadlib can access web_link if it's present20:30
thumperleonardr: my editor work has to wait for that to land first20:30
thumpergreat20:30
abentleythumper, chat?20:30
thumperabentley: sure20:31
thumperabentley: mumble?20:31
abentleythumper, yep20:31
=== matsubara is now known as matsubara-afk
jamflacoste: I just used rt@admin.canonical.com, was I supposed to do something different?20:52
flacostejam: yes, please use launchpad@rt.canonical.com, it puts it in the right queue automatically20:52
jamflacoste: k20:53
jamthat's the first I've heard of that address20:53
leonardrthumper: got some test failures. some very minor, one possibly serious21:00
thumperleonardr: oh?21:00
leonardrthumper: minor ones are tests that had 'launchpad.net' urls instead of 'bugs.launchpad.net' for cves and so on21:00
thumperok21:01
thumperwallyworld_: https://code.launchpad.net/~thumper/lazr-js/multi-line-editor-goodness/+merge/4811821:01
leonardrthe possibly serious one is a launchpadlib test that systematically checks every _link parameter as though it were a link to another launchpad web service object21:01
leonardrbasically, it sees web_link and thinks there must be a corresponding 'web' property21:01
thumperhmm...21:04
thumperif it is just a test, surely we could add an exception21:04
thumperleonardr: mumble?21:04
thumperStevenK: mumble ping21:04
leonardrthumper, sure21:04
StevenKthumper: Coming, sorry21:05
wallyworld_sinzui: you around?21:05
sinzuiI am21:06
wallyworld_sinzui:  are you able to sign off on: https://code.launchpad.net/~wallyworld/launchpad/recipe-find-related-branches/+merge/4736721:06
wallyworld_pretty please :-)21:06
wallyworld_ui review21:06
sinzuiwallyworld_: You have my approval21:07
wallyworld_sinzui: thanks! much appreciated21:08
wgrantabentley: Did you end up reaching agreement with bigjools about where to do notifications?21:11
abentleywgrant, no, and I am handing off the project to thumper.21:12
wgrantabentley: Well, from the snippets I read he argued that PU should do the notification. I am adamant that he is wrong, FWIW.21:12
abentleywgrant, where do you think it should be done?21:13
wgrantabentley: Build.notify, as it always has been.21:14
abentleywgrant, cool.21:16
leonardrthumper: first off, the test failure21:29
thumperyep...21:29
leonardri believe the correct thing to do is to change lazr.restfulclient to interpret 'web_link' as a scalar value, not a link, when producing lists like lp_attributes and lp_entries21:29
leonardrthat's an easy change to make but it's not easy to test21:29
leonardrso i suggest we file a bug for it, hack similar behavior into the launchpad tests, and land what we have21:30
thumperleonardr: I'm not entirely clear on the underlying meaning in lazr.restfulclient with respect to the lp_attributes and lp_entries21:31
thumperand how the web_link fits into it21:31
thumperis it that web_link will move from lp_entries to lp_attributes?21:31
leonardrthumper: yes, to put it slightly more accurately, 'web' will move from lp_entries to lp_attributes and will become 'web_link'21:31
thumperleonardr: that sounds fine to me21:32
leonardrlazr.restfulclient thinks that anything ending in 'link' is a link to another object comprehensible by lazr.restfulclient21:32
leonardrin this case it is a link, but not one comprehensible by lazr.restfulclient21:32
thumperright21:32
thumperI think special casing it is fine21:32
leonardrit doesn't have to be all that special21:32
leonardrwe can distinguish ahead of time between comprehensible links and incomprehensible, we've just never had incomprehensible links before21:33
thumperhow do we determine that it is incomprehensible?21:33
leonardrthumper: by looking at the wadl. web_link has a <param> tag whose <link> element is empty--it doesn't point elsewhere in the wadl21:34
leonardrin the words of the test failure error, "Parameter is a link, but not to a resource with a known WADL description."21:34
thumperok, is this part of the quick fix of the longer bug fix?21:34
leonardrno, this is the longer bug fix--the problem is testing it21:34
leonardrwe might be able to fake this, but i believe we need to change lazr.restful so that the example web service publishes web_link (right now web_link only shows up in unit tests)21:35
thumperso to be clear, we can make the fix quickly, and file a bug for the testing of it?21:35
leonardrthumper: i was suggesting fixing it in launchpad, but yeah, we can fix it for real pretty easily21:35
thumperleonardr: does the restfulclient *need* lazr.restful example service to publish web_link?21:36
thumperI would think that a fake would be better21:36
leonardrthumper: that's how we do the tests. i would prefer a fake as well, but i don't think we have the infrastructure for it21:36
thumperah.. the tests for lazr.restfulclient depend on the lazr.restful example server?21:37
leonardryes, they are integration tests making simulated http requests and getting responses21:37
leonardrwe can do unit tests in lazr.restful but not so much in the client, i think21:37
thumperI'm thinking of a potential solution...21:38
thumperit may be completely off though21:38
leonardrlet's hear it21:39
thumperwhat if, as part of the tests for restfulclient, we had a decorated server, that intercepts the calls to the example restful server and annotates it with a web link?21:39
leonardrthumper: it would be simpler to make the example server serve a web link for real21:39
thumperprobably21:40
leonardractually, i could probably work something up with a fake wadl document21:41
* thumper likes fakes (of a certain kind)21:41
leonardrthat would be closer to a unit test21:41
leonardrsince there is no data going over the wire21:42
leonardrit's just restfulclient making judgements about the structure of the web service based on the wadl21:42
leonardrbarry: lazr.restfulclient in natty is up-to-date21:43
leonardrso don't worry about that21:43
StevenKwgrant: Have we seen the test_404 and one other failures in ec2 before?21:46
leonardrthumper: two possibilities, your call21:46
wgrantStevenK: i've seen them once.21:46
wgrantAnd they've appeared on Hudson21:46
wgrantBut they only appear often on buildbot.21:46
* thumper nods21:46
leonardr1. i'll fix the failing tests in launchpad, get my branch into ec2 land, and fix it in restfulclient tomorrow21:46
leonardr2. i'll fix it in restuflclient tomorrow and land everything tomorrow21:46
StevenKwgrant: What do you think? Resubmit and hope ec2 is kinder?21:46
thumperleonardr: what breaks if we go for 1 ?21:47
wgrantStevenK: I'd just go to lp-land if they were the only failures.21:47
thumperleonardr: just test failures in lazr.restfulclient?21:47
leonardrthumper: launchpad contains code to work around the problem for a little while21:47
thumperleonardr: what is the impact of that though?21:48
leonardrthumper: not much. just "this is hacky"21:48
thumperleonardr: lets land everything when it is good to work together21:49
leonardrthumper: ok, that will be my goal for tomorrow21:49
thumperok21:49
leonardri'd like to hear your suggestions for what to do after that21:49
thumperleonardr: i was looking at the lazr.restful errors21:50
thumperwell, bugs, not errors21:50
leonardrright21:50
thumperbug 619180 is listed as critical, and probably not too much21:50
_mup_Bug #619180: UnicodeEncodeError creating a team that contains non-ASCII on name via API <api> <lp-foundations> <oops> <lazr.restful:Triaged> < https://launchpad.net/bugs/619180 >21:50
thumperalso, bug 373370 looks like it should be a good to do candidate21:51
_mup_Bug #373370: Text fields can be made empty via the API, but not via the web UI <api> <lp-foundations> <Launchpad itself:Triaged> <lazr.restful:Triaged> < https://launchpad.net/bugs/373370 >21:51
leonardrthumper: ok, i'll take a look. may be lazr.restful, may be launchpad21:51
thumperleonardr: understood21:51
huwshimileonardr: Thanks for approving my branch.21:52
leonardrhuwshimi: np21:52
wgrantAny idea why staging is out of date?21:52
thumperleonardr: the example given in bug 619180 actually has unicode in the name, which would hit a validation error21:52
_mup_Bug #619180: UnicodeEncodeError creating a team that contains non-ASCII on name via API <api> <lp-foundations> <oops> <lazr.restful:Triaged> < https://launchpad.net/bugs/619180 >21:52
wgrantThere's nothing in the logs since the last update finished several hours ago.21:52
thumperleonardr: I wouldn't expect a unicode encode error though21:52
thumpermy guess is that it should be a 400 Bad input type error rather than an oops21:53
wgrantHmm. It's possible that it's a Launchpad issue, and the exception's __str__ is trying to do bad things.21:53
thumperwgrant: could be21:54
leonardrthumper: that says to me that validation code is not running, since errors during validation are turned into 400s21:54
wgrantleonardr: This seems to be a UnicodeEncodeError while reporting the validation failure, right?21:54
thumperleonardr: perhaps with our change several weeks ago, to fix the validation, it may now fail better :)21:55
wgrantthumper: I reproduced it when I reassigned it.21:55
wgrantIt's still present.21:55
thumperwgrant: from when?21:55
leonardri guess i should have looked more carefully at the traceback21:55
leonardryeah, it's an error presenting the validation error21:55
wgrantthumper: Hm? I reproduced it like 3 days ago.21:56
thumpercould be21:56
=== almaisan-away is now known as al-maisan
StevenKwgrant: Did you tag the other bug too?22:06
wgrantStevenK: Yes.22:12
wgrantTo unbreak qa-tagger.22:12
=== al-maisan is now known as almaisan-away
StevenKwgrant: Yes, I just got the mail, thanks.22:12
wgrantIt needs bad-commit-* for the rollback to be effective.22:12
thumperabentley: is there a bug for this?22:12
wgrantI had to read the code to find out why it wasn't working :/22:12
StevenKwgrant: :-/22:13
StevenKwgrant: Aside from Henning, it looks like your QA22:13
abentleythumper, you mean bug #681125?22:15
_mup_Bug #681125: Async uploader sends recipe mail as if it were source package uploads <lp-code> <qa-ok> <recipe> <Launchpad itself:Triaged> < https://launchpad.net/bugs/681125 >22:15
wgrantStevenK: Yup.22:15
wgrantStevenK: But qastaging's codebrowse is either broken or not there, and staging is one rev too old.22:15
thumperabentley: yep, thanks22:15
StevenKwgrant: So tempted to reply 'lolwut'22:16
wgrantabentley: To be clear, your recipe mail changes at the head of the deployment queue are still OK to roll out?22:17
wgrantDespite the current debate?22:17
abentleywgrant, yes.  My current changes are deployable, but an incomplete fix.22:17
wgrantGreat, thanks.22:18
=== leonardr changed the topic of #launchpad-dev to: https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
sinzuiwgrant: mumble?22:31
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: StevenK | https://code.launchpad.net/launchpad-project/+activereviews
jcsackettsinzui: you want to continue on Person:+bugs, or just catch up tomorrow?22:44
huwshimiwgrant: Your mumble stutters quite a bit for me, but everyone else sounds fine. Is everyone clear for you?22:45
wgranthuwshimi: Hm... Everyone's clear for me, and I sounded clear enough from the feedback I heard through sinzui's mic.22:45
wgrantOdd.22:46
huwshimiwgrant: yeah that is odd22:46
wallyworld_wgrant: are you testing rev 12290? - it's currently blocking subsequent rollouts22:47
wgrantsinzui/jcsackett: Was my mumble connection OK?22:47
wgrantwallyworld_: I am waiting on a LOSA to unbreak qastaging codebrowse. I have a nodowntime rollout request for 12293 in my clipboard :)22:47
=== salgado is now known as salgado-afk
wallyworld_wgrant: thanks :-) just trying to get ready for pqm closure on friday22:48
jcsackettwgrant: yeah, you sounded fine.22:52
huwshimisinzui: I fixed my css issue23:13
huwshimisinzui: How do I go about using the sprites?23:13
sinzuihuwshimi: drop the new image into lib/canonical/launchpad/images . Add a new class to lib/canonical/launchpad/icing/style-3-0.css.in (the comment is required)23:55
sinzuihuwshimi: run make sprite_image then make css_combine to see your change23:58
wgrantStevenK: Could you review https://code.launchpad.net/~wgrant/launchpad/bug-654585-linkify-bug-acknowledgement/+merge/48254?23:58
StevenKCan I get bzr di to give more context with it's diffs? The manual page and bzr di --help weren't very helpful23:58
wgrantStevenK: I don't think it can do it directly, but you could use --diff-options.23:59

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