/srv/irclogs.ubuntu.com/2011/05/20/#launchpad-dev.txt

sinzuiwgrant: mumble?00:03
LPCIBotProject windmill-devel build #111: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill-devel/111/00:10
=== wallyworld changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: wallyworld* (jtv) | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:210 - 0:[######=_]:256
* wallyworld shakes fist at unity. check email shortcut has stopped working :-(00:33
thumper:(00:37
wgrantAh! thumper!00:38
wgrantWhy does my launcher not auto-hide now?00:38
wgrantAnd then when I start mumble the launcher goes into the background :(00:38
wgrantIt's all your fault.00:39
* thumper shrugs00:39
LPCIBotProject windmill-devel build #112: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill-devel/112/01:02
=== huwshimi_ is now known as huwshimi
wgrantwallyworld: Are you going to be able to do the ML QA?01:10
wallyworldwgrant: sinzui said he was but it's probably past his EOD now. is the rev on staging yet? that's what the holdup was01:11
wgrantAh, a good point.01:13
wgrantstaging is mid-update.01:13
lifelessso how do you delete a blueprint ?01:18
wgrantLalala01:18
lifelessah01:18
lifelessdefinition obsolete01:19
lifelessman,01:20
lifelesssome go back a -long- way https://blueprints.launchpad.net/launchpad/+spec/record-bzr-branch01:20
wgrantShould we garden or just disable the feature for LP?01:24
lifelessok I'm officially blind01:24
lifelesshttps://blueprints.launchpad.net/launchpad/+spec/ui-roadmap01:24
lifelessI don't have a particular opinion01:24
lifelesswe're not using it for planning01:24
wgrantAhaha01:24
lifelessLEP + bugs seem to serve us well01:24
wgrantAnd that spec is only for Code...01:25
cjohnstoncreate a blueprint to remove blueprints?01:25
lifelessnoooo01:26
=== huwshimi_ is now known as huwshimi
wallyworld_anyone know if it's possible to dynamically enable/disable the lp rss feed embedded as "<link rel="alternate" type="application/atom+xml" ..."? it seems that once the page loads and the browser has hooked up the rss button, only a page refresh will force an update?03:22
wgrantI'm not sure it's possible.03:25
wgrantAnd it's not going to be relevant for very long.03:25
wallyworld_?03:25
wgrantNo modern browser has the button any more.03:25
wallyworld_ff4 does03:25
wallyworld_and so does chrome03:25
wgrantWhich Chrome?03:26
wgrantMy Chromium doesn't.03:26
wallyworld_i'm running the latest google chrome beta03:26
wallyworld_why you running chromium and not chrome?03:26
wgrantI also don't see it in Firefox 3.03:26
wgrantWhy would one run Chrome?03:27
wgrants/Firefox 3/Firefox 4/03:27
wallyworld_it may not be visible by default but you can drag the button to your toolbar03:27
wgrantWhat benefits does Chrome provide, besides proprietariness and spying?03:27
wgrantAnd a PDF reader.03:27
wgrantWhich I have a perfect good implementation of already.03:27
wallyworld_h.264 i think03:27
persiaThat's in chromium03:27
wgrantMy Chromium does H.264.03:27
wallyworld_i read a while ago what the differences were but have forgotten03:28
wallyworld_i thought chrome offered something significant but am not sure now03:28
persiaChrome offers Android support, and chromium doesn't, but that's reaching a bit.03:28
wallyworld_i think chrome's pdf viewer in inline?03:29
wallyworld_is03:29
wgrantI don't understand why you'd want to run the proprietary variant from a company known to be information-hungry, without knowing about significant benefits :(03:29
wgrantIt is, yes. Chrome has a proprietary inline PDF plugin.03:29
wgrantBut I consider that a misfeature.03:29
wallyworld_that is important to me03:29
persiaOh, heh.  In January Chrome decided to drop H.26403:30
wallyworld_if i'm browsing, i hate external apps popping up03:30
wgrantI like my window manager to manage my windows.03:30
wgrantRather than this stupid tabs thing.03:30
persiaChrome also has it's own built-in implementation of flash.03:30
wallyworld_you don't like tabbed browsing? i can't live without it03:30
wgrantwallyworld_: Tabbed applications are a workaround for inadequate window managers.03:31
StevenKIt reminds me of IE embedding in Acrobat Reader, which just makes me twitch.03:31
wgrant(but I do use browser tabs)03:31
wgrant(because most contemporary window managers are inadequate)03:31
wallyworld_we'll have to have a pub discussion about that wgrant. i can't use a browser without tabs :-)03:31
persiamost?03:31
StevenKTomorrow, wgrant switches to twm03:32
wgrantwallyworld_: http://code.google.com/p/chromium/wiki/ChromiumBrowserVsGoogleChrome03:32
* wallyworld_ looks03:32
persiawallyworld_, This is mostly because you don't have a window manager that makes it easy enough to track things that you don't need to have in-application implementations of window management to be able to cope.03:32
wgrantRight. If my applications have to manage their own windows, my window manager is not doing it sjob.03:32
wallyworld_persia: perhaps :-) but i sorta like all my web sessions together in the one window frame03:32
persiawgrant, On a completely different note, I was pointed to you last week to ask what was required to happen to sbuild in oneiric to not need a separate Soyuz implementation come Querelous Quahog (or whatever)03:33
wgrantpersia: For multiarch?03:33
wgrantOr just in general?03:34
persiawallyworld_, Yes, one of the issues with current window managers is that they fail to track whether multiple windows come from the same application and sort it sensibly.03:34
persiawgrant, In general.03:34
wallyworld_yes. that applies to more than web browsing too of course03:34
persiaIndeed, which is why there are N implementations of "tabbing" for N applications (which is "doing it wrong")03:35
wallyworld_sooo, with the rss stuff, i sadly fear i will have to force a page refresh whenever the user using inline ajax widget to change bug or branch privacy values :-(03:35
wgrantpersia: Two hacks are still required: the one to copy DDEBs to ~/public_html (which we can possibly externalise if primary archive ddeb support doesn't get finished by a maintenance squad in the next few months), and the one to return extended status info (depwait/chrootwait/etc.)03:35
wgrantwallyworld_: That sounds like a major inconvenience for users for such a minor issue.03:35
persiaSo the first is easy with a post-build script.03:36
wgrantRight.03:36
wgrantThe second required something like a 10 line patch.03:36
wgrantThat I've just somewhere along the line.03:36
wgrantjust lost.03:36
wallyworld_wgrant: yes, agreed :-( but without doing that, the bug is not considered fixed03:36
wgrantwallyworld_: Why not?03:36
wgrantwallyworld_: It's little worse than someone having a page open, someone else privatising the bug, and then the first person adding the RSS feed without refreshing.03:37
persiawgrant, And those should be sufficient?  What was your concern about multiarch?03:37
wallyworld_because curtis said so :-) plus it's possible to get an rss feed of a private bug if the page was loaded when the bug was public and the privacy changed inline03:37
wgrantpersia: Well, once we have non-closed architectures through multiarch, I suspect we'll need to use an sbuild that has a multiarch-capable resolver.03:38
wgrantpersia: Around a year ago I ported launchpad-buildd to then-current Ubuntu sbuild, and that was all that was required.03:38
persiadistro sbuild (at least in oneiric) no longer uses the internal resolver by default: it defaults to apt.  Would we expect this to be sufficient?03:38
wgrantBut then exams happened, and it bitrotted.03:38
wgrantI suspect so.03:38
persiaCool.  How large was the launchpad-buildd porting patch?03:39
* persia found the bitrotten branch and investigates03:43
persiaThanks a lot for the pointers, and the prior work :)03:43
wallyworld_wgrant: i've figured out another solution - if they hit the rss button (because it is enabled when it shouldn't be) i'll just redirect back to the bug/branch page and display a notification. that will suffice03:43
wgrantwallyworld_: How can you know that?03:45
wgrantDoes it request the feed?03:45
wallyworld_wgrant: yes, it makes a request to feeds.lp.net03:45
wgrantHopefully it handles an error/redirect sanely.03:45
wallyworld_well i'm about to find out03:45
wallyworld_i don't know if it will work but it seems like the best thing to try and do03:46
wgrantpersia: Apart from deleting sbuild, the diff isn't that bad... let's see.03:46
persiawgrant, I'm looking at http://bazaar.launchpad.net/~wgrant/launchpad/use-system-sbuild/revision/11151 now : looks smallish.  Needs forward-porting, of course, but it shouldn't be too bad.03:47
wgrantlaunchpad-buildd doesn't change much.03:47
wgrantI wonder if I still have that sbuild diff around somewhere.03:47
wgrantOtherwise I might try to write it again. It's pretty small.03:47
wgrantJust returning a different exit code depending on the failure stage.03:48
persiaYou left it on LP: http://bazaar.launchpad.net/~wgrant/ubuntu/lucid/sbuild/extended-result/revision/2603:48
wgrantHm, the LP diff is only like 140 lines.03:48
wgrantOh!03:48
wgrantI had completely forgotten about that.03:48
wgrantThankyou for finding it.03:48
wgrantThat makes things a bit easier.03:48
persiaYes.  We use distributed version control so that we don't need to use our brains.03:49
wgrantI was sure I must have had a diff somewhere.03:49
persiaThe goal is to acheive productive senescence.03:49
wgrantSince I had clearly deleted it at some point.03:49
wgrantI didn't consider I would have pushed a branch.03:49
lifelesswgrant: some users will use chrome though03:49
persia(or, to misquote someone, real men don't make backups: they just upload to the internet and other people mirror their code)03:50
lifelesswallyworld_: there is something I don't understand03:53
lifelesswallyworld_: why are you worried about the rss feed link; surely the problem is on the feeds page?03:53
lifelesswallyworld_: or perhaps I misunderstand whats going on here03:54
wgrantpersia: So, I think it all works now except for ddebs.03:55
wgrantWhich should be easy enough.03:55
wgrantHuh.04:04
wgranttest_handleStatus_OK_successful_upload just failed on lucid_db_lp too ;(04:04
wgrant:(04:04
wgrantCurse you, Twisted.04:04
wgrantwallyworld_: Looks like staging shoudl have your rev now.04:07
wallyworld_wgrant: ok. will quickly finish the mp i'm on first04:08
wgrantwallyworld_: Thanks.04:10
persiawgrant, You mean "all works now, with the identified patches" or "everything was merged while I wasn't looking except this bit"?04:20
wgrantpersia: Neither of those branches are merged.04:22
wgrantThey both must be.04:22
persiaOK.  I am now unconfused :)04:22
lifelessmwhudson: what was the confusing bit about team participation / directory service ?04:28
jtvhi wallyworld_—I'm a bit late today04:46
wallyworld_jtv: hi, no reviews yet anyway04:47
wallyworld_but i'm about to finish a mp myself04:47
jtvthen I'll take that04:47
wallyworld_:-)04:47
jtvAnd you can mentor me.  :)04:48
jtvWhoo, looks like I landed 3 branches overnight.04:48
jtvWe do have a long-running buildbot failure though.04:57
jtvhttps://lpbuildbot.canonical.com/builders/lucid_db_lp/builds/966/steps/shell_6/logs/summary04:57
nigelbgood morning04:58
jtvhello nigelb05:00
nigelbjcsacket was supposed to re-land this last night, can someone check if its done running through the tests? https://code.launchpad.net/~nigelbabu/launchpad/203478-meeting-sort/+merge/6162305:01
StevenKIf it isn't marked as Merged, it either failed ec2 or failed PQM05:05
nigelbStevenK: It failed once. I fixed and he said he'd reland05:05
lifelessmwhudson: I've tweaked, see if its helpful ?05:07
StevenKnigelb: Did you get a mail from an ec2 instance?05:07
nigelbStevenK: Not yet. But I'm not sure its 4 hours yet.05:08
nigelb(Darn, I've had too less sleep :\)05:08
StevenKRight. Sadly, we can't check05:12
nigelbStevenK: Ah.05:13
lifelesssigh05:15
lifelessfor attendance in self.context.attendances:05:15
lifeless    if attendance.attendee == self.user:05:15
lifelesswhats wrong with this code05:15
wgrantHeh05:15
lifelessyes, you can break a sprint by having too many attendees05:16
lifelessbut it will self limit: once we can't late evaluate in the signup form, it won't get worse05:16
lifelessah, I lie. that is eager loaded, but still - should be a direct probe.05:19
nigelbthat looks like somewhere around code I touched.05:19
lifelessSprint.checkAuthenticated also makes me want to cry.05:20
lifelessI wonder if thats where the python time really is going05:20
* lifeless hopes not05:20
wgrantAlso I'm not quite sure how that makes sense.05:21
lifelessqastaging is down ?05:21
wgrantWorking for me...05:21
StevenKBwaha05:22
StevenKPerl 5.14 is out, and Debian/Ubuntu have yet to finish the 5.12 transition.05:22
wgrantYup.05:22
wgrantarmel caught up!05:25
wgrantThe build queues are empty for the first time in two months :)05:25
StevenKGasp!05:26
persiaAlready!  That's fairly early in the cycle.05:26
lifelesswgrant: check SprintMeetingExportView . initialize05:26
lifelesswgrant: and the cunning combination of passing domain filters in and in-python filtering.05:26
lifelesswgrant: I think we have lots of opportunities to make things better here05:26
wgrantlifeless: Oh, that is looooovely.05:27
lifeless(note that priority is not-null)05:28
lifeless    priority = EnumCol(schema=SpecificationPriority, notNull=True05:28
nigelbBlueprints are slated to go away in the distant future right? Would sprints go away with them?05:28
lifelessno05:32
lifelessthe functionality is to be kept05:32
lifelessbut the hard to justify split between blueprints and bugs is to go05:32
nigelbah, okay.05:33
StevenKBlueprints and bugs turn into 'issues'05:33
StevenKLaunchpad has issues05:33
* StevenK smirks05:33
wgrantYes.05:33
nigelbLaunchpad has *lots* of issues :p05:34
lifelesshmm, I think we have two 'reload' helpers ><05:36
wgrantProbably.05:37
lifelessbulk has one05:47
lifelessand I think someone added one to testing05:47
lifeless(a broken one)05:47
=== almaisan-away is now known as al-maisan
lifelesscan has revue ?06:38
jtvlifeless: wallyworld_'s on call.06:40
lifelesswallyworld_: oh hai - https://code.launchpad.net/~lifeless/launchpad/bug-784988/+merge/6169706:41
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: wallyworld* (jtv) | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:222 - 0:[######=_]:256
wgrantlifeless: Lies.06:45
wgrantlifeless: Lots of those are escalated.06:45
wgrantFreshly.06:45
wgrantSO they do not count for the goal that matters :)06:45
StevenKWhat was it before?06:46
lifelessthe previous figure was 21006:46
lifelesswgrant is about to close a bunch06:46
lifelessand I'll update it then06:46
wgrantIndeed.06:47
wgrantWas just opening the page.06:47
wgrantFail.06:48
wgrantWhole lot criticals landed on qastaging half an hour ago :(06:49
lifelesswell, thats my critical for the day up for review06:49
lifelesssee you all monday06:50
wgrantNight lifeless.06:50
jtvby lifeless!06:54
jtv*bye06:54
jtvStevenK, wgrant: is "<" a total ordering on debversions?06:55
jtvIn other words, if not (x < y) and not (y < x), does that mean they're equal?06:56
wgrantNo.06:56
wgrantThere are some equivalent versions :(06:56
wgrantwell.06:56
jtvEquivalent ain't so bad I guess; it's unordered version pairs that I'm worried about.06:57
wgrantThose equivalent debversions will compare identically, but the string representations differ.06:57
jtvwgrant: I don't think what you just said has any bearing on the question, come to think of it.06:57
wgrantjtv: Two different versions compare identically.06:57
jtvYes, but I'm asking about the case where two versions do not compare as x < y or y < x.06:58
wgrantIt depends what you mean by equal.06:58
jtvTrue.06:58
wgrantThey will be equal, but not the same.06:58
jtvSo does this imply that it _is_ possible to have an unresolved DSD where the versions are "equal"?06:59
=== wgrant changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: wallyworld* (jtv) | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs: 217 - 0:[######=_]:256 (-5 non-pie-critical)
jtvOr are the equivalent versions considered equal for all intents and purposes?07:00
wgrantIt depends how the versions are compared.07:00
wgrantSome parts of Soyuz treat them the same.07:00
wgrantSome don't.07:00
StevenKAwww, only 21707:00
jtvThis worries me somewhat.07:00
wgrantFortunately such versions are rare.07:00
wgrantYes.07:00
wgrantIt causes non-deterministic domination.07:00
wgrantWhich is rather unfortunate, quite unobvious, and entirely unhelpful.07:00
=== wgrant changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: wallyworld* (jtv) | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs: 212 - 0:[######=_]:256 (+5 non-pie-critical)
StevenKwgrant: You know how the versions are compared for DSDs, since we wrote The Plan07:01
wgrantStevenK: I don't.07:01
wgrantI know how the base version is calculated.07:01
wgrantI don't know how you compare the versions.07:01
StevenKif self.source_version == self.parent_source_version:07:03
wgrantWhat are they?07:03
wgrantdebversions or strs?07:03
wgrants/strs/unicodes/07:03
StevenKThey are both debversions07:04
wgrantIn Python?07:04
jtvDo we have a clear definition of the comparison operators for those?07:04
StevenKwgrant: No, the postgres type07:05
wgrantBug #654878, for reference.07:05
_mup_Bug #654878: Should reject uploads with equivalent versions <boobytrap> <lp-soyuz> <soyuz-upload> <trivial> <Launchpad itself:Triaged> < https://launchpad.net/bugs/654878 >07:05
jtvAnd is it possible for two versions to have no conclusive ordering at all?  In other words, where not x < y and not y < x but we're also not sure that they're equivalent?07:09
wgrantNAFAIK07:09
wgrantI think equivalence is defined here as !(x < y || y < x)07:10
wgrantPretty much.07:10
jtvAnd people complain about SQL's 3-way logic... it's perfect for this sort of thing!07:18
wgrantDie, foul demon.07:22
jtvCome on, would you rather have a false certainty than an honest null?  Face the chasm, discard your illusions!07:22
jtvMeanwhile, I forget... did +localpackagediffs also show packages that are missing from, or specific to, the derived series?07:22
StevenKNo07:24
StevenKThere are seperate smaller pages for those07:24
jtvThen my check for "don't offer to sync packages that are newer in the child" doesn't need testing for the one-sided DSDTypes.07:25
LPCIBotProject windmill-devel build #113: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill-devel/113/07:26
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: wallyworld* (jtv) | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:217 - 0:[######=_]:256
LPCIBotProject db-devel build #565: FAILURE in 5 hr 13 min: https://lpci.wedontsleep.org/job/db-devel/565/07:41
henningewgrant: Hi! What's not-pie-critical?07:42
* StevenK smacks lifeless 07:42
StevenKStop that!07:42
jtvwallyworld_: how's your MP coming?  Meanwhile I've got a small one of my own up that you could review (but someone else would have to mentor it, of course): https://code.launchpad.net/~jtv/launchpad/db-bug-783435/+merge/6170307:44
wgrantlifeless: Such a graph is not of significant value if it can be arbitrarily massively inflated by stakeholders. Newly escalated bugs shouldn't count as part of the tech-debt critical pile, or we will never get anywhere!07:44
wallyworld_jtv: stupid doc test giving me the shits. i'll look at yours first07:45
jtvwallyworld_: when in doubt, kill it off.  :)07:45
jtvThe doctest that is, not my MP!07:45
* jtv has seen wallyworld_ with a big scary rifle...07:45
wgrant(seeing the counter go backwards through no fault of ours is rather demotivating)07:45
wallyworld_jtv: i'm thinking about it07:46
jtvuh-oh07:46
wallyworld_jtv: do distro series packages always have numeric version numbers? like 1.0 1.1 etc?07:59
jtvwallyworld_: no, they're full Debian version strings such as 0.999c-ubuntu908:00
jtvand they have their own comparison operators.08:00
jtvThey may have multiple dots, too.08:00
wgranteg. 1:1.2-3~beta2+really1.2-2~rc1+git20110223-2.3ubuntu4.5~hardy1+ppa108:01
wgrantWhich is depressingly not *that* contrived. :/08:01
wallyworld_jtv: perhaps the tests could use some version strings other than '1.0' to make that explicitly clear for noobs like me?08:01
jtvwallyworld_: this seems a bit of an arbitrary place to make that explicit, to be honest—I'd rather that the "oh this one's newer than that one" be instantly clear here.08:02
wallyworld_jtv: and will a simple < be the correct comparison operator?08:02
jtvYes, because it's the most conservative comparison.08:02
jtv(C++ background helps here :)08:03
wgrant    parent_source_version = StringCol(dbName='parent_source_version',08:03
wgrant                                      notNull=False)08:03
wgrantThat's not going to work.08:04
wallyworld_i know how < works in C++ but wasn't sure if the version strings would always start with a perfix that made sense to compare08:04
wgrantThey may be debversions with a correct < in the DB, but in Python they are just strings.08:05
jtvI'm thinking not so much about how < works in C++, but how it is used: the less<> template, and its consistent use as the only comparison operator in ordered containers etc.08:05
wgrantYou may want to use apt_pkg.VersionCompare.08:05
wgrantOr cast them to debversions in Python too.08:05
jtvwgrant: oh, they're not debversions in memory?08:05
jtvThat's worrisome because I cribbed this from other code.08:06
wgrantjtv: No, they're normal stringcols.08:06
wgrantdebversion in the DB is very new.08:06
jtvOr at least, I verified that other code also did straightforward comparisons.08:06
wgrantjtv: Yes, and lots of code is wrong :)08:06
* jtv trembles with joy08:06
wallyworld_joy or something else :-)08:07
jtvwallyworld_: I think I'll try to contrive a test then where a string comparison would give the wrong answer.08:07
nigelbokay, the merge I was talking about earlier did land successfully :)08:07
wgrantnigelb: Great!08:07
nigelbThat's 2 bug fixes in a week \o/08:07
wallyworld_jtv: that would make me happier since i get the impression there's a lot that could go wrong in this area08:08
* wallyworld_ knows way too little about debian packaging :-(08:08
jtvwallyworld_: it seems there is.  This is where a C++ background is a bad thing because it instills far too much trust in the type system.  :)08:08
wallyworld_i hear you :-)08:08
* wallyworld_ reboots. stupid unity :-(08:09
* jtv ones worked at a project where a compiler upgrade from 4.x to 5.x revealed that the central object cache lookup had been comparing numeric ids to pointers all along08:09
jtv*once08:09
jtvDamn, I've gone dyslexic.08:09
StevenKGone?08:10
nigelbhrm has the topic become stale? I see only 190 critical bugs08:10
=== al-maisan is now known as almaisan-away
wgrantnigelb: This is over all of launchpad-project.08:11
wgrantAnd there are a few private bugs.08:12
wgrantI see 196 critical bugs in the launchpad project itself.08:12
wgrant214 bugs, 217 bugtasks in launchpad-project overall.08:12
nigelbah08:13
nigelbI see 208 critical bugs now08:13
nigelbI'm curious, why is bug 500015 critcal?08:13
_mup_Bug #500015: IE js error in filebug <dhrb> <ie> <javascript> <lp-bugs> <oem-services> <story-ajaxify-dupe-finder> <Launchpad itself:Triaged> < https://launchpad.net/bugs/500015 >08:13
wgrantnigelb: It's a JS exception that would be an OOPS if we had a JS OOPS system.08:14
nigelbAh.08:14
wgrantSo it is an honorary beneficiary of ZOP.08:14
nigelbany more easy critical bugs left? ;)08:14
wgrantYou could look for critical bugs tagged easy or trivial.08:15
lifelesswgrant: we don't accept all escalations, so its not arbitrarily inflated08:15
wgrantsinzui tagged a few earlier in the week, but most have since been squashed.08:15
wgrantlifeless: It is uncontrollable reversal of the countdown.08:15
wgrantThat is silly.08:15
lifelessanyhow, my issue is much more pragmatic08:16
wgrantWe're just about always going to have *something* in the critical queue. I think the burndown should track the backlog.08:17
lifelessI don't have a query to get the 'right' count (whatever that may be defined as - and I don't want to debate it right now - family time) with any reasonable ease08:17
wgrantOr what's the point?08:17
wgrantPerhaps.08:17
lifelesstheres a few factors and we should talk about it more on Monday08:17
lifelessgotta run08:17
wgrantNight!08:17
jtvbye again lifeless08:18
nigelbis it just me or is the wording in bug 659184 complicated?08:20
_mup_Bug #659184: IntegrityError: duplicate key value violates unique constraint "ticketmessage_message_ticket_uniq <email> <lp-answers> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/659184 >08:20
nigelbI can't make head or tail of what's said there.08:20
wgrantIt's also a duplicate.08:21
wgrantI understand what's going on there, but is it easier if you read the dupe?08:21
wgrants/dupe/master/08:21
nigelbokay08:22
nigelbheh, the master has copy paste of what's said in the dup :p08:23
wgrantBah.08:23
wgrantWell.08:23
wgrantMessageSet.fromEmail looks up the message ID and content, and checks if there's an existing identical Message in the DB.08:24
wgrantIf there is, it just links it in as a comment (with a BugMessage or QuestionMessage) rather than creating a new Message object and linking that.08:24
wgrantBut there is a UNIQUE constriant on BugMessage(bug, message) and QuestionMessage(question, message).08:25
wgrantIf it receives an identical email twice to the same bug or question, it will try to link the same Message twice, and run afoul of that constraint.08:25
nigelband the solution is?08:25
wgrantPossibly just ignoring a second attempt to link a message to a bug.08:27
nigelbthis needs more read of code that I'm capable right now.08:29
nigelbwill read at home.08:29
adeuringgood morning08:40
StevenKwgrant: What's fiera used for?08:41
StevenKI can't recall08:41
jtvwallyworld_: having some lock problems with that branch.  Hope to have an updated diff in a few minutes.08:41
wgrantStevenK: It's buildd-manager.08:42
wallyworld_jtv: ok. i just got my tests passing so will finish the mp. but i may have to cook dinner first08:42
jtvOK08:42
StevenKAh08:43
StevenKwgrant: Perhaps it needs to go the way of the lucille DB user :-)08:44
wgrantStevenK: Indeed, but I broke production for a few minutes with that one, so I am a bit more wary now.08:44
StevenKWhee08:44
StevenKwgrant: Wait, with lucille or fiera?08:46
wgrantStevenK: lucille08:46
jtvwallyworld_: diff has updated.08:46
StevenKwgrant: Clearly she didn't want to die08:46
LPCIBotProject windmill-devel build #114: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill-devel/114/08:47
wallyworld_jtv: ack. will look after cooking. just typing up mp and will light the bbq after hitting submit :-)08:47
jtvwallyworld_: by all means don't multitask while lighting stuff on fire.  :)08:47
StevenKUnless it's Soyuz code08:48
jtvNo, even then.08:49
nigelbheh08:55
mrevellHello08:57
=== adeuring changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: adeuring | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:217 - 0:[######=_]:256
bigjoolsstub: can I have a db patch number please?10:00
stub2208-72-0. Can you give me a two word description for my notes?10:01
bigjoolsstub: ta. converting textual version columns in DistroSeriesDifference into debversion types10:02
stubta10:03
bigjoolsstub: sorry, scratch that.  jtv told me porkies, they are already debversions...10:06
wgrantIt's in Python that they're just strings.10:06
bigjoolsyes10:06
jtvI managed to get different results from DSD.source_version < DSD.parent_source_version than from Version(DSD.source_version) < Version(DSD.parent_source_version).10:07
wgrantSure.10:07
wgrantIn the DB they are debversions.10:07
wgrantBut they come back Python as normal strings.10:08
bigjoolsapt_pkg.VersionCompare is what we need10:09
jtvAnybody willing to mentor wallyworld_'s review?  I've got a conflict of interest on this one: https://code.launchpad.net/~jtv/launchpad/db-bug-783435/+merge/6170310:09
jtv(Thanks Ian)10:09
jtvbigjools: if it gets this subtle, I'd definitely like to have a DSD.child_is_newer or something along those lines.10:10
bigjoolsjtv: +110:10
* jtv has to be off now10:10
bigjoolsthanks jtv10:10
jtvwallyworld_: won't be able to finish that review now... mind if I put it off?10:11
stubConsider adding a psycopg2 type conversion hook to give you some sort of version object instead of a string. I think documentation may even exist now!10:11
jtvbigjools: I think you've got enough new work to keep you happy for a bit.  :)  I can pick it up Monday, but also won't be offended if you grab another reviewer.10:12
bigjoolsjtv: well approve with changes recommended? :)10:13
jtvOKOKOK10:13
jtvGood weekend everyone!10:15
bigjoolsStormBase classes have @cachedproperty invalidation working, right?10:16
bigjoolsah yes10:16
=== almaisan-away is now known as al-maisan
gmbdanilos: Does the test failure for the latest build make any sense to you? It looks like a translations thing but it could just be noise as far as I know: https://lpbuildbot.canonical.com/builders/lucid_lp/builds/965/steps/shell_6/logs/summary11:18
danilosgmb, looking11:18
gmbTa11:19
danilosgmb, that's not a translation test (test_handleStatus_OK_successful_upload in test_sourcepackagerecipebuild)11:19
danilosgmb, translation tests do spit out some nonsense there which seems not to be parsed out by the test handler11:20
gmbdanilos: Ah, right. I was seeing all the references to lp.translations and reaching the wrong conclusion. Okay, thanks.11:20
wgrantgmb, danilos: That's failed twice on lucid_lp and once on lucid_db_lp today. poolie touched it a few days ago; you may want to disable it for now.11:21
wgrantOr work out why it's not working.11:22
gmbwgrant: I'll try (2) but I suspect (1) is what I'll end up doing.11:22
gmbLooking now.11:22
rvbastub: Hi! Could you please review this db-patch when you get a chance: https://code.launchpad.net/~rvb/launchpad/dsp-order/+merge/6172711:22
rvbastub: I'm very sorry to submit these db patches bits by bits like this ... but I confess I am figuring this whole thing bits by bits as well ;).11:22
wgrantgmb: It's not reproducible locally.11:23
wgrantgmb: At least not when run in isolation.11:23
wgrantgmb: It may be using a constant path that has been polluted on the slaves.11:23
gmbwgrant: Ah, okay. Disabling seems sane then.11:23
gmbFor now at least.11:23
* gmb goes to work11:23
wgrant:( more Criticals :(11:23
wgrantThanks.11:24
gmbwgrant: Less pie for Jono.11:24
bigjoolsJono is not allowed to file Critical bugs :)11:24
gmb:)11:26
stubrvba: looking11:30
=== al-maisan is now known as almaisan-away
poolienigelb: congratulations on your landing!11:32
rvbastub: Julian suggested to change the index to "btree(derived_series, ordering)"11:33
stubrvba: Yes, that will be better. If you list the columns in that order, the index still allows fast lookups just by id.11:43
* gmb -> early lunch11:43
stubrvba: The existing index can also be used to lookup rows just by derived_series (no ordering), but it is slower.11:43
rvbastub: Just pushed the correction. Not sure I understand how this index affects lookups by id. Would you care to explain it to me?11:44
stubThis index does not affect lookups by id. Lookups by id will use the implicit index created for the primary key (distroseriesparent_pkey)11:45
stubI'm talking about a query like 'SELECT * FROM DistroSeriesParent WHERE derived_series=42 ORDER BY ordering'.11:46
rvbaAh ok, I get it now.11:47
stub(I suspect we won't use the index at all because I doubt there will be more than half a dozen parent series)11:48
nigelbpoolie: Thanks!11:48
rvbastub: I suppose you are right ... but God knows what OEM will do with this (I'm paraphrasing Julian here).11:49
poolienigelb, there was another one recently touched which is vaguely similar11:49
pooliewhich is just to have a "delete this project" button that takes you to a help page explaining you should open a support request11:50
poolieor i guess that's also a bit like what mrevell did recently11:50
stubrvba: We keep the new index though, because it *might* be useful and it makes another one redundant, so we don't lose much space or write performance.11:50
nigelbpoolie: I saw that bug last night when looking for next candidate11:50
rvbastatik: Understood. Thanks a lot for your explanation.11:52
rvbaoops ... s/statik/stub/11:53
stubapproved11:53
cjohnstonhenninge: https://code.launchpad.net/~chrisjohnston/launchpad/197793/+merge/6105311:54
henningecjohnston: would you like me to land that? (Although I thought somebody was already doing that)11:55
cjohnstonI don't think anyone has gotten to that one.... If you would that'd be great.11:55
henningecjohnston: what about this one? https://code.launchpad.net/~chrisjohnston/launchpad/483373/+merge/6104211:57
henningecjohnston: it just needs one line.11:57
henningeicon='edit'11:57
bigjoolswgrant: can you think of anything clever we can do to make >, < and = DTRT on versions, without having to remember apt_pkg?11:58
stubbigjools: Storm column type. Even register the type with psycopg2 to get a custom object for non storm code.12:01
cjohnstonhenninge: done.. sorry.. been a busy week12:01
bigjoolsyeah we'd at least need a new type so we can define operators12:01
henningecjohnston: ok, cool. I'll do that after lunch.12:03
cjohnston:-12:03
cjohnston)12:03
stubbigjools: Looks like you define a variable, per storm/variables.py and a SimpleProperty per storm/properties.py - both look pretty trivial actually. And your custom class defining __str__ and __cmp__ and friends of course.12:06
bigjoolsstub: coolio12:12
stubrvba: Just added a fresh column to that MP. I believe the new index should be UNIQUE12:19
stubrvba: Except that will make reordering a pain in the bum I guess.12:22
rvbastub: makes sense ... I must say I hesitated to make the index unique. Reordering is exactly the reason why I decided not to do it :).12:23
bigjoolsmake the default 1012:23
bigjoolsshould then be obvious how to re-order :)12:23
stubrvba: Yer. Maybe we should keep it the way it is for practicality.12:23
rvbastub: agreed.12:24
rvbastub: Besides, the reordering will be done in a fancy js UI. It will be tricky (but possible) to manage transaction from there.12:25
rvbas/transaction/transactions/12:25
stubYou still need to swap two rows using a temporary value since you can't defer the UNIQUE check until the transaction end.12:26
rvbastub: Good point. I'll be careful when doing the js part..12:27
lifelessrvba: you are -so- not going to manage transactions from js.12:29
rvbalifeless: sure, I'll do the reordering thing inside a view.12:29
lifelessrvba: perhaps you mean something very different to what it reads as.12:29
lifelessrvba: much saner :)12:29
rvbalifeless: ;)12:30
lifeless*yawn* night all12:32
rvbalifeless: good night.12:35
=== bac changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: adeuring, bac | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:217 - 0:[######=_]:256
bacmorning adeuring13:07
adeuringmorning bac!13:07
LPCIBotProject windmill-db-devel build #298: STILL FAILING in 1 hr 10 min: https://lpci.wedontsleep.org/job/windmill-db-devel/298/13:08
LPCIBotProject windmill-devel build #115: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill-devel/115/13:24
=== matsubara-afk is now known as matsubara
=== almaisan-away is now known as al-maisan
bigjoolsI get so excited when I see lots of red in a merge proposal diff13:42
* jml too13:43
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
nigelbhehe13:56
LPCIBotYippie, build fixed!14:16
LPCIBotProject db-devel build #566: FIXED in 5 hr 15 min: https://lpci.wedontsleep.org/job/db-devel/566/14:16
adeuringbac: could you please review this mp: https://code.launchpad.net/~adeuring/launchpad/bug-739065-2/+merge/61768 ?14:49
bacadeuring: yes, i'll get right on it14:50
adeuringbac: great, thanks!14:50
bacadeuring: do you really need to specify the main store or should you use the store of the object?14:57
adeuringbac: right, I can use Store.of(self.distroseries)14:58
adeuring(self itself is not a Storm object)14:58
adeuringerm, DistroSeriesSourcePackageRelease is not a storm object14:58
bacflacoste: you're probably unaware but you're sending out html email again with a tiny font15:04
flacostebac: shit, thanks for telling me15:04
* flacoste curses kmali15:05
* bac puts his glasses away15:05
adeuringbac: thanks for the review!15:08
bacnp15:09
=== al-maisan is now known as almaisan-away
deryckflacoste, Aren't security bugs always marked critical?15:30
flacostederyck: i think they should yeah15:31
deryckflacoste, should I update the BugTriage wiki page then?15:32
flacostederyck: yes, please15:32
deryckok, will do.15:33
=== EvilMTeck is now known as MTecknology
danilosadeuring, bac: anyone got time to take on https://code.launchpad.net/~danilo/launchpad/bug-772763-remove-unmute-dialog-part1/+merge/61775?15:48
adeuringdanilos: sure, I'll look15:48
danilosadeuring, thanks15:48
danilosadeuring, let me know if you've got any questions15:51
adeuringdanilos: the last line in test_bug_mute_self_view_unmutes_bug() looks odd: self.assertTrue(self.bug.isMuted(self.person)) Since the bug is unmuted, shouldn't this be assertFalse()? Or am I simply confused?16:11
danilosbac, I know you're jealous that adeuring picked that one up first, so I've prepared one for you as well: https://code.launchpad.net/~danilo/launchpad/bug-772763-remove-unmute-dialog/+merge/61780 :P16:11
bacdanilos: :)16:12
bacbe glad to look at it16:12
danilosadeuring, checking16:12
danilosadeuring, the create_initialized_view actually submits the form16:14
danilosbac, thanks16:14
adeuringdanilos: yes, but that's an unmute operation, right? So, afterwards, the bug shoulld be unmuted, I think16:15
danilosadeuring, good point, let me check16:15
danilosadeuring, indeed, you've found a buggy test, thanks; the form action should be "field.actions.unmute", not "field.actions.mute"16:18
adeuringdanilos: ahh, I missed this detail ;)16:18
danilosadeuring, incremental diff: https://pastebin.canonical.com/47682/16:19
danilosadeuring, not at all, you've seen an inconsistency :)16:19
adeuringdanilos: in line 250 of the diff, you mention a bug. Isn't this worth an XXX?16:20
danilosadeuring, I believe that's not "my" code, that bug is in progress (landed then reverted)16:21
danilosadeuring, the reversion caused the issues, I'll remove that from my branch16:22
adeuringdanilos: ah, ok.16:22
adeuringdanilos: r=me. thanks for the additional change!16:28
danilosadeuring, thanks, very much appreciated!16:28
jcsacketthenninge: i'm looking at bug 504062, about the "used in" link for deactivated templates. the oops for it is no longer there, so i was wondering if you could point me to where this error actually occurs?16:30
_mup_Bug #504062: External suggestion "used in" links to disabled template <404> <lp-translations> <oops> <trivial> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/504062 >16:30
danilosbac, I'll be running out in a few, since it's basically gary_poster's branch, I am sure you can defer to him for the questions as well; I hope you don't mind me not really being around for the OCR, and if you do, I apologize!16:31
bacnp, danilos16:48
LPCIBotProject windmill-db-devel build #299: STILL FAILING in 1 hr 10 min: https://lpci.wedontsleep.org/job/windmill-db-devel/299/16:54
bacjust used my newly minted powers to hide bug comment spam.  felt good.  thanks green squad!16:58
jcsackettbac: You're welcome!17:04
=== matsubara is now known as matsubara-lunch
=== matsubara-lunch is now known as matsubara
pooliemrevell: still here?17:29
mrevellHello poolie17:30
pooliei was just contemplating a blog post to celebrate the landings from nigelb, and um charles17:31
nigelbpoolie: chris?17:31
pooliesorry, chris17:31
nigelbheh17:31
pooliechris is the other non-core contributor who got patches in this week17:32
poolieoh i see17:32
mrevellpoolie, If you have something in mind already I think that would make a great blog post. If you're not offering to write it then I can do so next week.17:32
poolie:) i might17:33
poolieit is somehow easier to write praise of projcets other than your own17:33
mrevell:)17:33
=== elmo is now known as ihateyoutoo
=== salgado is now known as salgado-lunch
bigjoolsnight folks, have a good weekend18:08
=== deryck is now known as deryck[lunch]
poolienigelb: was that in fact your first landing?18:11
nigelbpoolie: which one?18:13
nigelbpoolie: I've had 2 landings so far, one I believe is already in production, one I just qa'd on qastaging18:14
bacnigelb: nice blog post about your initial lp work!18:16
nigelbbac: :)18:16
nigelbbac: Not sure if you remember, but I think I sat next to you for the opening keynote :p18:21
nigelb(it just clicked how your nick was familiar)18:22
bacnigelb: ah yes.  you, me, jane i believe18:22
nigelbyup :)18:22
bacwas nice to meet you18:22
nigelbyou too :)18:22
nigelbBah, this isn't right.18:39
nigelbMeeting attendees should be sorted by display name https://bugs.edge.launchpad.net/bugs/203478 You received this bug notification because you are a bug assignee.18:40
_mup_Bug #203478: Meeting attendees should be sorted by display name <easy> <lp-blueprints> <qa-ok> <sprints> <ui> <Launchpad itself:Fix Committed by nigelbabu> < https://launchpad.net/bugs/203478 >18:40
nigelbGot this in my mail.  shouldn't the edge link be deprecated?18:40
=== salgado-lunch is now known as salgado
sinzuiEdge is deprecated.Users are accessing it via bookmarks and offsite links. We will shut it off in a few weeks18:49
nigelbsinzui: I got a link to edge in my mail18:51
sinzuiBecause someone used edge. Mail came from that server18:52
nigelbPQM!18:52
sinzuiNo, more likely the tagging api script18:52
=== deryck[lunch] is now known as deryck
sinzuiPQM does not know about any website18:53
nigelbsinzui: "Launchpad QA Bot (lpqabot)" is what assigned the bug to me18:54
sinzuiyep, Ursinha-afk  lpqabot will break when we turn edge off18:55
nigelbsinzui: heh, I thought it was a bug I could fix19:11
sinzuinigelb: there is not a formal definition of trivial verses easy, but many of use mean trivial is fixable in an hour and may not need a test. easy means fixable in a day19:14
nigelbsinzui: aha, I've been fixing the easy ones, I didn't know trivial were easier than that ;)19:16
sinzuiWhen I start a bug that is labeled trivial, but realise it is not, I stop work and update the bug about why the work is more complicated19:17
LPCIBotProject windmill-db-devel build #300: STILL FAILING in 47 min: https://lpci.wedontsleep.org/job/windmill-db-devel/300/19:28
LPCIBotProject devel build #739: FAILURE in 20 min: https://lpci.wedontsleep.org/job/devel/739/19:48
jcsackettsinzui: i'm looking at bug 252172, but i'm not sure it's entirely accurate anymore. i don't see any control as described in the bug.20:28
_mup_Bug #252172: Changing a branch's status/privacy isn't obvious <confusing-ui> <disclosure> <easy-ui> <privacy> <Launchpad itself:Triaged> < https://launchpad.net/bugs/252172 >20:28
UrsulaJsinzui, why is that? (lpqabot break when we turn edge off)20:29
jcsackettUrsulaJ: i believe sinzui determined that qatagger was using edge based links.20:29
jcsackettsee nigelb's comments above.20:29
sinzuiUrsulaJ: As reported in the scrollback, nigelb got email from edge. A person or a bot used edge to update the bug. It looks like the bot20:30
UrsulaJhm, qatagger doesn't send email20:30
UrsulaJit might be using edge api instance20:30
sinzuiNo, it updates a bug, then the server sees the update and sends an email20:30
UrsulaJsinzui, edge api is the problem then20:31
sinzuiIf it is not used edge api, then all is goof20:31
* UrsulaJ goes fix20:31
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
=== bac changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:217 - 0:[######=_]:256
nigelbahoy21:59
nigelbcan someone help me figure out where is the painpoint to fix bug 90628?22:00
_mup_Bug #90628: Subscribers to a spec are randomly arranged <easy> <lp-blueprints> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/90628 >22:00
nigelbI've been looking at the source for an hour or so and I'm still lostt22:00
nigelb*lost22:00
* sinzui looks22:09
=== matsubara is now known as matsubara-afk
sinzuinigelb: is that still true?22:09
nigelbsinzui: being lost? yes22:10
sinzuiwe do not sort the subscribers by displayname?22:10
nigelbnope, not on BPs22:10
nigelbhttps://blueprints.launchpad.net/loco-directory/+spec/community-o-loco-directory22:10
nigelbits sorted by order subscribed.22:10
sinzuiexcellent.22:10
nigelband I just noticed another bug, where if you subscribe a team, LP thinks the person is invalid.22:11
* sinzui looks for SpecificationSubscription, or something like that22:11
sinzuinigelb: um, I have a nasty suspicion that there is no code to manage this, so that is why we see order by db id. We might be able to define an order in the Specification Model, or we want to create a property to get them ordered.22:14
* sinzui looks further22:14
nigelbsinzui: that's what I felt too.  take a look at subscriptionnavigation22:15
nigelberm22:15
nigelbSpecificationNavigation rather22:15
sinzuinigelb: Things are not that bad. I am looking at line 184 in model/specification.py22:16
nigelb*whee*22:16
sinzuiThere is subscriptions and subscribers. The former is by id, the later is right22:17
sinzuiThe portlet must be using the first one22:17
sinzuiwell I hope it is22:17
nigelbyeah, it is22:18
nigelbI saw that bit in the template and I couldn't figure where it was getting that22:18
sinzuiI wonder if it does that because it wants to know something about the subscription and not the person22:18
sinzuiThat markup is nasty22:19
sinzuiIt dates from the Lp beta I think.22:19
sinzuilets see if we can make subscriptions ordered22:19
nigelbokay!22:21
sinzuiThis is ancient code. This is a pretty easy query to construct in storm, but I have not worked with this SQLObject code in a long time. I think we need to change the subscriptions attribute from a MultiJoin to a property that returns the subscription (and precaches the person)22:27
* sinzui looks up SQLMultipleJoin22:27
lifelesssinzui: hi22:27
sinzuihi lifeless22:27
lifelesssinzui: precaching the persons on subscription?22:28
lifelesssinzui: will interact with https://code.launchpad.net/~lifeless/launchpad/bug-784988/+merge/61697 which is playing in ec2 now22:28
sinzuithe person because we need the subscriptions22:28
lifelessif you're going to show all the people anyway, sorting in python is ok22:29
lifelessif you're not, then sorting in the db is definitely preferred22:29
nigelbsinzui: do you want me to look at how sprint attendees in sprint and try and reuse that code here?22:30
nigelb*sprint functions22:30
lifelesssinzui: the interaction I'm thinking of is that we don't want to eager-load the people twice - once per spec, and once for the entire group22:30
sinzuinigelb: I think you need to delay working on this since the code is different. I do not see how Specification gets a .subscriptions attr now22:30
lifelesssinzui: shouldn't be hard to avoid22:30
nigelbsinzui: wait for Monday? :)22:30
lifelesssinzui: you mean that _subscriptions is a multi join, but there is no 'subscriptions' property-or-join?22:32
sinzuilifeless: how did you *not* break specification-portlet-subscribers. It is referencing that attr on Specification22:32
lifelesssinzui: I may have, ec2 will tell me.22:32
lifelesshah, that was not meant to be committed22:33
lifelessI was going to add a cachedproperty there22:33
* lifeless backs that out promptly :)22:33
nigelbheh22:34
nigelbsinzui: I'll head to bed now then, and be back Monday/Tuesday to tackle this again :)22:34
sinzuigoodnight nigelb22:34
lifelesssinzui: thanks for noticing that22:35
nigelbnight sinzui, thanks for looking into this :)22:35
sinzuinp, It is nice that we talk about these things before the code is commited22:35
LPCIBotProject windmill-devel build #116: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill-devel/116/23:36

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