/srv/irclogs.ubuntu.com/2011/08/31/#launchpad-dev.txt

LPCIBotProject devel build #1,014: STILL FAILING in 3 hr 58 min: https://lpci.wedontsleep.org/job/devel/1014/00:03
mwhudsonjelmer: maybe we don't need new code import mails now?01:35
wgrantHeh.01:37
mwhudsonnot that i really mind, it's not like they take long to dispatch01:39
cody-somervillemwhudson, they're probably going to give me Carpal Tunnel Syndrome though from all the clicking needed to delete them :P02:26
nigelbGood morning!02:36
wgrantEvening nigelb.02:36
nigelbcody-somerville: heh, automate with selenium!02:36
nigelbwgrant: I'm taking a shot at TDD today. Writing tests first. I hope that doesn't mean more headdesking :)02:36
wgrantnigelb: It gets better :)02:37
wgrantnigelb: Particularly when they aren't doctests.02:37
nigelbYeah, I'm wondering why StevenK's deletion spree doesn't delete doctests yet :D02:38
wgrantHe spent a week deleting lots of doctests a while ago.02:39
nigelbSo there is hope.02:40
nigelbbtw, lifeless is proud daddy yet? :)02:40
wgrantHow was about last night, so I suspect not, but have not heard either way.02:42
nigelbAh, ok.02:43
=== jtv changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: jtv | Critical bugs: 244 - 0:[#######=]:256
nigelbAnd I've picked up bug 68454802:53
_mup_Bug #684548: Display Edit Patch Flag More Prominently <easy> <lp-bugs> <ui> <Launchpad itself:Triaged by nigelbabu> < https://launchpad.net/bugs/684548 >02:53
nigelbMorning jtv! I shall be troubling you in a bit.02:53
* jtv rushes to change the topic :)02:53
nigelbheh02:54
=== pjdc_ is now known as pjdc
nigelbShould. Stop. Looking. At. Ivanka's. Pictures.02:58
LPCIBotProject devel build #1,015: STILL FAILING in 3 hr 58 min: https://lpci.wedontsleep.org/job/devel/1015/04:01
StevenKText conflict in test_notification between stable and db-devel. Orsum.04:18
adeuringgood morning04:40
adeuringwgrant: could you help me with qa for r13826? It's too early in the morning for me to even understand the related bug... problem is: I am a bit desperate to deploy a revision >= 1382204:44
wgrantadeuring: It's been broken for nearly 18 months; is it really urgent?04:57
adeuringwgrant: yes, unfortunately04:57
wgrantIntriguing.04:57
wgrantLooking.04:57
wgrantAh, need to resolve the conflict first, since DF runs db-devel...04:58
wgrantjtv: Are you still using dogfood?05:07
jtvwgrant: no, I use a piece of cloth now.  It doesn't absorb as well but it muffles more effectively.05:08
wgrantHah.05:09
jtvSo no.05:10
jtvMeanwhile, I see we have a wonderful merge conflict.05:10
wgrantI'm pushing a branch for that.05:10
jtvCool05:11
wgrantBut db-devel hasn't been merged in a while, so my 256kbps upstream is being painful...05:11
wgrantadeuring: Hmm, this revision may be bad. We'll see shortly.05:19
adeuringok...05:19
wgrantWell, maybe not so shortly, since mawson is mawson.05:22
wgrantjtv: http://librarian.dogfood.launchpad.net/71107310/bRhzSbgpU9MP0WU1BbgvqBNgitQ.txt is worrying.05:24
wgrantjtv: The DSDJ runner can't check packageset membership...05:24
wgrantI wouldn't think that would be a new thing.05:25
jtvThat sounds familiar somehow.05:25
jtvI would suspect that a cowboyed privilege dropped out of the db without the permanent privilege making it in.05:26
jtvEither because security.py wasn't run, or it failed, or it did not contain that required permission.05:26
wgrantThere is no permanent privilege.05:27
wgrantI just reran security.py and checked security.conf :(05:27
wgrantgranted select on flatpackagesetinclusion and packagesetsources, and it works.05:27
wgrantAnd packagesetgroup, it seems.05:29
wgrantDoes anybody know how to use Thunderbird's account creation wizard?05:41
wgrantThey've removed manual setup, and I can't work out how to use an account on a provider that they don't know about.05:41
nigelbSpend 5 minutes why launchpad.dev wasn't working. Sigh.05:45
nigelb*debugging05:45
wgrantWas it running?05:46
nigelbYeah, https05:46
nigelbI can do a create_initilized_view for all the portlets too?05:47
wgrantIn general that should work.05:47
nigelbtdd is weird, at last at first.05:47
wgrantFor some it won't.05:47
nigelb*least05:47
wgrantadeuring: I think that rev is good.05:53
wgrantWhich means we can deploy.05:53
adeuringwgrant: great, thanks for your checks!05:53
wgrantSorry it took so long. High startup time and lots of checks to do.05:53
nigelbso, I create a bug.06:06
nigelbI add an attachment06:06
nigelbnow, how do I get the comment of that attachment?06:06
nigelb(I feel more lost writing tests first)06:08
wgrantnigelb: BugAttachment.message06:13
nigelbah06:13
nigelbneed to look at models deeper.06:13
wgrantnigelb: I often find it's clearer to check the DB structure.06:14
wgrant\d bugattachment06:14
nigelbI'm not well versed with postgres enough.'06:15
nigelbyet.06:15
wgrantpsql launchpad_dev06:15
wgrant\d bugattachment06:15
wgrantDone :)06:15
nigelbwow06:15
nigelbI did not know about psql.06:16
nigelbThis, is neat.06:16
jtvnigelb: I told you that exact same trick!06:28
=== jtv is now known as jtv-eat
nigelbjtv-eat: well, I didn't know how to use it correctly :)06:31
StevenKpsql is love06:35
nigelbhehe, so with tests first, I can head desk first06:37
nigelband then when I fix it, there's more joy06:37
nigelbGah, I can't do this apparently.06:37
nigelbhtml = create_initialized_view( self.bugattachment.message, name='+index', )()06:38
wgrantnigelb: Why not?06:40
wgrantnigelb: It's odd syntax, but it should work.06:40
wgrantOh, hmm.06:40
wgrantThere's no +index for Message itself.06:40
nigelbah.06:41
wgrantYou'll need to get the BugMessage.06:41
wgrant(Message just represents an email in LP. May be on a bug, merge proposal, answer, mailing list...)06:41
nigelboh.06:42
nigelbForbiddenAttribute: ('BugMessage', <Message at 0xf402b0c id=51>)06:46
wgrantgetUtility(IBugMessageSet).getByBugAndMessage(some_bug, some_message)06:48
nigelbhehe07:09
nigelbawesome traceback07:09
wgrantOh?07:09
nigelbhttp://dpaste.com/605694/07:09
nigelbwgrant: Thoughts? :)07:17
wgrantnigelb: Hm, that's pretty nice.07:17
nigelbHaha07:18
wgrantnigelb: It looks like you're calling it with a bugattachment, not bugattachment.message.07:18
nigelbaaah.07:18
nigelbSigh.07:22
nigelbhttp://dpaste.com/605703/07:22
nigelbWhy do I end up wasting more time than finding a fix in tests :|07:24
wgrantAh, it looks like you actually want BugComment:+index, not BugMessage:+index. And BugComment creation is not for the faint of heart :/07:25
wgrantYou're possibly better just rendering BugTask:+index.07:25
nigelbWell, the problem is the edit shows up in a portlet as wwell.07:26
nigelbI don't watch to get that.07:26
nigelbOR, I'll have to count the number of appearances.07:27
nigelbOr add a class to the find and use soupmacheers07:27
wgrantOr you can use BeautifulSoup/soupmatcher to look only in the comment list.07:27
wgrantThere should be an existing class/ID you can use.07:27
nigelbAh.07:27
nigelbAh, we deployed.07:29
* nigelb checks his fix.07:29
wgrantWe did.07:29
wgrantIt looks good.07:29
nigelb\o/07:29
LPCIBotProject devel build #1,016: STILL FAILING in 3 hr 55 min: https://lpci.wedontsleep.org/job/devel/1016/07:57
nigelbI have to agree with bigjools, soupmatches is quite rad.08:06
mrevellHello08:11
nigelbHello mrevell! Good morning :)08:13
mrevellHey nigelb!08:14
rvbanigelb: I'm sure you will come to love soupmatchers ;)08:15
nigelbrvba: Heh, already loving it!08:15
rvbanigelb: ;)08:15
=== almaisan-away is now known as al-maisan
nigelbheh, I summoned bigjools? :P08:16
bigjoolsI was rubbed08:16
nigelbxkcd ruined that reference for me.08:17
nigelbAnyway, I was mentioning how I like soupmatchers :)08:19
rvbajtv: Could you please have a look at this (tiny) MP when you get a chance: https://code.launchpad.net/~rvb/launchpad/masscreate-bug-835040/+merge/73495 ?09:28
nigelbwgrant: GAH.09:54
nigelbI'm doing something wrong, I'm getting hideous tracebacks.09:54
jtvwgrant: while you're being distracted, can I interest you in reviewing my DB privilege fix?  https://code.launchpad.net/~jtv/launchpad/bug-837893/+merge/7350209:55
=== jtv changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 244 - 0:[#######=]:256
nigelbMy nightmares with tests continue. Sigh.09:55
jtvOr I could ask danilos, who is OCR'ing today.09:56
danilosjtv, oh, he is? :)09:56
jtvApparently.09:56
jtvAt least on Gregorian Wednesday.09:56
=== danilos changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: danilos | Critical bugs: 244 - 0:[#######=]:256
jtv:-)09:56
nigelbjtv: You're marked under Europe? HA09:57
jtvI'm sort of inbetween.09:58
danilosjtv, r=me09:58
jtvthanks danilos!09:58
danilosjtv, which one of us?09:58
jtvwgrant: it's done—you go help nigel or something.  :)09:58
jtvfor danilo in danilos: danilo.thank()09:58
nigelbheh09:58
nigelbif I create a bug with factory, I can call its +index right?09:59
* nigelb checks zcml09:59
nigelboh, I need to call the +index of the bugtask?10:00
wgrantnigelb: Bug has no +index, right.10:00
wgrantIt redirects to default_bugtask's +index.10:00
nigelbso, create_initialized_view(self.bug.default_bugtask, name='+index', )()10:01
nigelbI got a scary traceback for that one.10:01
nigelbhttp://dpaste.com/605821/10:02
nigelbI wonder if this has something do with layer = LaunchpadFunctionalLayer10:02
nigelbI think I've mostly used DatabaseFunctionalLayer before.10:03
jtvdanilos: you'll notice I left one review on the queue.  It looks like nobody's worked on it but it's got other reviewers' names on it.10:04
rvbajtv: thanks for the review mon cher.10:04
jtvrvba: ton /quoi/?10:04
rvbaTrès cher jtv ;)10:04
bigjoolsle horreur10:04
jtvI thought I was doing this work at quite a reasonable rate.10:04
bigjoolsjtv is actually cheap10:05
jtvOh now that's rich.10:05
jtvAnd is it le horreur or l'horreur?10:05
rvbahehe10:05
rvba"l'horreur" indeed.10:05
rvbaFTR this "cher" was "dear".10:05
jtvFunnily enough, "dear" can have both meanings in English.10:06
bigjoolsI was enunciating all the syllables10:06
jtv(although "expensive" is somewhat archaic)10:06
jtvbigjools: I see.  Maybe you should enunciate them twice in succession: le horreur, le horreur10:06
jtvWasn't until that bit in the book that I realized that the film was based on it.10:07
jtv“le horreur, sans blague”?10:09
rvbanigelb: I /think/ the problem you have is due to the fact that you don't pass any 'principal' to create_initialized_view.10:10
nigelbrvba: principal being a person?10:11
rvbanigelb: yes.10:11
wgrantrvba, nigelb: It defaults to anonymous.10:11
wgrantThis is possibly another view that doesn't like being instantiated directly :/10:11
wgrantIt's a fairly horrific view.10:11
nigelbI tend to pick the fun ones, yeah.10:12
rvbaI'm pretty sure I had this exact same problem.10:12
nigelbSomeday I'll learn how to do this right :|10:12
nigelbHa, solution?10:12
rvbanigelb: please try principal=factory.makePerson()10:13
nigelbmmm10:15
nigelbNoCanonicalUrl: No url for None because None broke the chain.10:15
rvbanigelb: Looks like something is trying to redirect to None.10:19
nigelbrvba: Oh.10:20
nigelbThat's wweird :|10:20
nigelbI should have started with fixing the bug isntead of tests10:21
danilosjtv, on line 84 of the diff on https://code.launchpad.net/~jtv/launchpad/bug-834388/+merge/73483, "removables" is not a ResultSet, right?10:21
nigelbI've spend 8 hours and I've nothing to show for it, except a broken test :)10:21
jtvdanilos: no, it's a set that's first painstakingly constructed by hand.  :/10:22
jtvSorry, list!10:22
jtvNot set.10:22
danilosjtv, ok, fair enough (btw, I am surprised you didn't know about resultset.set() :P)10:23
jtvWell, now I do!10:23
rvbanigelb: It's a good habit to start with the tests. And its absolutely normal to have trouble to write tests at first.10:23
jtvI have to leave very very soon btw10:23
danilosjtv, sure, I am almost done with this second review10:24
jtvGreat, thanks10:24
danilosjtv, just one more non-critical question, why the changes to logger statements?10:24
jtvThey annoyed me.10:24
jtvWhy have special provision for debug10:24
jtvbut none for the other log levels?10:24
jtvSomeone's going to do a logger.info or a self.warn and find it doesn't exist.10:25
jtvOr do you mean the string interpolation?10:25
jtvApparently the "proper" way to do it is logger.info("format %s string", variable)10:25
jtvNot logger.info("format %s string" % variable)10:25
nigelbHrm, I wonder what I do next.10:26
nigelbI can't get the view to get a test. My test is supposed to just check the existence of a URL.10:26
Gbtw guys, what is the best way to find out what handles/generates a particular page?10:26
nigelbconfigure.zcml10:27
nigelbit will be inside browser folder10:27
danilosjtv, I meant both, the fact that logger.info considers the first string a format string doesn't make it proper in my book, but I don't care either way :)10:29
Gnigelb: ah ha, thanks! :)10:29
nigelbG: :)10:29
danilosjtv, it'd make sense if it was something like structured() or sqlvalues() where stuff needs to be interpolated some how10:29
daniloss/ //10:29
jtvdanilos: I never bothered to ask really, it just allows for slightly better formatting.  :)10:29
danilosjtv, heh, sure, formatting is a good argument10:30
danilosjtv, anyway, r=me already, but I assume you know what will this do for performance :)10:30
jtvthanks!10:30
jtvIt'll improve the normal case, make the weird case worse.10:30
jtvAnd it shows future engineers how to fix the weird case.10:31
=== jtv is now known as jtv-afk
nigelbwgrant / rvba: Anything more I could try?10:34
rvbanigelb: please paste your diff.10:34
nigelbhttp://dpaste.com/605832/10:36
Ghmmm took a look at bug 61428 and I think I've identified a 3 line fix10:39
_mup_Bug #61428: Want a "subscribed to teams" portlet... <feature> <lp-bugs> <trivial> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/61428 >10:39
stubThe 'proper' way of interpolation with the logger API saves interpolation time, but has a habit of hiding interpolation bugs as we end up with untested code paths.10:40
Gahhh actually, not that simple10:42
Gdanilos: if you've got a moment, question about the above mentioned bug, the portlet while nearly identical for a subscribed bugs page, is nearly the same as the current assigned bugs (person-portlet-team-assignedbugs.pt) is the attitude to create a seperate portlet, or try and introduce logic to the current portlet10:49
stubgmb: Bug comment lazy loading - what will search engines see if we turned this on for everybody?10:50
gmbstub: Uhm... Well, at the moment it's just JS on top of what's currently there. But fair point; if we did it automatically then it would be not good for our Googlejuice.10:51
danilosG: I am looking at it10:51
nigelbgmb: Or using text-only browsers :)10:52
gmbnigelb: also true.10:52
stubgmb: Yer. We might need to be more intelligent. Default batched comments with a sane batchsize, and js magic to improve on that if you have js.10:52
gmbThankfully, we're talking about something I haven't done yet :).10:52
nigelbheh10:52
gmbstub: Agreed. It wouldn't be too hard to do that, actually.10:52
Gdanilos: a second portlet, would basically be :%s/assigned/subscribed/g w/ a little bit of extra CSS for the new div class id's10:53
stubFor insane people who want to scroll through the entirety of Bug #110:53
_mup_Bug #1: Microsoft has a majority market share <iso-testing> <ubuntu> <Clubdistro:Confirmed> <Computer Science Ubuntu:Confirmed for compscibuntu-bugs> <dylan.NET.Reflection:Invalid> <dylan.NET:Invalid> <EasyPeasy Overview:Invalid by ramvi> <GenOS:In Progress by gen-os> <GNOME Screensaver:Won't Fix> <Ichthux:Invalid by raphink> <JAK LINUX:Invalid> <LibreOffice:In Progress by bjoern-michaelsen> <Linux Mint:In Progress> <The Linux OS Project:In Pr10:53
G(at least my intpretation)10:53
nigelbargh!10:53
nigelbBut there are probably Ubuntu bugs worse than that.10:54
nigelbrvba: Were able to spare a minute to look into that diff?10:54
danilosG: right, I think you are better off reusing it, and just introducing a few variables like CSS class and target view to decide what to do in the template10:54
danilosG: though, that entire portlet looks like a very bad UI, but if you find it useful, it's better than no UI :)10:54
rvbanigelb: Yes, nothing seems bad with your diff but this "NoCanonicalUrl: No url for None because None broke the chain." is a tricky error.10:55
rvbanigelb: hang on.10:55
nigelbokay, so I'm not going completely crazy :)10:55
Gdanilos: so just cp it, and change where it's needed10:56
danilosG: nope, with "reusing" I meant use the same template (perhaps rename it), but modify it so you can pass in the bits like the div ID and "+assignedbugs" part of URL from the view10:57
Gahh yep, I get you10:57
Gso basically the second option (introduce logic/pass variables)10:57
danilosG: btw, would it not be better if there was a page listing all the actual bugs any of your teams is assigned to/subscribed to?10:58
danilosG: yes10:58
Gdanilos: you mean something like +subscribedbugs as is, and then something like +subscribedbugs/+all ?10:59
danilosG: yeah, something like that10:59
Gactually, +indirectsubscribedbugs10:59
Gdanilos: couldn't that be quite 'expensive' if someone did that against say Mark Shuttleworth who I'm guessing is a member of a lot of teams?11:00
danilosG: it could be nontrivial, sure, but if that's the question you really want answered with this page, it should be doable, imho11:01
G(expensive as in time to generate & amount of data that could be retrieved from the DB for some people)11:01
danilosG: of course, I am not suggesting you should block on this, but just wondering if that's what you really want?11:02
danilosG: also, as far as data being transferred from the DB, we do batch most of the big requests11:02
rvbanigelb: Why are you rendering a view on bugTask in test_bugattachment_edit_view?11:03
nigelbrvba: I should move it to another file, but I wanted to write it some place where attachment bits existed.11:03
nigelbIs there a better place already existing?11:03
Gdanilos: actually seems +bugs does that already11:04
rvbanigelb: I don't know that code (bugs) very well but I /think/ the bug is not properly setup for you to render bugTask:+index11:04
nigelbhmm.11:04
nigelbI should perhaps tell you what I'm testing so you can suggest a better, working alternative.11:05
rvbanigelb: My advice would be to find in the code a properly setup bug (one that ressembles what you want to test).11:05
nigelbWhen you attach a patch on LP, it shows up in the comments, but the edit link is a portlet on the left. I'm adding that edit link to the link in the patch as well.11:06
nigelbAh, perhaps I should try that.11:06
danilosG: yeah, though I'd never claim to know what exactly "related" means there11:06
rvbanigelb: I see.11:06
danilosG: at least not before reading the code carefully :)11:06
Gdanilos: I think 'related' is something all could easily be lost in translation11:07
danilosG: I also dislike the concept of me being related to a bug ;)11:07
wgrantG, danilos: "Related" is a combination of all the filters.11:07
wgrants/combination/union/11:07
Gdanilos: but the way I see it is: all bugs (x) has had something to do with11:07
wgrantStuff you're subscribed to, or assigned to, or reported, or commented on.11:07
nigelbhrm, I could do a browser test I guess.11:08
daniloswgrant, that simple? no team subscriptions considered?11:08
wgrantdanilos: Correct.11:08
daniloswgrant, right, thanks11:08
Gahhh so it doesn't consider via teams11:08
rvbanigelb: that's already what you tried to do.11:08
StevenKG: Good to see you tackling more issues. :-)11:08
GStevenK: seems a bit of a waste to sign a document to contribute and stop after one issue :)11:09
nigelbrvba: No, the from lp.testing.BrowserTestCase11:09
nigelbStevenK: Isn't it fun that there are two new people contributing and both of us have the same first name ;)11:09
danilosG: so, my gut feel is that we should be able to generate a single pages with all related bugs for any of the filters which includes your team subscriptions: basically, the "only" difference would be a join through TeamParticipation table :)11:09
StevenKnigelb: That isn't confusing *at all*11:10
nigelbheh11:10
danilosG: s/single pages/self-contained pages/11:10
GStevenK: that and, I really like Launchpad, and the code is much better than another unnamed set of tools are :)11:10
nigelbwgrant: Can I hope for mildly better success with BrowserTestCase? :)11:11
=== henninge is now known as henninge-lunch
Gdanilos: actually, what I was wondering is if the best way is to create an AJAXy portlet that uses the team list, to basically: "Also show bugs assigned to: <set of checkboxes>"11:12
Gor even a "Showing directly (assigned|subscribed) bugs, [link: include indirectly (assigned|subscribed) bugs]11:13
danilosG: yeah, though choosing through a bunch of checkboxes is a nightmare imho :)11:14
Gdanilos: yeah, I agree11:15
Gbut with an on/off type thing, it'd also be possible to still list the user's teams that implements the existing behaviour as well11:15
danilosG: yeah, though user's teams are listed elsewhere as well (I'd even argue that it's misplaced on +assignedbugs now)11:17
Gdanilos: well for someone with a lot of team memberships, it allows drilling down to individual teams easily, but I agree to that view as well11:18
danilosG: true, true11:18
danilosG: well, I think providing the list won't be bad or wrong, so I suggest you just go for it :)11:18
G(I just realised as well, that it'd likely have to be a non-AJAXy because the searching is also non-AJAXy11:19
rvbanigelb: I think the only place where this (adding a comment with a attachement) is tested is bugtarget-filebug-views.txt11:20
=== al-maisan is now known as almaisan-away
nigelbdoctest :(11:21
rvbaIndeed.11:21
GMaybe just a portlet that basically has: http://dev.nigelj.com:81/bugportlet.txt11:22
rvbanigelb: my advice would be to see what your fix does to that test. If you only need to add a couple of lines in there, it's fine.11:23
Gor is that getting a little too complex?11:23
bigjoolsanyone else seeing update-sourcecode breaking when run from rf-get?11:23
nigelbbigjools: the cache file?11:23
bigjoolsyes11:23
nigelbyeah, I saw that yesterday11:23
nigelbI was told to just use the merged version in devel11:23
nigelbthere's a conflict11:24
wgrantSomeone probably updated it on an i386 machine.11:24
wgrantSo the order is different.11:24
rvbanigelb: I'm sorry but I'll have to leave you to it now. Maybe danilos can give you a hand if you need more help.11:24
nigelbrvba: Sure, no problem, I'll dig deeper.11:24
bigjoolsbzr resolve --take-other FTW11:25
nigelbyeah, that's what I did11:25
nigelb*too11:25
Gdanilos: does that look semi-sane, or a bit too long?11:25
nigelbThis may come off as exceedingly stupid. How do I run a doctest?11:25
danilosG: I think it'd be fine11:26
bigjoolsnigelb: bin/test -t <name of doctest>11:26
danilosG: and definitely an improvement over what we have now11:26
nigelbbigjools: ah, thanks!11:26
Gdanilos: and basically the idea is for it be no-AJAX, and just add a includeindirect=1 to the request to +subscribedbugs11:27
bigjoolsnigelb: remember that doctests are loaded by unit tests11:27
rvbanigelb: ./bin/test -cvv -t xx-doctest.txt11:27
G(or assignedbugs for that matter)11:27
danilosG: I'd also do it in two steps (branches) to make it easier: generalize what we have in one branch and make it work for the subscribed bugs case, and then another one to provide the indirect bug searches11:27
danilosG: yeah, that sounds good, though that may conflict with the search parameters11:28
Gdanilos: so basically 1 branch to include it for subscribedbugs, and then a second branch to implement show indirect11:28
jelmerhmm, is something up with loggerhead on staging?11:28
nigelbbigjools: oh. that's why everyone tells me doctests having a slightly weird loading.11:28
danilosG: yep, that also ensures you solve at least one problem11:28
Gdanilos: ahhh a good point11:28
=== matsubara-afk is now known as matsubara
danilosG: (if the "include indirect" turns out to really be too expensive)11:29
wgrantjelmer: Probably. asuka has been in swapdeath twice in the last 24 hours.11:29
wgrantjelmer: Stuff may need restarting.11:29
wgrantjelmer: although codebrowse is tellurium, so I am stupid.11:29
nigelbGah, I fixed it and I don't see a text breakage.11:29
nigelb*test11:29
nigelbThe one time I'm unhappy a test didn't break.11:29
bigjoolsnigelb: this is an example of one: lib/lp/archivepublisher/tests/test_publisher_documentation.py11:29
jelmerwgrant: ah, ok11:29
Gdanilos: alright I'll type it up in launchpad11:29
jelmerwgrant: either way, I guess should ask a losa11:29
jelmerwgrant: what was up with asuka?11:30
danilosG: cool, I'll be switching locations soon, but if you want me to comment on the bug as well, just let me know :)11:30
wgrantjelmer: I'm not sure that was ever determined.11:30
nigelbbigjools: Ooooh. thanks!11:30
Gdanilos: thanks!11:30
jelmerwgrant: hmm, that makes me feel a bit uneasy about the stuff that is currently on staging..11:32
wgrantjelmer: You could obtain process listings.11:33
wgrantjelmer: I believe they are taken every minute or 5.11:33
Gdanilos: does person-portlet-team-bugs.pt should better than ...-team-assignedbugs.pt for a generic version?11:33
danilosG: it does, yeah11:34
bigjoolsit's quite amazing when DF manges to load a page that [qa]staging is timing out on11:35
wgrantbigjools: You used TRUNCATE, didn't you?11:35
bigjoolshmm?11:35
wgrantThe only explanation for that is that you TRUNCATEd the table.11:36
bigjoolsnope11:36
wgrantLies.11:36
nigelbheh11:37
nigelbIs asking for a review of a branch I couldn't successfuly write a test cheating?11:38
nigelb:)11:39
nigelbwgrant: Is this fix released? bug 83374311:43
_mup_Bug #833743: test_versioninfo fails when system has bzr 2.4 <test-system> <Launchpad itself:In Progress by nigelbabu> < https://launchpad.net/bugs/833743 >11:43
wgrantnigelb: Indeed.11:44
nigelbwoah, too fast.11:45
bigjoolswhat are the runes to make bin/test pick up the failing tests in a testr repo?11:48
nigelbtestr init ; zcat ~/Downloads/4595-upgrade-bug-linking-r13582.subunit.gz | testr load; testr run --failing11:49
nigelbwhere the ~/Downloads path is the subunit file.11:49
nigelbbigjools: is ^ that what you meant?11:50
bigjoolsnigelb: perfect, thanks11:50
nigelb:)11:50
bigjoolshow does it know to use bin/test?11:50
jelmerbigjools: the .testr.conf file11:50
nigelbI just assumed StevenK's magic would work.11:51
bigjoolswhich begs another question ... :)11:51
bigjoolshow did I have that config already11:51
jelmerbigjools: it's part of the launchpad tree11:51
jelmer:)11:51
bigjoolsah!11:52
nigelbheh11:52
bigjoolsthat would make some sense, yes11:52
nigelbdanilos: Could I add https://code.launchpad.net/~nigelbabu/launchpad/patch-edit-684548 to your list? :)11:55
nigelbI've been unsucessful in getting tests for it sadly. Any help appreciated :)11:55
stubIs there a helper to make non-blocking reads on a Python file object, or am I stuck with select() boilerplate?11:57
bigjoolsTwisted? :)11:59
bigjoolsare you in a loop that keeps checking?12:00
nigelbexcellent, TDD dream works12:07
Gdanilos: hey quick question, I can seem to find any other pages that does the whole pass variables to a portlet thing, do you know of any so I can have a look at one12:09
nigelbGAH, qastating. Y U NO let me file bug.12:11
=== almaisan-away is now known as al-maisan
nigelbbigjools: is bug 284707 still trivial?12:28
_mup_Bug #284707: When Launchpad Janitor closes a bug due to a package upload, the message should link to that upload page <lp-soyuz> <trivial> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/284707 >12:28
wgrantnigelb: Yes. Should just need the template changed to insert a link -- which can be easily generated using canonical_url.12:29
bigjoolsnigelb: mostly, you just need to get the DSPR and use canonical_url() on it12:29
nigelbBut how do I test...12:29
bigjoolsfind the existing test12:29
nigelbI mean, not programmatically12:29
bigjoolsdo an upload locally12:30
bigjoolsand run process-upload.py12:30
nigelbhm, this is going to be fun.12:30
wgrantnigelb: Nah, it was fun 2 years ago.12:30
wgrantNow it's well-documented and partially scripted :)12:30
wgranthttps://dev.launchpad.net/Soyuz/HowToUseSoyuzLocally12:30
nigelbwgrant: I'm still stuck on the test for that bug. The "fix" turned out to be 2 lines. Once again haunted by tests.12:31
StevenKnigelb: Is your TDD experiment working?12:31
nigelbStevenK: I failed spectacularly.12:32
bigjoolsdo it for this one, really12:32
nigelbThe second bug I picked up turns out to have been fixed by wgrant a few months back.12:32
nigelbAlso, what kind of box does qastaging run on? netbook?12:33
nigelbMy local instance seems fast than that.12:33
StevenKHahaha12:33
bigjoolsstaging is timing out today12:33
StevenKnigelb: qastaging *and* staging both run on asuka. The poor thing is running *two* Launchpads12:33
Ghmmmm I don't get how I can pass data to a template portlet12:34
=== danilo_ is now known as danilos
bigjoolsG: "view" and "context" contain what you think.  So you can do view/property or context/property12:34
nigelbmrevell: "The Great Dismal Swamp" isn't some part of Launchpad? ;)12:35
* nigelb runs12:35
bigjoolsI read "The Great Dismal Swamp" but said "Soyuz"12:35
nigelbheh12:36
nigelbI was thinking of blueprints though12:36
wgrantnigelb: What did I fix?12:36
nigelbbug 66741312:37
_mup_Bug #667413: "HowToTriage" URL in "thankyou for reporting this ubuntu bug" box should be a link <lp-bugs> <trivial> <Launchpad itself:Fix Released> < https://launchpad.net/bugs/667413 >12:37
Gbigjools: basically I'm trying to generic-ize the person-portlet-team-assignedbugs.pt portlet, (/+assignedbugs) but I can't see any way to pass "+assignedbugs" etc to the portlet12:38
Gunless I'm lost somewhere12:38
wgrantnigelb: qastaging and staging share an appserver (asuka) and a DB server (sourcherry). I don't know asuka's specs, but a fair bit of the bottleneck is the DB. sourcherry has 32GiB of RAM and has two LP DBs. The production DB servers have 132GiB of RAM (I believe), a single DB, and there are three of them.12:38
wgrantnigelb: So I did. Thanks for finding that.12:38
nigelbwgrant: 32 GiB of RAM?12:38
G132GiB of RAM? nice :)12:39
nigelbOh, right. It has the eentire prodcution data12:39
StevenKnigelb: The production database is like 240GiB12:39
wgrantnigelb: Yes. The LP DB is hundreds of gigabytes, so...12:39
bigjoolsG: that's a traversal, you need to define that in zcml.12:39
bigjoolsand there be dragons12:39
bigjoolsoh look, it's lunchtime!12:39
nigelbtea time!12:39
StevenKWow. I reviewed that when I was still being mentored.12:40
nigelbStevenK: wgrant's branch?12:40
StevenKnigelb: Yup12:40
nigelbNeat :)12:40
Gbigjools: so is traversals for this a good thing, or a bad thing (i.e. if it's a bad thing, something that should not be generic-ized)12:40
nigelbI didn't know you were a full reviewer only recently.12:40
StevenKnigelb: Commit message for that revision you linked in the bug starts with [r=stevenk, thumper]12:40
StevenKnigelb: Graduated 15/0312:41
bigjoolsG: I don't know what you're trying to do exactly, but normally if you want a generic portlet you need to attach the template to a view in zcml, and then you can use /@@ in the other template that needs the portlet12:42
nigelbStevenK: 2003?12:42
nigelbOr March of 201112:42
bigjoolsbut I am vastly simplifying12:42
StevenKnigelb: No, March.12:42
=== henninge-lunch is now known as henninge
nigelbFairly recent :)12:42
nigelbI remember wgrant being a full reviewer.12:42
nigelberr, getting full review12:42
nigelbGRAR12:43
nigelb*reviewer12:43
StevenKAlmost six months12:43
nigelbI now know I've learned quite a bit in the last 9 MPs.12:43
nigelbEspecially when I see G go through what I as going through branches 2 to 5 ;)12:43
Ghaha12:44
StevenKAnd what I went through for branches 2 until 3012:44
henningedanilos: Hi! Can you please review my branch?12:44
henningehttps://code.launchpad.net/~henninge/launchpad/bug-824435-failure-reporting-4/+merge/7350712:44
Gohhhhh I think I get what I'm trying to do :)12:44
StevenK(I was working on Soyuz, give me a break. :-)12:44
nigelbheh12:44
G(as crazy as that sounds)12:44
nigelbG: I think most of us know exactly what you mean :D12:45
Gnigelb: yeah, I'm a bit of a zope newbie12:45
nigelbStevenK: I still don't know lots. I'm frequently getting stuck at tests as evidenced today.12:45
nigelbG: Join the club! :)12:45
Gnigelb: but I think I just worked out the solution to my question, even though I'm still not 100% sure I've been asking the right question (or at least the question the right way)12:45
nigelbThat sounds /very/ familiar.12:46
mrevellnigelb, Heh :)12:46
* nigelb heads for tea.12:48
deryckMorning, all.12:59
henningeHi deryck! ;)12:59
daniloshenninge, sure13:00
henningeI am getting this error from the LibrarianLayer. It seems that something is wrong with my local python2.6 installation, specifically setuptools.13:00
henningehttp://paste.ubuntu.com/678866/13:00
henningedanilos: cool, thanks13:01
henningeWhat can to to fix that?13:02
wgranthenninge: https://bugs.launchpad.net/ubuntu/+source/python-setuptools/+bug/83469813:24
_mup_Bug #834698: setuptools.egg-info can end up as a directory when it is meant to be a symlink <python-setuptools (Ubuntu):New> < https://launchpad.net/bugs/834698 >13:24
wgranthenninge: rm -rf /usr/lib/python2.6/dist-packages/setuptools.egg-info, and apt-get install --reinstall python-setuptools if it is installed.13:24
henningewgrant: ah thanks. I alread tried re-installing but did not remove first.13:25
henningeyes, now it is a symlink13:27
henningeand the LibrianLayer works, too .. :-D13:28
wgrantThis broke buildbot a bit, and is causing delights in the staging mailbox.13:29
wgrantA dozen emails a minute or so.13:29
wgrantAnd launchpad-error-reports is getting similar, although not quite so frequent.13:29
Ghmmm so I think StevenK was right, I can't do this the way I was thinking13:41
deryckadeuring, don't worry about marking bugs fix released. looks like wgrant got them all.13:42
adeuringah, thanks wgrant and deryck!13:42
rvbadanilos: Hi, can you please have a look at https://code.launchpad.net/~rvb/launchpad/dsd-api-bug-833080/+merge/73532 ?13:47
Galthough it does seem to me a bit odd that I can't access variables from view/foo from a portlet that is included via tal:content13:47
=== al-maisan is now known as almaisan-away
lifeless\o/14:07
bigjoolslifeless: I can only assume that means one thing14:07
lifeless:)14:07
bigjoolscongrats :)14:07
lifelesssleep now. details later14:07
bigjoolsdetails?14:07
bigjoolsgah!14:07
Glifeless: congrats14:07
nigelblifeless: Congrats!14:08
mrevellhey, congrats Daddy Lifeless :)14:11
rvbalifeless: félicitations !14:13
daniloshenninge, r=me, sorry for taking this long14:13
james_wcongratulations lifeless14:13
danilosrvba, looking at yours now14:14
rvbadanilos: Great!14:14
nigelbThis calls for a party at next sprint/summit lifeless attends? ;)14:14
=== danilos changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 244 - 0:[#######=]:256
danilosrvba, is this how we generally export SPNs?14:17
nigelbdanilos: ouch, I had a small branch I needed a review :)14:18
rvbadanilos: yes, I took the code from somewhere.14:18
danilosnigelb, if it's really small, I might be convinced :)14:18
danilosrvba, cool, just wondering14:18
nigelbhttps://code.launchpad.net/~nigelbabu/launchpad/patch-edit-68454814:18
nigelbI really tried my best to write tests for that, but failed.14:19
danilosrvba, I also assume all of these are public, and no concern should be for privileges?14:19
rvbadanilos: that's right.14:19
nigelbGah, I mean - https://code.launchpad.net/~nigelbabu/launchpad/patch-edit-684548/+merge/7351414:19
danilosrvba, cool, everything else is nice and simple, r=me14:20
rvbadanilos: Thanks a lot!14:20
danilosnigelb, have you looked at lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt for testing?14:22
danilosnigelb, (I wouldn't be surprised if that starts failing with your change)14:22
nigelbdanilos: It didn't fail :(14:22
nigelbwait.14:23
nigelbthat's not the one I tried.14:23
nigelb*checks*14:23
danilosnigelb, you might still be right, but it shouldn't be hard to extend it to test for this as well14:25
nigelbdanilos: I'll do that. I never thought I'd be writing doctests :)14:25
nigelbYup, I broke that.14:25
danilosnigelb, heh, well, if you really want, you can start a new view test if you want :)14:26
nigelbdanilos: Tried for about 4 to 5 hours :)14:26
nigelbfailed.14:26
danilosnigelb, anyway, please extend the test to assert that the link is right as well14:28
danilosnigelb, oh, I've noticed you've been discussing that with a few people, fair enough14:28
nigelbdanilos: Just fix what I broken right? [I've been at this for 12 hours now :P]14:28
danilosnigelb, you should try to at least extend the pagetest to make sure it works14:28
nigelbpagetest?14:28
danilosnigelb, well, not really, I think that is only using extract_text which strips all the tags14:28
henningedanilos: thank you very much! ;)14:29
danilosnigelb, yeah, all the doctests in stories/* subdirectories are what we used to call "page tests"14:29
nigelbso, I added an (edit) in the doctest now, it passes.14:29
nigelbdo I need to add another new test?14:29
danilosnigelb, well, you can at least check the actual link tag in there as well14:30
nigelbah, right.14:30
nigelblet me look at other tests and figure out how14:30
danilosnigelb, in that same spot there is a getLink call, you should be able to emulate that14:31
danilosnigelb, something like browser.getLink('(edit)')14:32
danilosnigelb, or well, just "edit" since that's what the link is14:32
nigelbyeah, got that bit.14:33
henningegary_poster: Good morning! ;)14:33
nigelbNow I'm looking around to figure out the pattern to the dit link14:33
nigelb*edit link14:33
gary_posterhey henninge, good afternoon. :-)14:33
henninge;)14:33
danilosnigelb, "sprite edit" on the containing <span> might be enough14:34
henningegary_poster: I am not sure if you are aware but that ZConfig change I made a few weeks ago actually helped.14:34
henningegary_poster: Now I think it is time to submit it upstream.14:34
danilosnigelb, or <a> itself (i.e. <a class="sprite edit"></a>)14:34
henningegary_poster: can you help me with that?14:34
gary_posterhenninge, I am most definitely aware!  It is great!  I made sure you were recognized on a team lead call :-)14:35
nigelbdanilos: Oh, I didn't add that class.14:35
henningegary_poster: thanks ;-)14:35
danilosnigelb, that adds the edit icon on the link14:35
danilosnigelb, also, considering you've got parentheses following the edit link now, the layout is not very pretty :)14:35
nigelbdanilos: Ah. I just copied the format of the edit in the right portlet as well14:36
nigelbI'll add the class so I can grab it.14:36
gary_posterhenninge, help with upstream: /me cringes, but yes, can do.  I would suggest that one of us email Fred Drake.  He knows me, so I might be a better choice, but I'd be very happy to let you do it.  He is the ZConfig author, and the author of that particular machinery.  I'd ask him for a review and a merge if he's willing; or if he doesn't have the time, he can toss it back to me, and I'll do it.14:37
gary_posterhenninge, you want me to write that?14:38
* gary_poster starts email ;-)14:38
danilosnigelb, do you think you can finish these changes quickly? (I need to leave soon and have a few other things I need to finish, so if you can't do it quickly, we can perhaps come back to it tomorrow morning)14:39
nigelbdanilos: Please don't block on me, if I can't get finish it, I can start again tomorrow, no issues :)14:40
nigelb*get it14:40
nigelb*finished14:40
danilosnigelb, cool, thanks14:40
danilosnigelb, feel free to ping me tomorrow morning then :)14:43
henningegary_poster: sorry, phone call14:43
* henninge reads14:43
nigelbdanilos: sure :)14:43
Gdanilos: thanks for your help btw14:43
gary_posterhenninge, I'm three paras in by now  ;-)14:43
henningegary_poster: no, was reading your explanation. that's only one para14:44
henningegary_poster: what are you reading? ;)14:44
gary_posterhenninge, I mean I'm three paras in to the email that I'm writing to Fred Drake14:44
henningeha!14:44
henninge:-D14:44
henningegary_poster: can you please write the email ... ;)14:44
gary_poster:-)14:44
henningegary_poster: thanks ;)14:45
gary_posterwelcome, henninge.  thanks for the great fix14:45
bacbigjools: how do i add an ArchivePermission for a user to a private PPA?  can it be done via the UI?14:49
bigjoolsbac: only on the API14:50
bacbigjools: ok then, i'll stop looking14:50
bigjoolsbac: good idea :)14:51
=== abentley changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: abentley | Critical bugs: 244 - 0:[#######=]:256
=== salgado_ is now known as salgado
nigelbI did wonder why a test wasn't failing.15:00
nigelbI wasn running it in the WRONG branch!15:00
Gnigelb: whoops15:02
GI think my understanding of the zope templating methods must be completely off15:03
deryckbac, ping15:07
bachey deryck15:07
cjwatsonlifeless: congratulations!15:11
cjwatsonhave we heard anything new regarding bug 809123?15:11
_mup_Bug #809123: we cannot deploy DB schema changes live <fastdowntime> <qa-ok> <Launchpad itself:Fix Committed by stub> < https://launchpad.net/bugs/809123 >15:11
benjiG: the ZPT reference is pretty good: http://docs.zope.org/zope2/zope2book/AppendixC.html or I might be bribed into answering a question or two15:16
Gbenji: I think part of it is that I'm used to how other templating methods work, and just getting a tad confused about the boundries in ZPT15:18
Gbenji: essentially in bug 61428 it'd be nice to make person-portlet-team-assignedbugs.pt reusable for both assigned and subscribed methods, but that portlet isn't the one that is the first template loaded (buglisting-embedded-advanced-search.pt)15:20
_mup_Bug #61428: Want a "subscribed to teams" portlet... <feature> <lp-bugs> <trivial> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/61428 >15:20
benjiG: I'm looking at the templates in question to see if I can get up to speed with you.15:21
=== jpds_ is now known as jpds
nigelbIs this lint error okay? " narrative uses a moin header."15:22
Gthe idea is, in person.py, I was thinking it should be possible to tell the template that the backlink should be "+subscribedbugs" or "+assignedbugs" or "+somethinginthefuture", and I can certainly tell the buglisting-embedded-advanced-search.pt about it (by setting a variable in the python class)15:22
stubcjwatson: Still blocked on RT #4704015:22
_mup_Bug #47040: while booting initial kernel, progress bar looks like Win98 <gfxboot-theme-ubuntu (Ubuntu):Confirmed> < https://launchpad.net/bugs/47040 >15:22
stubcjwatson: (Which had its one month birthday and nobody noticed! Happy Birthday!)15:23
Gbut the portlet just seems to have no access to it15:23
benjinigelb: it's not bad, or hard to fix (instead of "== Title ==" replace it with "Title\n====="15:23
nigelbbenji: cool, thanks15:23
G(I even tried: tal:define="link_back view/link_back" tal:content="existing loading of portlet-team-assignedbugs", without any luck15:24
G(which reading the ZPT documentation, sounded like it should work15:24
nigelbbenji: BTW, Your quickstart guide helped me understand a lot of how things work :)15:25
benjiG: define "without any luck" and "work" :)15:25
benjinigelb: I'm glad15:25
Gwithout any luck = "Expression: <PathExpr standard:u'link_back'> with a list of variables excluding link_back15:26
Gbenji: work as in <div tal:content="link_back"> displays what I had set in the view15:26
benjiG: the first error makes no sense to me, so I will ignore it ;) the second should have worked with something like "<div tal:content="view/link_back"></div>"15:28
benji(assuming that the view really has an attribute or method named "link_back" that holds/returns a string)15:28
Gthat just makes it "Expression: <PathExpr standard:u'view/link_back'>15:29
Gbenji: hold on, just pastebin'ing now15:29
Gbenji: http://paste.ubuntu.com/678981/15:29
* benji looks15:29
benjiG: the first change in person-portlet-team-assignedbugs.pt looks like a typo; why the space and then "view/name"?15:31
G(btw, I've had it with the same issue, with and without the nocall: (thought it might fix it) and with/without the seperate <tal:... define></ta/:...>15:31
Gbenji: oh you can ignore that15:31
Gbenji: you are right in pointing that out, but I thought the way I was joining the two variables together was the issue, it isn't actually trying to render view/name though15:32
Gflacoste: btw, thanks for sorting out the Contributor Agreement15:33
flacosteG: thanks for you contribution!15:33
Gflacoste: no problem, I was originally confused about the agreement and the Code of Conduct thing, so it didn't click until late that I hadn't done it15:34
benjiG: if I apply that patch, what URL could I visit to trigger the error?15:34
Gon my system: https://launchpad.dev/~name16/+assignedbugs15:35
Gso really launchpaddomain/~user/+assignedbugs where ~user belongs to one or more teams15:36
deryckbigjools, ping.15:36
* bigjools is in demand today15:36
nigelbabentley: Can I bring https://code.launchpad.net/~nigelbabu/launchpad/patch-edit-684548/+merge/73514 to your attention?15:37
abentleynigelb: sure.  Be with you in a moment.15:37
nigelbthanks!15:37
benjiG: if I apply your patch but leave out the broken changes to person-portlet-team-assignedbugs.pt, I don't get any errors when rendering that page15:38
Gbenji: yep, and if you add in the <div tal:content="link_back" /> the oops will occur15:39
G(ignore the rest)15:39
Gand variants such as view/link_back also didn't work15:39
benjiG: each template has its own namespace, so that name isn't defined there, you can put "view/" on the front of "link_back" and it should work (assuming both templates have the same view object)15:40
benjiah, so it may have a different view15:40
Gbenji: thats the 'class="lp...."' bit in the .zcml file?15:42
benjiG: indeed, if you look to see where that template is wired up (lib/lp/bugs/browser/configure.zcml) it has a view class of lp.registry.browser.person.PersonView15:42
Ghmmmm I just changed it to the same as the handler for +assignedbugs15:42
Gand no oops15:42
Gand it looks correct15:43
benjicool15:43
Gbenji: thank you very much!15:43
benjiglad to help15:43
Gcan't believe I was so close, but so far away at the same time15:46
Gbenji: oh except it won't be generic still, because +assignedbugs and +subscribedbugs use different classes15:49
Gbenji: I think you've got me in the right direction though15:49
benjiG: good luck, if you get in another bind feel free to ask for help15:50
abentleynigelb: it looks like danilos is your reviewer on that one.15:53
nigelbYeah, I thought I'd finish it off.15:54
nigelbYou'd rather defer to him, I can put it off for tomorrow :)15:54
abentleynigelb: I'd prefer that.15:54
nigelbCool, np15:54
nigelbOnto next bug :)15:54
=== beuno is now known as beuno-lunch
=== salgado_ is now known as salgado
=== deryck is now known as deryck[lunch]
adeuringabentley, deryck[lunch]: could one of you review a small fix for a larger part of the HWDB hassles? https://code.launchpad.net/~adeuring/launchpad/fix-broken-comment-nodes-in-hwdb-reports/+merge/7355216:11
abentleyadeuring: sure.16:11
adeuringabentley: thanks!16:11
abentleyadeuring: ISTM that your re would match "<comment></comment><somethingelse></somethingelse><comment></comment>"16:15
adeuringabentley: no, the '?' after '.*' prevents this16:15
abentleyadeuring, doesn't ? make the '.*' optional?16:16
adeuringabentley: no, that means "non-greedy searching"16:17
adeuringlike "stop at the first match"16:17
abentleyadeuring: okay.  I didn't realize that *? was a single entity.16:17
abentleyadeuring: could you add a test for that, please?  Showing that "<comment></comment><somethingelse></somethingelse><comment></comment>" => "<comment/><somethingelse></somethingelse><comment/>" ?16:18
adeuringabentley: not today.... I am really tired. I see the need but...16:19
abentleyadeuring: _fix_frequent_errors doesn't match our naming guidelines.16:20
adeuringabentley: ouch, yes fixFrequentErrors, sure16:21
abentleyadeuring: with a test and the name change, this is okay to land.16:22
adeuringabentley: thanks16:22
=== salgado_ is now known as salgado
bigjoolsmrevell: I requested your mince pies on a text change MP if you would be so kind16:30
mrevellHaha, I'd be delighted to.16:30
nigelbmrevell: Excellent email.16:32
bigjoolsmrevell: splendid old bean16:32
nigelbI'd be glad to be part of it as a contributor :)16:33
mrevellAh, thanks nigelb; you red fast!16:33
nigelbheh16:33
mrevellVery glad to have you on board :)16:33
nigelbWouldn't the blueprint bugs merge conflict with stakeholders?16:33
nigelbEspecially since Ubuntu uses it extensively.16:34
mrevellnigelb, We won't throw away functionality that's important to stakeholders ... nor the distinction between a "blueprint" face and a "bugs" face, probably. It's more an under the hood thing that'll give us benefits such as bug dependencies.16:34
nigelbAh.16:35
=== deryck[lunch] is now known as deryck
mrevellAnd it'd bring some much needed love to blueprints.16:35
nigelbheh16:35
nigelbYEah16:35
mrevelljml and mpt started that work at our Dallas sprint.16:35
nigelbYeah, jml told me about the merge at UDS16:36
bigjoolsgood night everyone17:13
=== matsubara is now known as matsubara-lunch
=== beuno-lunch is now known as beuno
LPCIBotProject devel build #1,017: STILL FAILING in 4 hr 45 min: https://lpci.wedontsleep.org/job/devel/1017/17:22
flacostederyck: your squad is on maintenance rotation this week?17:28
deryckflacoste, yes.  on interrupt duties, you mean?17:28
flacosteyes17:29
deryckflacoste, yeah, indeed we are.  what's up?17:29
flacostedid any of you guys picked up the email to Registry asking for https://launchpad.net/libreoffice/ and https://launchpad.net/df-libreoffice/ to be merged?17:29
flacoste(in the latter)17:29
nigelbHi, what's the ideal way to test a validation change?17:31
nigelb(I'm trying to fix bug 59301)17:31
_mup_Bug #59301: Don't give me a vague "URL is already registered by another blueprint" error <lp-blueprints> <trivial> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/59301 >17:31
deryckflacoste, I don't think so.  I can pick it up, though.  I'm the only one left today.17:31
flacostederyck: ideally, this should come through a question17:32
flacostenigelb: where are you implementing the validation change?17:33
deryckflacoste, should I ping back and ask for them to open a question?  is that the normal way?17:33
flacostenigelb: iow, in the view, or the field validator17:33
nigelbflacoste: In the interface17:33
flacostenigelb: field validator? or as an interface invariant?17:34
nigelber, I probably don't know what's the difference.17:34
nigelbThere's already validation17:34
flacostederyck: i'd suggest opening a question for it and pointing the user to the question for follow-up17:34
nigelbI'm only changing the validation error17:34
deryckflacoste, ack.  thanks.17:34
flacostederyck: one aspect that needs follow-up is that we don't support project merging per se17:34
flacostederyck: we can make one inactive17:34
deryckright.17:35
flacostederyck: but it would be their responsibility that all contents is moved across17:35
flacosteso bugs / translations / code / whatever17:35
deryckgotcha17:35
flacostenigelb: what file are you changing?17:35
nigelbblueprints/interfaces/specification.py17:35
nigelbspecifically L13617:36
nigelbI'll be adding the specification title as well.17:36
nigelband if I can manage it, the URL.17:36
flacostenigelb: ok, looking for a decent suggestion17:41
nigelbflacoste: :)17:41
nigelbIs interface the Right Place™ for validation?17:42
nigelb(Also, drat bigjools isn't here. Really wanted to poke him to look at cricket :P)17:42
flacostenigelb: yes, it's the right place17:42
nigelbOk, so theoretically, I should be able to look at other validation tests, if any.17:43
flacostenigelb: there is no interfaces/tests directory17:43
flacostenigelb: well, there is probably more bad examples of those than good ones17:43
nigelboh :(17:43
flacosteespecially in blueprints17:43
nigelbheh17:43
nigelbblueprints is especially unloved :)17:43
flacosteso my suggestion is to add a unit test in blueprints/model/test_specification.py17:43
flacosteideally, i would go in interfaces/tests17:44
flacostebut since that doesn't exists, might be more complicated to set-up17:44
flacostemore cookie points to you if you go that extra miles17:44
flacostebut the test should simply be something like17:44
flacostetest_url_validation(self):17:44
flacoste     spec = self.factory.makeSpecification()17:45
flacoste       field = ISpecification['url']17:46
flacoste         with ExpectedException(LaunchpadValidationError, regex_to_match):17:46
=== almaisan-away is now known as al-maisan
flacoste            field.validate(the_value)17:46
flacosteand that's it17:46
nigelbs/url/specurl/g I think?17:46
flacosteright17:46
flacostethe above is a sketch :-)17:46
flacosteyou probably want one test per error condition you need17:47
nigelbheh, ok. let me play with this17:47
flacosteand you might want to validate a good one for completeness17:47
flacostethat's how validation tests should be written17:47
flacostewe probably have one example of those in the tree17:47
flacostebut the more common cases was to test it through all the stack17:47
flacostewhich is bad practice17:47
flacosteoh17:47
flacosteyou might want to use:17:47
flacoste   field = ISpecification['specurl'].bind(spec)17:48
nigelbAlso, another thing.17:48
nigelbthat above test will probably pass.17:48
flacostesince that allow the field to look at the object itself17:48
flacostenigelb: regex_to_match is matched against the exception message17:48
flacosteso probably not if that's what needs to change17:48
nigelbbecause the test failure is when you try to create a new spec with apiurl which exists.17:49
nigelbso I'll just do an empty makeSpecification before that.17:49
flacosteindeed17:49
flacostegood point17:49
flacosteexisting_spec = self.factory.makeSpecification(specurl='...')17:49
flacosteISpecification['specurl'].validate('...')17:50
flacosteshould trigger your error17:50
nigelbyeah :)17:50
flacostevalidate() works for both new object and existing ones17:50
flacosteso you probably want a test that shows that validate('a_url') when the current value is 'a_url' pass17:51
flacosteyou'll need to call .bind() with an existing instance for that test17:51
flacoste(as outlined in my first example)17:52
nigelbright!17:52
=== al-maisan is now known as almaisan-away
flacosteor correction to it :-)17:52
flacostethat should get you started17:52
nigelbso I get to do a success and failure.17:52
flacostelet us know if you hit any snags17:52
nigelbsure! :)17:52
=== abentley changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 244 - 0:[#######=]:256
nigelbExcellent. Finally got TDD working.18:15
nigelbMy tests fail successfully.18:16
=== matsubara-lunch is now known as matsubara
nigelbflacoste: Almost a success. All I'm missing is that validation is automatically escaped.18:27
flacostenigelb: you could simply check that the exception message is a structured() instance18:28
nigelbflacoste: No, I mean, not just in the test. also in the output18:28
nigelbso, I get <a href=... instead of that getting linked18:29
flacostenigelb: i don't understand?18:29
nigelbone sec18:29
nigelbflacoste: http://people.ubuntu.com/~nigelbabu/validation.png18:30
flacostenigelb: i see18:31
flacostethat's more tricky18:31
nigelbOuch.18:31
flacosteas we don't want to become another XSS vector18:31
nigelbCan I use one of the formatters instead?18:32
flacostei think we now have a way to have HTML in error message18:32
flacostebut i don't know how off the top of my head18:32
nigelbCould I use the FormattersAPI?18:34
flacostenigelb: you need to pass use structured() to wrap the message creation18:46
flacosteso structured('%s is already registered by <a href="%s">%s</a>', value, canonical_url(spec), spec.title)18:48
flacostethat will do the right thing18:48
nigelbokay!18:49
flacostebonus points if you can figure out how to use the the link formatter from there18:51
flacostenote though that in some way this is a violation of our layering18:51
flacostewe are introducing display logic at a very low level18:51
nigelbOh.18:51
nigelbWait, link formatter? Here?18:51
flacosteputting a link in the error message is18:52
flacostemore so if we going to reuse the implementing behind fmt:link18:52
nigelbBut is there a better way to do this?18:52
flacostebut this seems to be the pattern we follow18:52
flacostethe better way would just be more work18:53
flacosteand indirection18:53
flacostefor no real benefit18:53
nigelbheh :)18:53
flacosteyou would make a subclass of LaunchpadValidation specific to this error18:53
flacosteand then in the view look for that error18:53
flacosteand replace the better error message there18:53
flacostethat would preserve the layering of concerns18:53
flacosteone drawback here is that there "HTML-formatted" error message will appear on the API as well18:54
nigelbah18:54
flacostebut not sure if that's arguably a bug :-)18:54
nigelbheh18:54
flacosteanyway, using structured() wiht LaunchpadValidationError has precents18:55
flacosteas its ErrorView supports it18:55
flacosteand grepping should find prior art18:55
flacosteso that should work for you :-)18:55
flacostentrtam18:55
flacoste-> need to run to a meeting :-)18:55
nigelbciao :)18:55
nigelbThanks!18:55
=== salgado_ is now known as salgado
bacbenji: could i bother you for a review?20:16
benjibac: my pleasure20:16
bacbenji: thx: https://code.launchpad.net/~bac/launchpad/bug-828914-test/+merge/7358520:17
benjibac: looks good!20:19
bactahnks20:19
benjivim protip: if you have ever lost some important edits down an undo/redo blind alley, look up the :earlier command20:44
benjibac: do you have time for a very small review?20:55
bacyep20:55
benjihere you go https://code.launchpad.net/~benji/launchpad/bug-810113/+merge/7359120:55
=== matsubara is now known as matsubara-afk
* benji probably should have mentioned bac's name.21:02
baci saw it.21:03
bacbenji: done21:03
benjiah!, thanks21:03
bacflacoste: that's a good idea.  i'll look at a sweep tomorrow21:04
sorenbenji: Awesome review music.21:04
benjisoren:  :)21:05
flacostebac: thanks for fixing this!21:05
benjibac: "Your review would've been much faster if it weren't for the insane music."  I LOLled21:06
sorenbenji: Just bought the whole album. :)21:13
benjisoren: cool, he definately has some skill at what he does21:15
mwhudsoner21:17
mwhudsonwould anyone like to talk about the lp javascript with me?21:18
mwhudsonah21:19
LPCIBotProject devel build #1,018: STILL FAILING in 3 hr 57 min: https://lpci.wedontsleep.org/job/devel/1018/21:19
mwhudson"These installation instructions apply to the new PostgreSQL database infrastructure as found in Ubuntu Breezy and later, and Debian Etch and later. "21:48
* mwhudson thinks this line of prose has probably outlived it's usefulness21:48
lifelessnuke from orbit21:48
=== micahg_ is now known as micahg
wallyworldmwhudson: did you find someone to talk about lp javascript?23:37
mwhudsonwallyworld: no23:37
wallyworlddid you have a question? not sure if i can help or not23:37
mwhudsonwallyworld: well, i dunno23:37
mwhudsonwallyworld: i sort of answered my own question23:37
wallyworldok23:38
mwhudsonwallyworld: do you know much about the ChoiceSource & related widgets?23:38
wallyworldi know what i need to to use them23:38
mwhudsonthere is code knocking around in there to replace icons with loading icons and so on23:38
mwhudsonbut _most_ usages in lp now use sprites23:39
mwhudson& so have to do different things23:39
wallyworldyeah23:39
mwhudsoni was sort of vaguely wondering whether it makes sense to change the widget to assume sprites23:39
wallyworldwhen you say loading icons, you mean display a spinner while loading takes place?23:39
mwhudsonwallyworld: yes23:39
mwhudsonwallyworld: the context for all this is that i've write a greasemonkey script for editing work items23:40
mwhudsonhttp://people.linaro.org/~mwh/work_item_editor.png23:40
wallyworldthe other pattern i've seen is to add "spinner" to the class of an item23:40
* wallyworld looks23:40
mwhudsoni had to copy paste hack the source of ChoiceSource to get this to work23:40
wallyworldand you want to show a spinner when you clock the yellow edit icon?23:41
mwhudsonand i'd like to get my changes into lp23:41
mwhudsonno23:41
mwhudsoni want to understand the code a bit to know if my changes will do damage :)23:41
wallyworldah right. ChoiceSource is used in only a few places from memory eg blueprints23:42
wallyworldi can look at your branch and see if anything jumps out if you like23:42
mwhudsonbugtask this affects me uses it too23:42
mwhudsonbut yeah, it's fairly isolated23:42
mwhudsonwallyworld: https://code.launchpad.net/~mwhudson/launchpad/ChoiceSource-flexibility23:43
* wallyworld looks23:43
mwhudsoni should check if my greasemonkey script works with my changes too, or this is a bit pointless :)23:43
wallyworld:-)23:44
mwhudsonhm23:48
mwhudsonwallyworld: why would LPS.WidgetPositionAlign be undefined on a blueprints.launchpad.dev page but there on production or staging?23:48
mwhudsoni guess the js is built differently?23:49
wallyworldmwhudson: good question. i've recently noticed that too. the same source files are used in both dev and prod, but prod is minified, that's the only difference afaik23:50
wallyworldmwhudson: we recently made a change to the build prcess so that yui is incuded as a tarball in downloadcahce and unpacked as part of the build23:51
wallyworldso we can easily use a different version by modifying versions.cfg23:51
wallyworldbut i can't see offhand how that would account for the difference23:51
mwhudsoni can't really see how that would matter23:52
mwhudsoni think i can make it work by wrapping all my script in a LPS.use( '...', function (Y) { ... });23:52
wallyworldyeah, so something else is happening23:52
mwhudsonwhich is probably a better idea anyway23:53
mwhudson(it may be an undeployed change)23:53
mwhudsonah uh, could it be a race condition?23:54
wallyworldyour branch looks ok to me. you could run all the yui tests but i don;t think we have coverage for what you've changed23:54
mwhudsoni don't know when greasemonkey scripts run23:54
wallyworldcould be23:55
wallyworldi can't recall the exact error i've seen in the firebug console wrt an undefined symbol23:55
mwhudsonno, that doesn't make sense23:55
wallyworldmwhudson: just checked lp.dev and lp.net. both give this error: yui: NOT loaded: widget-position-ext. so i misremembered what i saw. not related to your issue perhaps23:58
mwhudsonah yeah i see that too23:59
wallyworldbut there's no apparent problems23:59
mwhudsoni don't see that on devel though...23:59
wallyworldi do23:59

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