[12:11] thanks bradb [12:41] Merge to rocketfuel@canonical.com/launchpad--devel--0: [r=jamesh,stub] distroarchrelease added to PublishedPackage class. (patch-2137: daniel.debonzi@canonical.com) === Mez [~Mez@cpc2-lich4-3-0-cust115.brhm.cable.ntl.com] has joined #launchpad === Burgundavia [~corey@S0106000000cc07fc.gv.shawcable.net] has joined #launchpad === terrex [~terrex@84-122-73-155.onocable.ono.com] has joined #launchpad [01:40] Merge to rocketfuel@canonical.com/launchpad--devel--0: [r=BjornT] More gina improvements. (patch-2138: stuart.bishop@canonical.com, daniel.debonzi@canonical.com) === sabdfl [~mark@sabdfl.silver.supporter.pdpc] has left #launchpad [] === terrex nanit // good nigth === asgeirf [~asgeirf@nat-pool-brisbane.redhat.com] has joined #launchpad [04:39] Merge to rocketfuel@canonical.com/launchpad--devel--0: Convert the +addseries page to be a autogenerated form, cleaning up warnings and XXXs in my wake. Grudged an r=salgado just in time for it. (patch-2139: christian.reis@canonical.com) === eyequeue [~eyequeue@eyequeue.user] has joined #launchpad [07:34] how do i comply with this?: str: Failed to verify the signature, check if the GPG key you used to sign is correctly published in the global key ring. [07:35] (trying to sign the CoC, after verifying my gpg sig with launchpad profile) [07:36] where do i find this "global key ring"? [07:38] /msg MemoServ send eyequeue $(suggestions), if someone becomes un-idle here and has any ideas. thanks === eyequeue [~eyequeue@eyequeue.user] has left #launchpad ["Leaving"] === eyequeue [~eyequeue@eyequeue.user] has joined #launchpad [07:41] btw, if it matters, i first tried with firefox, then fearing the wordwrap in the textbox may have been the culprit, and not being able to get around that, i tried using lynx ... same error === eyequeue [~eyequeue@eyequeue.user] has left #launchpad ["Leaving"] [10:10] New Malone bug 1537 filed on The Launchpad by Carlos Perello Marin: Email notification testing does not work with LaunchpadZopelessTestSetup [10:10] https://launchpad.ubuntu.com/malone/bugs/1537 === mdke [~matt@mdke.user] has joined #launchpad [12:01] pqm is hung again. anyone around that can fix it? === Kinnison intends to update dogfood, anyone actively using it right now? === Kinnison takes that as "no" and goes ahead === terrex [~terrex@84-122-73-155.onocable.ono.com] has joined #launchpad [12:31] Goodness me, but baz is being slow today === Mez [~Mez@cpc2-lich4-3-0-cust115.brhm.cable.ntl.com] has joined #launchpad [12:46] BjornT: have we got any attachments in the sample data? [12:47] daf: no [12:48] how do I add one? [12:48] temporarily, I mean, not to the sample data === SnakeBite [~SnakeBite@84.242.143.64] has joined #launchpad [12:53] why do you need one? you can't create attachments atm, i haven't merged my branch yet [12:54] ah, right [12:54] I wanted to test a change to the traversal code [01:04] dogfood is back, sorry for the delay [01:10] BjornT, bradb-afk, if I close a bug that have other bugs marked as duplicated, shouldn't the duplicate be closed automatically? [01:18] carlos: maybe, i'm not sure. better to let brad answer that, he did the dup implementation. [01:20] BjornT, I'm asking because it does not work that way [01:20] or at least I found a duplicated that is not closed [01:23] it didn't work that way for me, either [01:27] yeah, the dup handling is really basic at the moment. we'll need to spec it out and improve it sometime === mpt [~mpt@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [01:31] daf: I'm not going to make it to the kingston :-( [01:31] daf: I'll see you tonight though, if that's okay [01:32] ok [01:32] hmm, I wonder if anybody else is still going === Kinnison thinks it was going to be you and me [01:32] nattie was threatening to come === Kinnison simply has too much context on his desktop to switch to the laptop today [01:33] and it's a bit late now, I'd not make it there before the meeting was due [01:33] aye [01:33] sorry [01:34] pubbage once a day is enough for me :) === Kinnison nods [01:37] daf, shouldn't the po export page use the same UI that we have now with the preferences page? [01:37] it doesn't? [01:37] you're talking about the language selector? [01:37] yes [01:38] no it does not look the same [01:38] seems like the po export page is missing the css magic [01:38] hmm, I guess RosettaApplication should be moved to lib/canonical/launchpad/systemhomes.py [01:38] you mean the bit to limit the size? [01:39] https://launchpad.ubuntu.com/distros/ubuntu/hoary/+sources/gnome-panel/+pots/gnome-panel-2.0/+export [01:39] vs. https://launchpad.ubuntu.com/rosetta/prefs/ [01:40] oh [01:40] interesting [01:40] ask mpt [01:40] mpt, ? [01:44] spiv, around by any chance? [01:44] mdke: Yeah. [01:45] spiv, awesome. i don't know if henrik has spoken to you about this: we have a "bug" in user.py on the wiki [01:45] No, I don't think so. [01:46] spiv, what happens is that users are redirected to the last page visited (last_page_visited is the string apparently), whereas this should be turned off (which is the default) === cprov [~cprov@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [01:46] Hmm, I wouldn't have expected my changes to affect that... are you sure that the wiki config has that turned off? === spiv looks at the code [01:47] spiv, apparently that is configured in user.py, I don't know whether it has accidentally been overridden elsewhere [01:47] grep for last_page_visited [01:47] That string doesn't occur in my user.py [01:47] gah [01:48] sorry [01:48] Do you mean "remember_last_visit"? [01:48] spiv, "remember_last_visit" [01:48] i suck === debonzi [~debonzi@200-171-140-32.dsl.telesp.net.br] has joined #launchpad === morgs__ [~morgs@196-46-162-1.gprs.vodacom.co.za] has joined #launchpad === SteveA [~steve@200-171-140-32.dsl.telesp.net.br] has joined #launchpad === mdke wanders off in search of lunch [01:56] mdke: Hmm, I don't see anything in my changes to affect that at all. [01:57] hello spiv [01:57] Hi Steve. [01:58] How's Brazil? [01:58] good [01:58] lucky. === jamesh [~james@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [01:59] carlos: To answer your dup question: maybe. I think the plan is to do more thinking about what to do about the tasks on dup bugs post 1.0. === salgado [~salgado@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [01:59] bradb, ok [02:00] so [02:00] do we have a meeting? === morgs__ [~morgs__@196-46-162-1.gprs.vodacom.co.za] has joined #launchpad [02:01] hmm time for meeting [02:01] Yeah, let's start the meeting [02:01] MEETING STARTS! [02:01] who is present? [02:01] me [02:01] me [02:01] me [02:01] NOT ME [02:01] me [02:01] me === carlos is here === stub [~stub@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [02:01] me [02:02] lifeless is here [02:02] me [02:02] me === debonzi here [02:02] /msg me special items === cprov here === otep [~otep@AP-203.167.31.177.sysads.com] has joined #launchpad === Kinnison is here [02:03] kiko: what do you mean "NOT ME" ? [02:03] i'm cute === stub is me [02:03] that means you can roomie with keybuk [02:03] he specified "cute" [02:03] == Agenda == [02:03] - roll call [02:03] - agenda [02:03] - activity reports [02:03] - three sentences [02:03] which arrives at 10am, ftr [02:03] s/which/who [02:03] activity reports: who's the dude and who's the suck, and who's excused because they're in brazil ? [02:04] dude === SteveA is excused === Kinnison is the suck [02:04] :-( === bradb is studly [02:04] I'm no good === jblack is playing with the monkeys [02:04] kiko: you're in brazil ;-) === debonzi is in Brazil :) === BjornT is the dude === cprov is bad, bunch of days behind [02:04] have a few I missed b efore going to brazil (need to catch up) === SteveA should have said "sprintathoning in brazil" [02:04] I'm in Brazil but still the suck [02:04] SteveA, I'm usually in brazil [02:05] anyway [02:05] move on [02:05] Ah, so that's why kiko hardly ever sends activity reports === salgado is one day (tuesday) behind. I forgot to send my that day [02:05] s/my/mine [02:05] ddaa is rebooting [02:05] okay, any pressing items before we do the three sentences? [02:05] I'm up to date and excused [02:06] I'm behind on activity reports. === SteveA does the countdown to three sentences [02:06] 6 === carlos is the dude [02:06] 5 [02:06] 4 [02:06] 3 [02:06] 2 [02:06] 1 [02:06] okay, three sentences please [02:06] DONE: sprint prep, sprint, hack some malone code [02:06] BLOCKED: no [02:06] TODO: more sprint [02:06] DONE: Debconf, bug #5, language views [02:06] TODO: language views, BrazilTopics [02:06] BLOCKED: nowt [02:07] DONE: fly here, sprinting, some baz code [02:07] DONE: sprint, travel [02:07] DONE: LaunchpadPoImport cleanups, datamigration script for bug 1036, bug 1444, karma integration into Rosetta, Language packs [02:07] TODO: more language packs, fix karma after review, GNOME imports, reduce open bugs [02:07] BLOCKED: Nothing [02:07] DO: sprint, travel [02:07] DONE: Gina reviews, review applied approved; Some more work on PublishedPackaged. [02:07] TODO: Apply review; Brazil sprint [02:07] BLOCKED: None [02:07] TODO: baz-lp 1.0 specs [02:07] BLOCKED: nothinh [02:07] DONE: specs [02:07] TODO: specs [02:07] BLOCKED: no [02:07] BLOCKED: In the colon, but medicine can fix that. [02:07] DONE: Dogfood setup, publishing work on dogfood, buildd prep [02:07] TODO: Dogfood builders running, gina in production [02:07] BLOCKED: Sysadmin time (still waiting for elmo to respond to an email) [02:07] DONE: bugfixes, Bazaar-related specs [02:07] TODO: specs, specs, bugfixes [02:07] BLOCKED: Haven't investigated wi-fi at the hotel yet [02:07] Kinnison: i'm going to phone elmo again today [02:07] DONE: code review, some fixes in sqlobject/launchpad, fixed person vocabs to allow search for email addresses too [02:08] DONE: email interface fixes. some bug fixes. reviews. some more BBA implementation. notifications threading. === kiko looks at BjornT [02:08] TODO: nag kiko to finally review BBA. land BBA. notifications threading. go to brazil. [02:08] BLOCKED: the usual, spec review from kiko [02:08] Kinnison: please make it clear the urgency of your stuff on the LaunchpadSysadminRequests page [02:08] DONE: Black beans & Pork on Rice [02:08] TODO: Various salgados [02:08] BLOCKED: Very regular, thankyou === ddaa [~ddaa@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [02:08] SteveA: Will do [02:08] DONE: Reviews, SQLObject/distinct issues, diagnosed why carlos can't use zopeless in poimport.txt yet. [02:08] TODO: Sprint next week! [02:08] BLOCKED: No. [02:08] DONE: code reviews, some calendar work, sprintathon [02:08] TODO: code reviews, sprintathon [02:08] BLOCKED: no [02:08] SteveA: that's on the internal wiki now, isn't it? [02:08] yes [02:08] DONE: Landed some usability low hanging fruit fixes. Implemented one-bugmail-per-recipient. Stumbled through implementing menus. Removed IBugTaskSubset. [02:08] TODO: (Try to) finish menus (might involve other app-level changes first.) Respond to salgado's reviews on o-b-p-r and sort out a login issue that came up removing IBugTaskSubset. [02:08] BLOCKED: No. [02:09] daf, congratulations on the menus landing, it looks spectacular [02:09] bradb: you actually removed IBugTaskSubset? [02:09] TODO: start the second round of BasicVoting, finish my changes in the person vocabs, code review. or maybe nothing of those because I'll have the sprint next week === morgs is here now, sorry I'm late! === morgs is up to date [02:09] BLOCKED: no [02:09] DONE: LinkChecker 3.0 fixes [02:09] TODO: Rollout monitoring [02:09] BLOCKED: Elmo [02:09] SteveA: yes, one failing test left though, related to login [02:09] DONE: bug fixing GPG/COC and buildd DF setup [02:09] TODO: buildd DF setup [02:09] BLOCKED: elmo on DC issues [02:09] bradb: you're kinda blocked on me doing page titles stuff ;-) [02:09] bradb: awesome [02:09] bradb: i'd like to review the traversal part [02:09] DONE: Registry bugfixing esp RDF problems Edd Dumbill highlighted [02:09] TODO: DoapSchemaNG [02:09] BLOCKED: None [02:09] DONE: pybazarchivelocation [02:09] TODO: specs? [02:09] BLOCKED: no [02:09] kiko: thanks! [02:10] stub: make sure the elmo stuff you need urgently is clearly marked on that wiki page [02:10] jblack: that goes for you too [02:10] DONE: (land menus) [02:10] Yeah. [02:10] SteveA: In doing it I noticed that the example from which I stole is almost surely broken, but we can discuss that at some point after the meeting. [02:10] Which wiki? canonical? [02:10] bradb: if you can send me an email pointing to branches, etc. then i can fit it in between spec sessions [02:10] jblack: canonical [02:10] stub: hmm, is staging down? [02:10] daf: cool [02:11] SteveA: ok [02:11] i'll note that i also have about 4 menus bugs to address [02:11] Okay, anyone else blocked that we haven't dealt with yet? [02:11] Staging shouldn't be down, but is. I'll look into it. [02:11] me for BjornT, but I'm not making any promises [02:11] ddaa: your three sentences? [02:12] SteveA, he sent them. [02:12] The elmo queue page doesn't seem to be on the top wiki page. Anyone know the wikiname offhand? [02:12] SteveA: i've sent them [02:12] kiko: okay, cool [02:12] kiko: where's my meeting bot? [02:12] LaunchpadSysadminRequests [02:12] thanks ddaa [02:12] asking me?! [02:12] jblack: https://wiki.canonical.com/LaunchpadSysadminRequests [02:12] Thanks much [02:12] kiko: yeah, you're everyone's bitch ;-) [02:13] yeah, I've had people ask me for diet coke at 9am :-P [02:13] You've got some? [02:13] essential life support [02:13] WHERE IS MY GUARANA! [02:13] in the fridge [02:13] kiko always gets some [02:13] kiko: White with two sugars [02:13] okay [02:13] MEETING ENDS [02:13] k [02:13] thanks folks [02:13] thx [02:13] same time next week [02:13] bye! [02:13] Short and sweet :) [02:13] SteveA: cool === ..[topic/#launchpad:SteveA] : Discussion with Launchpad users and developers. || https://launchpad.ubuntu.com/ || Includes Rosetta and Malone. || Launchpad meeting Thursday 28th, 1200 UTC / 0900 So Carlos [02:13] this one was fast ;-) [02:13] kiko: Plenty of coffee ready for me next week? [02:14] kiko: Oh and I started to like guarana too [02:14] #launchpad: ping [02:14] Kinnison: not tea! [02:14] (that was supposed to be an interrobang) [02:14] SteveA: Petrol coffee :-) [02:14] oops, /me got lost in his scroll buffer [02:14] bradb: /ctcp #launchpad ping [02:15] Kinnison: no, i meant #launchpad, i thought it went dead, but i was lost in my scroll buffer [02:15] heh [02:16] Kinnison: is your stuff on the sysadmin requests page? [02:16] The stuff I wanted to talk to elmo about is now up, yes [02:16] okay, i'm going to do the call now [02:18] stub: is staging down? [02:18] hey [02:18] DONE: little [02:19] TODO: JOIN! [02:19] :P [02:19] BLOCKED: the trunk [02:19] ? [02:20] the trunk is not blocked *AT ALL* [02:20] kiko: dude, POP THE TRUNK [02:21] DONE: breakfast TODO: wake up BLOCKED: nose [02:22] ddaa: lol [02:22] hoho [02:23] emergency: sabdf is asking me a question!!! === Mez [~Mez@cpc2-lich4-3-0-cust115.brhm.cable.ntl.com] has joined #launchpad === carlos -> lunch [02:26] lifeless: pqm is stuck [02:28] stub, could you enable poimport script on production? [02:28] stub, now that you merged the fixes, it should be safe to be executed. [02:28] stub, pretty please.... :-P [02:29] cprov: while reviewing your branch i came to think about some issues. i've replied to your mail about pyme and unicode [02:30] BjornT: ok, reading [02:31] SteveA: Just emailed you with a description of the problem: "Login Issue with Twiddling the Traversal Stack" [02:31] And on that note, I must finish waking up. === bradb & # *yawn* [02:32] bradb: cool [02:32] ta [02:33] BjornT: most of you said is right, but you forget to say LP is sending emails with unicode content. this is the first issue I've tryied to solve [02:35] BjornT: and you 're right about my patch in verifySignature(), it's wrong ... I can't be sure about the encode of incomming messages. [02:35] BjornT: so, can we think together in a solution ? [02:35] SteveA: RosettaApplication has a __parent__ = rootObject, but none of the other *Application classes do [02:36] SteveA: is it necessary? [02:36] daf: in a meeting. sorry. [02:36] daf: almost certainly not, though. [02:36] ok [02:36] I'll leave it out if the tests pass without it [02:36] cprov: yes for encrypt it might make sense to allow unicode (if we're sure that our outgoing emails always will be utf-8), but i didn't suggest that since i thought it would make more sense to have all methods accept the same input types [02:37] BjornT: I see you point ... [02:41] cprov: personally i'd say only allow strings, raise error if you get a unicode string. that way we're sure that the caller is aware of the issue. but maybe there's a better solution [02:43] BjornT: in this way, the first effect i can see is losing some displaynames as reported in #1496, how we can handle it, people do have unicode displaynames [02:43] BjornT: also if we have translated email-templates it would be an issue. [02:46] BjornT: resuming "content.encode('ascii', 'replace)" is the most safe action we can take, but it's ugly and will have bad reflects soon [02:46] cprov: no, we wouldn't loose anything. the difference would be that instead of encrypt(unicode_content), you would have to do encrypt(unicode_content.encode(charset_email_will_use)) [02:47] daf: mark is talking about the "contributors" portlet on a translation page [02:47] daf: he says, it should grow up to 10 contributiors. when you get 11 or more, it should have a link that says "see all 512 contributors", going to a page showing them all. [02:48] cprov: my point is that the caller should be aware of encoding problems, otherwise we'll might run into subtle issues later === cprov is thinking [02:49] SteveA: perhaps we should put this in a bug, or a spec [02:50] daf: please file a bug on it [02:51] BjornT: you're probably right, but how to guess the content encoding when it comes back, today we have this issue at least for tests purposes (not really because "Sample Person" is not encoded, but let's suppose we have "Bjrn" instead) [02:53] cprov: the charset should be specified somewhere. i'm not quite sure yet, i'll try to find some more information about it... [02:55] BjornT: I'll do the same. maybe having a attribute charset='utf-8' in methods that we use this way and still passing unicode content... I'm not sure [02:56] Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial] Make the nohup output precious (patch-2140: daniel.silverstone@canonical.com) [02:56] New Malone bug 1539 filed on Rosetta by Dafydd Harries: translation contributors portlet should be limited to 10 items [02:56] https://launchpad.ubuntu.com/malone/bugs/1539 [02:56] SteveA: ^^^ [02:58] cprov: yes, that's one option. the problem is that we might run into subtle problems later since the caller wasn't aware of the problem. but it depends on our use cases. what do we use encrypt/decrypt for today? === BjornT -> lunch [03:05] bradb: any objections to me splitting up BugExtRefSet to BugExtRef{Set,Subset}? [03:06] daf: the Subset should go away altogether [03:06] stub - the integral trees [03:06] Kinnison: my call with elmo is delayed [03:06] Kinnison: why don't you try calling him now? [03:06] Kinnison: and let me know when you've finished so i can call [03:06] Okay, remind me of his number? [03:06] Offices page [03:07] on canonical wiki [03:08] SteveA: hmm -- I'll give that a try [03:08] daf: so, you know about the fancy url traversal stuff to get rid of subsets? [03:12] SteveA: I've spoken to James now, he'll be about 10-15 mins sorting the stuff out for me [03:12] SteveA: I guess you can either ring him now, or wait and ring him after [03:13] SteveA: there are some examples in traversers.py already, yes? === sabdfl [~mark@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [03:13] Kinnison: i'll call him in 20 mins or so [03:14] Kinnison: done [03:15] elmo: thanks dude, I'll check it and confirm [03:15] elmo: looks fine, thanks [03:21] staging is back up btw - config file changes that landed yesterday caused it to not restart. === Keybuk [~scott@200-171-140-32.dsl.telesp.net.br] has joined #launchpad === cprov away, call me on mobile if you need === bradb returns [03:51] SteveA: BTW, the sooner the IBugTaskSubset login problem gets review, the sooner menus will land too, because with IBTS gone so too are some of the issues that it created with the menu system [03:52] Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial] No ubuntu mirrors on staging yet (patch-2141: stuart.bishop@canonical.com) [04:01] SteveA: hmm, this is interesting [04:01] SteveA: my new traversal stuff seems to work if you're already logged in, but it breaks if you have to go via +login [04:01] daf: that is interesting [04:02] ok [04:02] so I'm looking at http://localhost:8086/malone/bugs/1 [04:02] I have a relative link to watches/2/+edit [04:02] but I get redirected to watches/+edit/+login [04:03] when I submit the login form, I turn up at watches/+edit [04:04] which correctly returns a NotFound [04:04] daf: I emailed the list about that problem earlier. [04:04] (although the error message is a bit confusing, because it implies that it's the 'watches' part that's not found, and not that '+edit' is an invalid watch id) [04:04] bradb: aha, I missed that [04:05] It's almost surely to do with the .setTraversalStack bit [04:05] that's what I thought [04:05] But I'm not brainful enough to know how to fix it without putting on my scuba gear [04:05] I suspect the login code uses the traversal stack to construct the redirect URL [04:06] perhaps it's as simple as making it use the request URL instead [04:06] It might be, but I wonder why it wasn't doing that already === bradb will see what SteveA says in response to the email [04:07] yarr [04:07] the login code i think just ignores all traversal [04:08] perhaps the problem is in Zope, then === stub [~stub@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [04:12] daf, brad: don't try to debug this now. i'll deal with it. [04:12] ok [04:13] bradb: looks like the bugwatch traversal change was a success on the whole; I think I'll tackle the other Bug stuff [04:13] daf: which "other Bug stuff"? [04:13] other traversals from Bug [04:14] ok...what problem are you tackling, exactly? [04:14] traversers.py imports from the database [04:14] (note: I've already removed IBugTaskSubset on my branch, just so you know.) [04:14] cool [04:14] daf: ah, ok, that'd be dandy [04:14] good [04:14] just wanted to make sure I'm not treading on your toes :) [04:15] nope, green lights all the way [04:15] traversers.py is the last bastion of unseemly importing [04:15] SteveA: I have two reminders for you [04:17] New Malone bug 1540 filed on The Launchpad by James Blackwell: supermirror sftp server does not disconnect` [04:17] https://launchpad.ubuntu.com/malone/bugs/1540 [04:21] daf: what are the reminders? [04:22] SteveA: 1. my patch to Zope's error service [04:22] SteveA: 2. my email about the pyflakes harness [04:22] daf: 1. i'm not going to get around to looking at that until you are in brazil [04:22] 2. kiko's been looking at that. let's all look at it in person in brazil. [04:22] sounds good [04:28] Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial] Do not show the +emails link for teams; for teams we should show the +editemail link. (patch-2142: guilherme.salgado@canonical.com) [04:32] bradb: hello [04:32] SteveA: hi [04:32] bradb: i want to merge your code that demonstrates the login link problem [04:33] so i can look into it [04:33] SteveA: brad.bollenbach@canonical.com/launchpad--remove-IBugTaskSubset--0 [04:33] BjornT, ping [04:33] hi salgado [04:34] hi BjornT, I just reviewed the cprov's branch that's in your queue without realizing that; I did it because he mailed me asking for the review [04:34] can I move it to my queue or you already reviewed it? [04:35] SteveA: Quick stylistic question for you: [04:36] SteveA: If I have a class that implements(IFoo)... [04:36] and IFoo inherits from IBar... [04:36] and in my class, I'm defining a method I want to override from the IBar interface... [04:36] In the method's docstring, do I say "See IFoo", or "See IBar"? [04:38] salgado: sure you can review it if you want, i haven't finished doing so yet. i do think that there are some issues to be resolved first, though, that's why i haven't reviewed it yet. [04:42] bradb: say "See IBar." for things that you can read about in IBar. Say "See IFoo." for things you can read about in IFoo. [04:42] SteveA: ok, thanks [04:43] BjornT, you mean, some issues in that patch or issues other than that patch? [04:47] salgado: basically decide how to solve the problem the patch tries to solve. we can't assume that everything should be encoded/decoded using utf-8 [04:48] i replied to cprov's 'pyme & unicode' email about it [04:53] BjornT, I just saw your email. I'll discuss that with cprov and see what we can do about it. thanks for raising this [04:56] salgado: cool. i'll see if i can find some more information about it. i'm not quite sure if there's a default encoding, if none is specified [05:01] BjornT: I raised to bug with him. seems I can't add my GPG key cause my lastname is Bjlevik, and hence doesn't get parsed correctly in gpgme. [05:02] stub: around? [05:03] bjorn - you should remove the ancestry.gz file in that revision [05:04] Nafallo: yeah. the problem is how to fix that bug properly. [05:05] BjornT: indeed. [05:05] lifeless: in which revision? [05:06] bradb, BjornT: are there any infestations in the sample data? [05:07] daf: nope, don't worry about infestations for now [05:08] daf: when in doubt, you might want to just comment out, XXX, and file a bug on the relevant code, to make sure we remember to come back to it at some point. right now though, it's looking like infestations won't even be accessible from the UI for 1.0 (they aren't currently) [05:09] would it be sensible to just remove the traversal cases for infestations and add an XXX? [05:09] that seems prudent if there are no tests for them [05:09] sure [05:12] hmm, is /bugs/N/tasks/ linked from anywhere? [05:13] Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial] Landing initial version of linter script -- use it before committing\! (patch-2143: christian.reis@canonical.com) [05:13] does it even exist, daf? [05:13] daf: Shouldn't be. [05:13] it's in the traversals [05:13] hmm, that's interesting [05:13] http://localhost:8086/malone/bugs/1/tasks/ takes me to the Ubuntu task for that bug [05:14] sounds like it should die [05:14] elif name == 'tasks': [05:14] return getUtility(IBugTaskSet).get(bug.id) [05:14] weird [05:15] daf: Might as well delete it. The Malone forcefield will let you know if something broke. [05:17] :) [05:20] debonzi: ping [05:21] BjornT, pong [05:22] ZConfig.ConfigurationSyntaxError: /usr/share/keyrings is not an existing directory [05:22] debonzi: ^^ i get that when i try to run tests [05:24] BjornT, ohh [05:25] BjornT, why don't you have it.. I was thinking it was installed by default [05:25] BjornT, give one sec [05:27] debonzi, BjornT, I think it's installed by ubuntu-keyring [05:27] debonzi, if so, you need to update the list of dependencies in the wiki [05:28] salgado, I think it is.. I will check and do that [05:28] bradb: Malone is very nearly DB-import clean [05:28] bradb: the only remaining issue is the import of BugTaskReport into the traversal code [05:29] BjornT, could you try install ubuntu-keyring and check if it works please? [05:29] BjornT, AFAICS here it will solve the problem [05:29] daf: awesome [05:30] New Malone bug 1541 filed on Registry by Morgan Collett: RDF can't have multiple elements in a or [05:30] debonzi: ok, i'll try that [05:30] https://launchpad.ubuntu.com/malone/bugs/1541 [05:30] thanks BjornT === Virtuall [~virtuall@who.is.virtuall.info] has joined #launchpad [05:32] https://chinstrap.ubuntu.com/~dsilvers/paste/filecCFUin.html [05:32] I wonder if that is evil [05:32] I think it's ok [05:33] should make it a doddle to add the infestation stuff back in [05:35] maybe we can close #1118 now [05:35] maybe [05:38] Looks good with a dict, IMHO [05:40] hm, re: 1118...not sure. /me thinks. [05:41] yeah, i think so, once it's confirmed that all the tests pass, etc. === carlos [~carlos@243.Red-83-47-24.pooles.rima-tde.net] has joined #launchpad [05:44] Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial] Add back sorting to the distrorelease translations table (patch-2144: christian.reis@canonical.com) === stub [~stub@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [05:46] stub, hi, do you have a minute? [05:47] Is there a way to get sqlobject to throw away its cache? [05:47] I'm having problems where my publisher is regularly using 1.6G of ram [05:47] which is a bit sucky === cprov [~cprov@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [05:48] salgado: ping [05:49] cprov: Is there a way to empty the sqlobject cache without committing/aborting the txn? [05:49] cprov, pong [05:50] salgado: ^^ same question to you [05:50] Kinnison: not that I know, AFAIKS the cache isn't exposed through ztm interface [05:50] goddamn [05:51] I'm touching thousands and thousands of objects. Most only once [05:51] hmm [05:51] but the entire publishing process is one transaction [05:51] stub, is patch-2142 going into next production rollout? [05:51] I think we came across this when I was working on the language pack stuff [05:51] salgado: do we mind if I use "assert" to ensure arguments type in LP code ? isn't it UGLY ? [05:51] I think stub or Steve dug into the the cache stuff for me [05:51] try using sqlobjectinstance.expire() [05:52] there's another thing you can do also [05:52] but I can't remember what it is [05:52] cprov, you shouldn't use asserts to check argument types/values. you should raise exceptions in that case [05:52] Kinnison: I'm not sure, but I always thought it is a weak point of sqlos [05:53] cprov, have you seen Bjorn's email about pyme and unicode? [05:53] salgado: uhm ... show me an good example [05:53] salgado: Nope - I was thinking of rolling out patch-2125 today or tomorrow. Please email me and lifeless if you need that particular patch rolled out. [05:54] Kinnison: Carlos thought he fixed that using sync, but I havn't tried running that code again to confirm. [05:54] salgado: sure, I've already discussed it here today earlier ;) quite fuzzy yet [05:54] stub, I'm not usin sync always, I'm using the flush call === cprov still waiting salgado's example for "type awarness" code [05:55] stub, btw, I saw that sometimes a commit() is not saved unless you do a .sync() first (I think that's broken) [05:55] stub, I just need to make sure that patch-2142 will be in the same rollout as patch-2132. I guess I can assume this will happen, right? [05:55] carlos: flush? sync? [05:56] cprov, look in database/person.py there's some examples there. [05:56] salgado: good, thanks [05:56] Kinnison, if you do changes to slqobjects, if you don't dump those changes into the database [05:56] Kinnison, sqlobject eats a lot of memory [05:56] I think we reach 3GB on staging [05:57] carlos: yeesh [05:57] carlos: so what do I do? [05:57] cprov, I think we should hold this patch until we have enough discussion about this and are sure we're doing the right thing [05:58] Kinnison, from canonical.database.sqlbase import flush_database_updates [05:58] Kinnison, call that method [05:58] carlos: that'll keep memory down? [05:58] Kinnison, I think so, but I will not know that for sure until stub executes my script on staging [05:58] okay [05:58] ta [05:59] Kinnison, my theory is that after you flush the sqlobject content, the object can be destroyed by the garbage collector [05:59] but it's just a theory === Kinnison grins [05:59] carlos: it is likely. mail me about it. [05:59] and forgot to ask spiv [05:59] carlos: i have done work on the sqlobject GC stuff [05:59] salgado: I've already decided it, but every fixes suggested by you doesn't depend of it, let's keep the patch sane [05:59] carlos: so, if there is an outstanding bug ,i need to fix it. [06:00] bradb: i have now merged your branch. i'll look into it after lunch. [06:00] SteveA, ok, the only bug I see here is that a commit() does not implies a flush of all sqlobjects [06:00] SteveA: Thanks. [06:01] carlos: a commit should now (since a patch from spiv a few days ago) mean that all sqlobjects to do with that connection / transaction get flushed from caches. [06:01] SteveA, so I don't think it's related with the garbage collector unless my theory is wrong and my script eats all memory it can . In that case, the garbage collector will be buggy === SteveA --> lunch [06:01] DEBUG:Dominator:nscd/2.3.2.ds1-20ubuntu11/i386 has been judged as superseded by the powerpc build of nscd/2.3.2.ds1-20ubuntu13 === Kinnison growls unhappily [06:01] hmm [06:01] carlos: mail me. i will fix it. [06:01] SteveA, It was not that woy on Thursday [06:01] Kinnison: did you see what I said about .expire()? [06:01] if the patch got merged later, it's ok [06:01] daf: yeah, I'll try those in a bit [06:01] daf: I want to get it to dominate properly first [06:01] Kinnison: if you're just looking at stuff, it should be sufficient [06:02] Kinnison: (looking as opposed to modifying) [06:02] Kinnison: yes, making it work should come before making it fast :) === Kinnison looks at this and wonders how he could have been so damned stupid === Kinnison puts the donut hat on [06:06] salgado: i get failures in teammembership.txt. if i move that flush_database_updates() i get different errors [06:07] BjornT, you mean you're getting errros without touching it? [06:09] salgado: yes [06:09] that's weird [06:10] bbiab [06:16] Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial] re-adding conflict marker support to lint.sh, darn (patch-2145: christian.reis@canonical.com) [06:17] spiv: around? [06:18] bradb: aha, I've found a problem [06:19] bradb: bugs/N/people/+new [06:19] either we move this to bugs/N/+new-person [06:19] or I get SteveA to tell me how to get the traversals code to do the old URL [06:19] SteveA: I believe you said that this would be possible [06:20] daf: what's the problem? [06:20] well, previously, you had a +new page registered on BugSubscriptionSet [06:20] (presumably) [06:21] the replacement code I wrote doesn't know about +new [06:21] Oh, I see. Couldn't +add-subscriber be registered on IBug without changing the URL scheme? [06:22] "without changing the URL scheme"? [06:22] certainly +add-subscriber could be registered on IBug [06:23] i.e. Sticking with bugs/N/people/+new (not that I think this is an incredibly wonderful URL, but I mostly don't recommend changing URLs without approval from above) [06:23] mmm [06:23] well, package infestations are even stickier [06:24] you have: [06:24] bugs/N/packageinfestations/ [06:24] don't worry about them! [06:24] bugs/N/packageinfestations/+new [06:24] bugs/N/packageinfestations/N/+edit [06:24] Those are antique URLs, don't worry about them. [06:24] well, there are tests failing for them :) [06:24] therefore I am worried about them [06:24] how many tests? [06:26] just one, I think [06:26] pagetests/malone/30-add-edit-package-infestation.txt [06:27] there are similar problems with bug references and watches [06:27] bugs/N/references/+new, bugs/N/watches/+new [06:27] If it's only one, can you disable the test and file a bug noting that it should be re-enabled when we spec out infestations? [06:27] daf: you could try to lookup a view first. if you find one, return it [06:28] how do I look up a view? [06:28] queryView(object, viewname, request) [06:28] i think it's in zope.component [06:29] ok, I can give this a try [06:29] yep. and object should be the FooSet [06:30] argh, this is evil though. It's looking like this "smarter traversal" might force us to collapse the URLs. [06:30] so if I have, say, ['+new', 'watches'] in my traversal stack, I have to create a BugWatchSet with the context bug and return a vie wfor that [06:30] bradb: mmm, yeah :/ [06:30] bradb: Mark seems happy to pay that price, though [06:30] I wonder if SteveA would let us consume one than one path step, or even it even makes sense to do so. [06:30] e.g. foo/+new-person over foo/people/+new [06:31] daf: yes, the same way you have to create it if you have ['1', 'watches'] [06:31] I'm not too religious about it one way or the other, it's just that it the more that has to change, the more manhours involved. [06:32] BjornT: well, in that case, I can do getUtility(IBugWatchSet)[id] [06:33] since the bug is not relevant [06:33] but it is relevant for creating new watches [06:34] so, it's going to break unless you introduce some magic to the +new view class to work out which bug a watch is being added on [06:35] The thing that is slightly sucky about +add-foo off a bug is that it breaks the consistent if we want to have view pages for each of these things, it seems we have to stick with the current URL scheme. [06:35] mm, I like the current URL scheme === carlos [~carlos@243.Red-83-47-24.pooles.rima-tde.net] has joined #launchpad [06:36] daf: Do you like having several different pages across which to spread this information? [06:36] how do you mean? [06:37] daf: having to go to separate pages for subscribing, adding URL refs, adding CVE refs, marking as dup, etc. [06:38] (If this were all disclosable on the bug page, the URL scheme would be irrelevant and unnecessary altogether.) [06:38] ah [06:38] hmmm [06:38] I'm really not sure [06:40] the more pages (and thus the more clicks) you introduce are simply going to infuriate people [06:41] daf: well, you're not going to be able to remove the database imports without changing some view code. but it's probably best to ask SteveA what the plan is [06:43] Merge to rocketfuel@canonical.com/launchpad--devel--0: [r=jamesh] unbreak process-mail.py. make canonical_url work in scripts. some email interface fixes. (patch-2146: bjorn.tillenius@canonical.com) [06:44] yes, I want input from SteveA [06:44] but he doesn't appear to be around [06:44] Lunch here in Brazil [06:44] thought as much [06:44] lunchpadding === Keybuk [~scott@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [06:45] strange, my laptop decided to pick an AP with no signal, and wouldn't leave it for a better one === jordi [~jordi@115.Red-213-96-69.pooles.rima-tde.net] has joined #launchpad === SteveA [~steve@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [07:03] eek [07:03] canonical.launchpad.scripts.builddmaster is chock-full of DB imports === mpt [~mpt@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [07:03] I thought the end was in sight [07:06] oops, nearly threw out my "Get Out of Brazil Free Card" [07:06] daf: we can chat about that tonight if you want [07:06] Keybuk: oops [07:07] Kinnison: at a glance, it doesn't look too difficult to fix [07:07] Kinnison: just tedious :) [07:07] SteveA: around? [07:10] doesn't that translate as "salty lunch" ? [07:10] not good for your arteries [07:10] "salgado" means "savoury", I believe [07:11] stub: ? [07:12] daf: savoury or salty [07:12] ah, ok [07:12] daf: according to kiko and johan [07:15] Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial] Fix Bug 1541: RDF can't have multiple elements in a or (patch-2147: morgan.collett@canonical.com) [07:15] jamesh, around? [07:15] carlos: yep. [07:15] jamesh, about my karma branch [07:15] BjornT: question for you about widgets... [07:16] I have a BugTaskAssigneeWidget whose __init__ looks like this: [07:16] def __init__(self, context, request): [07:16] SimpleInputWidget.__init__(self, context, request) [07:16] # Set the attribute that allows for choosing an assignee other [07:16] # than the currently logged-in user. [07:16] self.assignee_chooser_widget = SinglePopupWidget( [07:16] context, context.vocabulary, request) [07:16] guys, please don't waste time working out how to get the traversal step things working. i'm working on it. [07:16] I need to give a list of fields to SQLObjectModifiedEvent [07:16] problem is, the assignee_chooser_widget is always empty when rendered (even though it properly *saves* a value I enter.) [07:16] jamesh, should I add any single field the sqlobject has or just the ones I care about at this moment? [07:16] SteveA: what exactly are you working on? [07:17] BjornT: How do I get at the value of bugtask.assignee, if the above widget is a custom browser:widget on the bug task edit form? [07:17] carlos: in the Malone code, they use the Snapshot class to take a copy of the old state of the object [07:18] jamesh, yeah, I'm using that too [07:18] jamesh, but as they use it from an edit form [07:18] they put there the list of fields showed to the user [07:18] in that form [07:19] daf: fixing problems that occur when you remove a step from the traversal subpath [07:19] in my case that's not so simple as I give the object to a function and that function modify the object [07:19] hmm, ok, I see your point [07:19] SteveA: ok -- I have a different problem [07:19] carlos: just create an empty list for the changed fields, and append to it as you set fields [07:19] carlos: and then use that to create the SQLObjectModifiedEvent [07:19] as I have the orginal object and the new one I can guess the changes [07:20] jamesh, I cannot do it that way because that implies to move the logic of the notification inside the function I call [07:20] I think that I would just compare both objects and that's all [07:20] hmm === lamont [~lamont@15.238.5.154] has joined #launchpad === mpt_ [~mpt@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [07:22] carlos: maybe a helper for constructing an SQLObjectModifiedEvent would be helpful here. [07:22] carlos/daf: Can you add a real-world example of "something %s something %d something" to RosettaOneDotZeroAnnouncement? [07:22] mpt_, :-? [07:23] ciao dudes [07:23] mpt_, I don't understand your request [07:23] jamesh, yeah, bradb talked about a way to generalize his solution [07:23] carlos: RosettaOneDotZeroAnnouncement currently says 'For example, the string "XXX 23 YYY 5 ZZZ" may be available for translation as "XXX %s YYY %d ZZZ".' that needs to become a real example. [07:23] bradb: i don't quite understand. you have a widget on a widget? [07:24] daf: what is your different problem? [07:24] mpt_, oh, ok [07:25] mpt: if a program does printf(_("Hello %s"), "World"); [07:25] SteveA: well, one instance of this problem is a URL such as /bugs/1/watches/+new [07:25] sounds like the same problem to me [07:25] thanks carlos [07:25] mpt: and the translation is "XXX %s %s", then you have a format string vulnerability, since printf will read an invalid value for the second "%s" [07:26] BjornT: right, it's like a "composite widget" as it were [07:26] jamesh: Yes, I know, but "XXX %s %s" still isn't a real example [07:26] BjornT: i.e. it looks like this on a form: [07:26] (*) foo someone else: [ ] [07:26] () foo me [07:27] mpt_: there was a real world example in dpkg, where it would reliably crash if using chinese a while back [07:27] i've hacked my way through getting the radio buttons set correctly, but the SPW thoroughly evades me [07:29] jamesh: that wasn't a real world example, it was a wacky world example [07:30] the maintainer wrote a utf-8 po file, his mail client treated it as iso-8859-1 and then Christian's tried to convert it to utf-8 when he saved it [07:31] ok, I'm going to break staging - if anyone cares, shout now [07:31] bradb: ah, ok. so, in setRenderedValue(self, value) you should call assignee_chooser_widget.setRenderedValue(value) [07:31] (tbh, I'll probably only break http://staging, rather than https, but then this is mod rewrite evil, so..) [07:31] for how long? [07:32] Keybuk: hopefully not long, but as long as it takes to beat the rewrite magic into submission [07:32] if it's a bad time, I can leave it [07:32] ah, so the db is ok? that's all I care about [07:32] oh, yah, it's only the apache instance, I'm messing with [07:34] BjornT: rock! that worked, thanks a million. [07:35] bradb: cool === ChanServ [ChanServ@services.] has joined #launchpad [07:37] mpt: around for a quick q about displaying the assignee widget? [07:38] mpt: (For when you are around) There are two "modes" for this widget, effectively: 1. assignee == None, 2. assignee != None [07:38] so, for 1. should the widget be shown like: [07:38] ( ) Assign to me [07:38] ( ) Assign to: [ ] [07:39] and then 2. would be [07:39] (*) Assigned to me [07:39] ( ) Reassign to: [ ] [07:39] hm [07:39] jamesh/someone: got an example calendar URL for me, pls? [07:40] New Malone bug 1542 filed on Registry by Christian "kiko" Reis: Release root and release filename pattern fields are not available when creating a product series [07:40] https://launchpad.ubuntu.com/malone/bugs/1542 [07:41] elmo: https://launchpad.ubuntu.com/products/webcalendar/+calendar/+icalendar [07:41] mpt: or maybe the first bit of 2. would read either "Assigned to me" or "Assigned to foo.bar@canonical.com" if it's assigned to someone other than, what do you think? [07:41] s/other than/other than me/ [07:42] that's the icalendar file for a product with a registered calendar [07:42] jamesh: will that work on staging? [07:42] ohh, sexy, it does [07:42] elmo: probably [07:42] yes [07:42] jamesh: ok, so that url redirection magic is setup on staging [07:42] can you check it out and see if your happy? [07:42] you're too [07:42] btw, inventing a random URL does strange things [07:42] e.g. http://staging.ubuntu.com/projects/foo/+calendar/+icalendar [07:43] doesn't do what I'd expect [07:43] hmm, that should be a 404 [07:43] elmo: seems to redirect to https [07:44] jamesh: which? foo or webcalendar? [07:44] webcalendar [07:44] jamesh: on staging? [07:44] yeah [07:45] oh, so it is. I am teh suck. [07:45] lynx -mime_header -source http://staging.ubuntu.com/products/webcalendar/+calendar/+icalendar [07:45] (lynx can't do ssl, so shows the redirect error) === kiko [~kiko@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [07:46] ahoiee [07:47] OH [07:47] that's because it's _products_ [07:47] no one said anything about redirecting _products_ :-P [07:48] doh [07:48] I missed that one :( [07:49] okay, added, now WFM [07:49] not quite [07:49] ? [07:49] it is giving me the Launchpad home page [07:50] rather than a text/calendar (iCalendar) file [07:50] SteveA: I appear to have bought the complete set of "Aaron Carter" albums with me ... *bribe* [07:50] ah, right, meh [07:50] I am _still_ teh suck [07:50] who is aaron carter, and what nefarious favour do you want? [07:52] elmo: looks nice now [07:52] thanks [07:52] ok, will transfer to live [07:53] New Malone bug 1543 filed on Registry by Christian "kiko" Reis: Filing duplicate source details raises an integrityerror instead of a nice error [07:53] https://launchpad.ubuntu.com/malone/bugs/1543 [07:53] bradb: I know what the problem is. now I just need to work out how to fix it. [07:53] SteveA: ok, cool [07:56] jamesh: do you want me to bounce ssl requests for those urls back to non-ssl or is there no point? [07:58] elmo: no point. If the client can handle SSL, then let them use it [07:59] ok [07:59] jamesh: production done too [07:59] thanks [08:02] New Malone bug 1544 filed on Registry by Christian "kiko" Reis: Choosing a source package for a +source import of a product series should use a selection widget [08:02] https://launchpad.ubuntu.com/malone/bugs/1544 [08:08] bradb: the bad thing is, it looks like a zope3 bug [08:09] i worried it might be that deep [08:10] BjornT: In my ZPT for a widget, is there an easy way to get the value that would be displayed when the widget is rendered, or do I have to write some little wrapper around self._data? [08:10] SteveA: younger brother of some american boyband member -- very camp and bouncy music [08:10] therefore you'd like it [08:15] hurrah [08:15] bradb: no i don't think so. you probably have to add a method/property for that [08:15] heh === bradb searches for the PHP plugin for Zope 3 [08:20] BjornT, is there a way of finding out what type a certain widget is, from the template? [08:21] kiko: no [08:22] kiko, mpt, BjornT: what do you guys think of this assignee widget? 66.130.64.82:8086/distros/debian/+bugs/3/+edit [08:24] to see all its modes try seeing what it looks like: 1. with you as the assignee, 2. with someone else as the assignee, 3. unassigned [08:24] BjornT, could we add it? [08:25] BjornT, mpt and I want to do smarter layout of form fields [08:25] bradb, Log in or register [08:25] kiko: right, it's just the test data dude [08:25] test@canonical/test, etc. [08:25] or foo.bar@canonical.com, whatever [08:26] bradb, the radio buttons are lacking label [08:26] shouldn't test@canonical.com be the name of the person, and a link to the person's page? [08:27] I see why you didn't do that though [08:27] kiko: the name of the person? hmm...not sure. the name of the person is not what you see when you make the assignment. [08:27] linkifying is probably a good idea though [08:27] yeah [08:28] and then the worst past is that a link on the email address... [08:28] but the radio button is actually useless, come to think of it [08:28] mpt to the rescue [08:29] bradb: well, it's not entirely clear how to unassign yourself [08:29] yeah, i thought of that too [08:29] maybe mpt has some ideas...? [08:29] kiko: what different types of widgets are you interested in? [08:30] BjornT, check, radio, text, textarea [08:30] BjornT, very good point, unassigning the bug is also important [08:32] is mpt looking at it? === mpt returns!! [08:33] mpt: 66.130.64.82:8086/distros/debian/+bugs/3/+edit -- can you login and check out the assignee widget, if you have a moment? [08:34] kiko: you can't do it with css? [08:34] BjornT, no. [08:34] bradb: That's what I'm doing [08:34] righty-o [08:34] it's very slow === mpt kicks this useless Brazilian Internet === mpt fends off an attack from Mr. Reis [08:35] Ok, the page I'm looking at has a set of radiobuttons of which neither are selected [08:35] that's not right [08:36] mpt: radio buttons are what you suggested to me. what's a better widget for that field? [08:37] ideally, we'd use a combo box === stub [~stub@200-171-140-32.dsl.telesp.net.br] has joined #launchpad [08:37] or, i guess you want the assign to: selected by default? [08:37] but HTML doesn't have combo boxes [08:37] hmmm [08:37] I get images of a man printing out the packets, writing them carefully on a postcard and sending them across the sea to be delivered [08:37] Assigned to: [(nobody) ] [08:38] mpt: why the need for (nobody)? [08:38] to make the nobodiment obvious [08:38] That seems to draw my attention to that field, and then say "oh, that was just nobody, not an actual person" [08:38] but that's not my final answer, I'm just throwing ideas out [08:38] true [08:39] kiko: hmm, ok. i can't think of an easy of adding something like that. [08:39] bradb: ok, how about a contains "Nobody", "Me", and "Other:" [08:40] and the current assignee [08:40] "Nobody", "Me", "Brad Bollenbach", "Other:" [08:41] hm [08:41] and then the text field is for if "Other:" is selected [08:42] That seems a bit awkward to me, but I dunno. [08:42] kiko, BjornT: opinions on that? [08:42] well, we could make them radio buttons [08:42] Assigned to: [08:42] ( ) Nobody [08:43] ( ) Me [08:43] (*) Brad Bollenbach [08:43] ( ) [ ] [08:43] but that would take up lots of space [08:43] did someone break the staging librarian? [08:43] mpt: what about: [08:43] either: [08:43] ( ) Assign to me [08:44] (*) Assign to: [ ] [08:44] or (when there's an assignee) [08:44] (*) Assigned to foo.bar@canonical.com [08:44] ( ) Reassign to: [ ] [08:44] ( ) Remove assignee [08:44] (or whatever wording for the last option) [08:44] In the last case you're missing reassigning to yourself [08:45] mpt: does that matter though? [08:45] almost as much as it does for when there isn't an assignee [08:45] it wouldn't be obvious why the option existed for that case but not the other [08:46] (*) Assigned to nobody [08:46] ( ) Assign to me [08:46] ( ) Assign to: [current assignee goes here] [08:46] that's from four down to three === bradb twiddles with the form a bit [08:46] 2 mins [08:52] mpt: what do you think now? [08:52] you're still missing the initial selection [08:53] it WFM, apparently === bradb tries clearing cache [08:53] ah, now it works [08:53] ok [08:54] looks good [08:54] One more suggestion: [08:54] change "Assignee" to "Assigned to:" [08:55] Then you can simplify the labels by removing "Assign(ed) to" from all of them === bradb tries that [08:59] mpt: like that? === bradb bends his head slightly sideways in wonder [09:00] yes [09:00] except that you forgot to make "nobody" and "me"