[12:11] <kiko> thanks bradb 
[12:41] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: [r=jamesh,stub]   distroarchrelease added to PublishedPackage class. (patch-2137: daniel.debonzi@canonical.com)
[01:40] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: [r=BjornT]  More gina improvements. (patch-2138: stuart.bishop@canonical.com, daniel.debonzi@canonical.com)
[04:39] <dilys> 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)
[07:34] <eyequeue> 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] <eyequeue> (trying to sign the CoC, after verifying my gpg sig with launchpad profile)
[07:36] <eyequeue> where do i find this "global key ring"?
[07:38] <eyequeue> /msg MemoServ send eyequeue $(suggestions), if someone becomes un-idle here and has any ideas.  thanks
[07:41] <eyequeue> 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
[10:10] <dilys> New Malone bug 1537 filed on The Launchpad by Carlos Perello Marin: Email notification testing does not work with LaunchpadZopelessTestSetup
[10:10] <dilys> https://launchpad.ubuntu.com/malone/bugs/1537
[12:01] <BjornT> pqm is hung again. anyone around that can fix it?
[12:31] <Kinnison> Goodness me, but baz is being slow today
[12:46] <daf> BjornT: have we got any attachments in the sample data?
[12:47] <BjornT> daf: no
[12:48] <daf> how do I add one?
[12:48] <daf> temporarily, I mean, not to the sample data
[12:53] <BjornT> why do you need one? you can't create attachments atm, i haven't merged my branch yet
[12:54] <daf> ah, right
[12:54] <daf> I wanted to test a change to the traversal code
[01:04] <Kinnison> dogfood is back, sorry for the delay
[01:10] <carlos> BjornT, bradb-afk, if I close a bug that have other bugs marked as duplicated, shouldn't the duplicate be closed automatically?
[01:18] <BjornT> carlos: maybe, i'm not sure. better to let brad answer that, he did the dup implementation.
[01:20] <carlos> BjornT, I'm asking because it does not work that way
[01:20] <carlos> or at least I found a duplicated that is not closed
[01:23] <daf> it didn't work that way for me, either
[01:27] <BjornT> yeah, the dup handling is really basic at the moment. we'll need to spec it out and improve it sometime
[01:31] <Kinnison> daf: I'm not going to make it to the kingston :-(
[01:31] <Kinnison> daf: I'll see you tonight though, if that's okay
[01:32] <daf> ok
[01:32] <daf> hmm, I wonder if anybody else is still going
[01:32] <daf> nattie was threatening to come
[01:33] <Kinnison> and it's a bit late now, I'd not make it there before the meeting was due
[01:33] <daf> aye
[01:33] <Kinnison> sorry
[01:34] <daf> pubbage once a day is enough for me :)
[01:37] <carlos> daf, shouldn't the po export page use the same UI that we have now with the preferences page?
[01:37] <daf> it doesn't?
[01:37] <daf> you're talking about the language selector?
[01:37] <carlos> yes
[01:38] <carlos> no it does not look the same
[01:38] <carlos> seems like the po export page is missing the css magic
[01:38] <daf> hmm, I guess RosettaApplication should be moved to lib/canonical/launchpad/systemhomes.py
[01:38] <daf> you mean the bit to limit the size?
[01:39] <carlos> https://launchpad.ubuntu.com/distros/ubuntu/hoary/+sources/gnome-panel/+pots/gnome-panel-2.0/+export
[01:39] <carlos> vs. https://launchpad.ubuntu.com/rosetta/prefs/
[01:40] <daf> oh
[01:40] <daf> interesting
[01:40] <daf> ask mpt
[01:40] <carlos> mpt, ?
[01:44] <mdke> spiv, around by any chance?
[01:44] <spiv> mdke: Yeah.
[01:45] <mdke> 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] <spiv> No, I don't think so.
[01:46] <mdke> 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)
[01:46] <spiv> Hmm, I wouldn't have expected my changes to affect that... are you sure that the wiki config has that turned off?
[01:47] <mdke> spiv, apparently that is configured in user.py, I don't know whether it has accidentally been overridden elsewhere
[01:47] <mdke> grep for last_page_visited
[01:47] <spiv> That string doesn't occur in my user.py
[01:47] <mdke> gah
[01:48] <mdke> sorry
[01:48] <spiv> Do you mean "remember_last_visit"?
[01:48] <mdke> spiv, "remember_last_visit"
[01:48] <mdke> i suck
[01:56] <spiv> mdke: Hmm, I don't see anything in my changes to affect that at all.
[01:57] <SteveA> hello spiv 
[01:57] <spiv> Hi Steve.
[01:58] <spiv> How's Brazil?
[01:58] <SteveA> good
[01:58] <jordi> lucky.
[01:59] <bradb> 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.
[01:59] <carlos> bradb, ok
[02:00] <carlos> so
[02:00] <carlos> do we have a meeting?
[02:01] <Kinnison> hmm time for meeting
[02:01] <SteveA> Yeah, let's start the meeting
[02:01] <SteveA> MEETING STARTS!
[02:01] <SteveA> who is present?
[02:01] <mpt> me
[02:01] <bradb> me
[02:01] <spiv> me
[02:01] <kiko> NOT ME
[02:01] <BjornT> me
[02:01] <salgado> me
[02:01] <jblack> me
[02:02] <SteveA> lifeless is here
[02:02] <daf> me
[02:02] <jamesh> me
[02:02] <SteveA>  /msg me special items
[02:03] <SteveA> kiko: what do you mean "NOT ME" ?
[02:03] <kiko> i'm cute
[02:03] <SteveA> that means you can roomie with keybuk
[02:03] <SteveA> he specified "cute"
[02:03] <SteveA> == Agenda ==
[02:03] <SteveA>  - roll call
[02:03] <SteveA>  - agenda
[02:03] <SteveA>  - activity reports
[02:03] <SteveA>  - three sentences
[02:03] <kiko> which arrives at 10am, ftr
[02:03] <kiko> s/which/who
[02:03] <SteveA> activity reports: who's the dude and who's the suck, and who's excused because they're in brazil ?
[02:04] <daf> dude
[02:04] <Kinnison> :-(
[02:04] <kiko> I'm no good
[02:04] <SteveA> kiko: you're in brazil ;-)
[02:04] <jamesh> have a few I missed b efore going to brazil (need to catch up)
[02:04] <mpt> I'm in Brazil but still the suck
[02:04] <kiko> SteveA, I'm usually in brazil
[02:05] <kiko> anyway
[02:05] <kiko> move on
[02:05] <mpt> Ah, so that's why kiko hardly ever sends activity reports
[02:05] <salgado> s/my/mine
[02:05] <SteveA> ddaa is rebooting
[02:05] <SteveA> okay, any pressing items before we do the three sentences?
[02:05] <stub> I'm up to date and excused
[02:06] <spiv> I'm behind on activity  reports.
[02:06] <SteveA> 6
[02:06] <SteveA> 5
[02:06] <SteveA> 4
[02:06] <SteveA> 3
[02:06] <SteveA> 2
[02:06] <SteveA> 1
[02:06] <SteveA> okay, three sentences please
[02:06] <kiko> DONE: sprint prep, sprint, hack some malone code
[02:06] <kiko> BLOCKED: no
[02:06] <kiko> TODO: more sprint
[02:06] <daf> DONE: Debconf, bug #5, language views
[02:06] <daf> TODO: language views, BrazilTopics
[02:06] <daf> BLOCKED: nowt
[02:07] <lifeless> DONE: fly here, sprinting, some baz code
[02:07] <jblack> DONE: sprint, travel
[02:07] <carlos> DONE: LaunchpadPoImport cleanups, datamigration script for bug 1036, bug 1444, karma integration into Rosetta, Language packs
[02:07] <carlos> TODO: more language packs, fix karma after review, GNOME imports, reduce open bugs
[02:07] <carlos> BLOCKED: Nothing
[02:07] <jblack> DO: sprint, travel
[02:07] <debonzi> DONE: Gina reviews, review applied approved; Some more work on PublishedPackaged.
[02:07] <debonzi> TODO: Apply review; Brazil sprint
[02:07] <debonzi> BLOCKED: None
[02:07] <lifeless> TODO: baz-lp 1.0 specs
[02:07] <lifeless> BLOCKED: nothinh
[02:07] <SteveA> DONE: specs
[02:07] <SteveA> TODO: specs
[02:07] <SteveA> BLOCKED: no
[02:07] <jblack> BLOCKED: In the colon, but medicine can fix that.
[02:07] <Kinnison> DONE: Dogfood setup, publishing work on dogfood, buildd prep
[02:07] <Kinnison> TODO: Dogfood builders running, gina in production
[02:07] <Kinnison> BLOCKED: Sysadmin time (still waiting for elmo to respond to an email)
[02:07] <mpt> DONE: bugfixes, Bazaar-related specs
[02:07] <mpt> TODO: specs, specs, bugfixes
[02:07] <mpt> BLOCKED: Haven't investigated wi-fi at the hotel yet
[02:07] <SteveA> Kinnison: i'm going to phone elmo again today
[02:07] <salgado> DONE: code review, some fixes in sqlobject/launchpad, fixed person vocabs to allow search for email addresses too
[02:08] <BjornT> DONE: email interface fixes. some bug fixes. reviews. some more BBA implementation. notifications threading.
[02:08] <BjornT> TODO: nag kiko to finally review BBA. land BBA. notifications threading. go to brazil.
[02:08] <BjornT> BLOCKED: the usual, spec review from kiko
[02:08] <SteveA> Kinnison: please make it clear the urgency of your stuff on the LaunchpadSysadminRequests page
[02:08] <stub> DONE: Black beans & Pork on Rice
[02:08] <stub> TODO: Various salgados
[02:08] <stub> BLOCKED: Very regular, thankyou
[02:08] <Kinnison> SteveA: Will do
[02:08] <spiv> DONE: Reviews, SQLObject/distinct issues, diagnosed why carlos can't use zopeless in poimport.txt yet.
[02:08] <spiv> TODO: Sprint next week!
[02:08] <spiv> BLOCKED: No.
[02:08] <jamesh> DONE: code reviews, some calendar work, sprintathon
[02:08] <jamesh> TODO: code reviews, sprintathon
[02:08] <jamesh> BLOCKED: no
[02:08] <Kinnison> SteveA: that's on the internal wiki now, isn't it?
[02:08] <SteveA> yes
[02:08] <bradb> DONE: Landed some usability low hanging fruit fixes. Implemented one-bugmail-per-recipient. Stumbled through implementing menus. Removed IBugTaskSubset.
[02:08] <bradb> 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] <bradb> BLOCKED: No.
[02:09] <kiko> daf, congratulations on the menus landing, it looks spectacular
[02:09] <SteveA> bradb: you actually removed IBugTaskSubset?
[02:09] <salgado> 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
[02:09] <salgado> BLOCKED: no
[02:09] <stub> DONE: LinkChecker 3.0 fixes
[02:09] <stub> TODO: Rollout monitoring
[02:09] <stub> BLOCKED: Elmo
[02:09] <bradb> SteveA: yes, one failing test left though, related to login
[02:09] <cprov> DONE: bug fixing GPG/COC and buildd DF setup
[02:09] <cprov> TODO: buildd DF setup
[02:09] <cprov> BLOCKED: elmo on DC issues
[02:09] <SteveA> bradb: you're kinda blocked on me doing page titles stuff ;-)
[02:09] <SteveA> bradb: awesome
[02:09] <SteveA> bradb: i'd like to review the traversal part
[02:09] <morgs> DONE: Registry bugfixing esp RDF problems Edd Dumbill highlighted
[02:09] <morgs> TODO: DoapSchemaNG
[02:09] <morgs> BLOCKED: None
[02:09] <ddaa> DONE: pybazarchivelocation
[02:09] <ddaa> TODO: specs?
[02:09] <ddaa> BLOCKED: no
[02:09] <daf> kiko: thanks!
[02:10] <SteveA> stub: make sure the elmo stuff you need urgently is clearly marked on that wiki page
[02:10] <SteveA> jblack: that goes for you too
[02:10] <daf> DONE: (land menus)
[02:10] <jblack> Yeah. 
[02:10] <bradb> 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] <jblack> Which wiki? canonical? 
[02:10] <SteveA> bradb: if you can send me an email pointing to branches, etc. then i can fit it in between spec sessions
[02:10] <SteveA> jblack: canonical
[02:10] <daf> stub: hmm, is staging down?
[02:10] <SteveA> daf: cool
[02:11] <bradb> SteveA: ok
[02:11] <SteveA> i'll note that i also have about 4 menus bugs to address
[02:11] <SteveA> Okay, anyone else blocked that we haven't dealt with yet?
[02:11] <stub> Staging shouldn't be down, but is. I'll look into it.
[02:11] <kiko> me for BjornT, but I'm not making any promises
[02:11] <SteveA> ddaa: your three sentences?
[02:12] <kiko> SteveA, he sent them. 
[02:12] <jblack> The elmo queue page doesn't seem to be on the top wiki page. Anyone know the wikiname offhand? 
[02:12] <ddaa> SteveA: i've sent them
[02:12] <SteveA> kiko: okay, cool
[02:12] <SteveA> kiko: where's my meeting bot?
[02:12] <stub> LaunchpadSysadminRequests
[02:12] <SteveA> thanks ddaa
[02:12] <kiko> asking me?!
[02:12] <mpt> jblack: https://wiki.canonical.com/LaunchpadSysadminRequests
[02:12] <jblack> Thanks much
[02:12] <SteveA> kiko: yeah, you're everyone's bitch ;-)
[02:13] <kiko> yeah, I've had people ask me for diet coke at 9am :-P
[02:13] <jblack> You've got some? 
[02:13] <lifeless> essential life support
[02:13] <SteveA> WHERE IS MY GUARANA!
[02:13] <lifeless> in the fridge
[02:13] <SteveA> kiko always gets some
[02:13] <stub> kiko: White with two sugars
[02:13] <SteveA> okay
[02:13] <SteveA> MEETING ENDS
[02:13] <kiko> k
[02:13] <SteveA> thanks folks
[02:13] <kiko> thx
[02:13] <SteveA> same time next week
[02:13] <kiko> bye!
[02:13] <spiv> Short and sweet :)
[02:13] <Kinnison> SteveA: cool
[02:13] <carlos> this one was fast ;-)
[02:13] <Kinnison> kiko: Plenty of coffee ready for me next week?
[02:14] <Kinnison> kiko: Oh and I started to like guarana too
[02:14] <bradb> #launchpad: ping
[02:14] <SteveA> Kinnison: not tea!
[02:14] <SteveA> (that was supposed to be an interrobang)
[02:14] <Kinnison> SteveA: Petrol coffee :-)
[02:14] <bradb> oops, /me got lost in his scroll buffer
[02:14] <Kinnison> bradb: /ctcp #launchpad ping
[02:15] <bradb> Kinnison: no, i meant #launchpad, i thought it went dead, but i was lost in my scroll buffer
[02:15] <Kinnison> heh
[02:16] <SteveA> Kinnison: is your stuff on the sysadmin requests page?
[02:16] <Kinnison> The stuff I wanted to talk to elmo about is now up, yes
[02:16] <SteveA> okay, i'm going to do the call now
[02:18] <daf> stub: is staging down?
[02:18] <jordi> hey
[02:18] <jordi> DONE: little
[02:19] <jordi> TODO: JOIN!
[02:19] <jordi> :P
[02:19] <daf> BLOCKED: the trunk
[02:19] <daf> ?
[02:20] <jordi> the trunk is not blocked *AT ALL*
[02:20] <jordi> kiko: dude, POP THE TRUNK
[02:21] <ddaa> DONE: breakfast TODO: wake up BLOCKED: nose
[02:22] <jordi> ddaa: lol
[02:22] <kiko> hoho
[02:23] <ddaa> emergency: sabdf is asking me a question!!!
[02:26] <BjornT> lifeless: pqm is stuck
[02:28] <carlos> stub, could you enable poimport script on production?
[02:28] <carlos> stub, now that you merged the fixes, it should be safe to be executed.
[02:28] <carlos> stub, pretty please.... :-P
[02:29] <BjornT> cprov: while reviewing your branch i came to think about some issues. i've replied to your mail about pyme and unicode
[02:30] <cprov> BjornT: ok, reading 
[02:31] <bradb> SteveA: Just emailed you with a description of the problem: "Login Issue with Twiddling the Traversal Stack"
[02:31] <bradb> And on that note, I must finish waking up.
[02:32] <SteveA> bradb: cool
[02:32] <SteveA> ta
[02:33] <cprov> 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] <cprov> 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] <cprov> BjornT: so, can we think together in a solution ?
[02:35] <daf> SteveA: RosettaApplication has a __parent__ = rootObject, but none of the other *Application classes do
[02:36] <daf> SteveA: is it necessary?
[02:36] <SteveA> daf: in a meeting.  sorry.
[02:36] <SteveA> daf: almost certainly not, though.
[02:36] <daf> ok
[02:36] <daf> I'll leave it out if the tests pass without it
[02:36] <BjornT> 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] <cprov> BjornT: I see you point ...
[02:41] <BjornT> 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] <cprov> 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] <cprov> BjornT: also if we have translated email-templates it would be an issue.
[02:46] <cprov> 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] <BjornT> 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] <SteveA> daf: mark is talking about the "contributors" portlet on a translation page
[02:47] <SteveA> 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] <BjornT> cprov: my point is that the caller should be aware of encoding problems, otherwise we'll might run into subtle issues later
[02:49] <daf> SteveA: perhaps we should put this in a bug, or a spec
[02:50] <SteveA> daf: please file a bug on it
[02:51] <cprov> 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] <BjornT> 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] <cprov> 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] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  Make the nohup output precious (patch-2140: daniel.silverstone@canonical.com)
[02:56] <dilys> New Malone bug 1539 filed on Rosetta by Dafydd Harries: translation contributors portlet should be limited to 10 items
[02:56] <dilys> https://launchpad.ubuntu.com/malone/bugs/1539
[02:56] <daf> SteveA: ^^^
[02:58] <BjornT> 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?
[03:05] <daf> bradb: any objections to me splitting up BugExtRefSet to BugExtRef{Set,Subset}?
[03:06] <SteveA> daf: the Subset should go away altogether
[03:06] <lifeless> stub - the integral trees
[03:06] <SteveA> Kinnison: my call with elmo is delayed
[03:06] <SteveA> Kinnison: why don't you try calling him now?
[03:06] <SteveA> Kinnison: and let me know when you've finished so i can call
[03:06] <Kinnison> Okay, remind me of his number?
[03:06] <SteveA> Offices page
[03:07] <SteveA> on canonical wiki
[03:08] <daf> SteveA: hmm -- I'll give that a try
[03:08] <SteveA> daf: so, you know about the fancy url traversal stuff to get rid of subsets?
[03:12] <Kinnison> SteveA: I've spoken to James now, he'll be about 10-15 mins sorting the stuff out for me
[03:12] <Kinnison> SteveA: I guess you can either ring him now, or wait and ring him after
[03:13] <daf> SteveA: there are some examples in traversers.py already, yes?
[03:13] <SteveA> Kinnison: i'll call him in 20 mins or so
[03:14] <elmo> Kinnison: done
[03:15] <Kinnison> elmo: thanks dude, I'll check it and confirm
[03:15] <Kinnison> elmo: looks fine, thanks
[03:21] <stub> staging is back up btw - config file changes that landed yesterday caused it to not restart.
[03:51] <bradb> 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] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  No ubuntu mirrors on staging yet (patch-2141: stuart.bishop@canonical.com)
[04:01] <daf> SteveA: hmm, this is interesting
[04:01] <daf> 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] <SteveA> daf: that is interesting
[04:02] <daf> ok
[04:02] <daf> so I'm looking at http://localhost:8086/malone/bugs/1
[04:02] <daf> I have a relative link to watches/2/+edit
[04:02] <daf> but I get redirected to watches/+edit/+login
[04:03] <daf> when I submit the login form, I turn up at watches/+edit
[04:04] <daf> which correctly returns a NotFound
[04:04] <bradb> daf: I emailed the list about that problem earlier.
[04:04] <daf> (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] <daf> bradb: aha, I missed that
[04:05] <bradb> It's almost surely to do with the .setTraversalStack bit
[04:05] <daf> that's what I thought
[04:05] <bradb> But I'm not brainful enough to know how to fix it without putting on my scuba gear
[04:05] <daf> I suspect the login code uses the traversal stack to construct the redirect URL
[04:06] <daf> perhaps it's as simple as making it use the request URL instead
[04:06] <bradb> It might be, but I wonder why it wasn't doing that already
[04:07] <daf> yarr
[04:07] <SteveA> the login code i think just ignores all traversal
[04:08] <daf> perhaps the problem is in Zope, then
[04:12] <SteveA> daf, brad: don't try to debug this now.  i'll deal with it.
[04:12] <daf> ok
[04:13] <daf> bradb: looks like the bugwatch traversal change was a success on the whole; I think I'll tackle the other Bug stuff
[04:13] <bradb> daf: which "other Bug stuff"?
[04:13] <daf> other traversals from Bug
[04:14] <bradb> ok...what problem are you tackling, exactly?
[04:14] <daf> traversers.py imports from the database
[04:14] <bradb> (note: I've already removed IBugTaskSubset on my branch, just so you know.)
[04:14] <daf> cool
[04:14] <bradb> daf: ah, ok, that'd be dandy
[04:14] <daf> good
[04:14] <daf> just wanted to make sure I'm not treading on your toes :)
[04:15] <bradb> nope, green lights all the way
[04:15] <daf> traversers.py is the last bastion of unseemly importing
[04:15] <daf> SteveA: I have two reminders for you
[04:17] <dilys> New Malone bug 1540 filed on The Launchpad by James Blackwell: supermirror sftp server does not disconnect`
[04:17] <dilys> https://launchpad.ubuntu.com/malone/bugs/1540
[04:21] <SteveA> daf: what are the reminders?
[04:22] <daf> SteveA: 1. my patch to Zope's error service
[04:22] <daf> SteveA: 2. my email about the pyflakes harness
[04:22] <SteveA> daf: 1. i'm not going to get around to looking at that until you are in brazil
[04:22] <SteveA> 2. kiko's been looking at that.  let's all look at it in person in brazil.
[04:22] <daf> sounds good
[04:28] <dilys> 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] <SteveA> bradb: hello
[04:32] <bradb> SteveA: hi
[04:32] <SteveA> bradb: i want to merge your code that demonstrates the login link problem
[04:33] <SteveA> so i can look into it
[04:33] <bradb> SteveA: brad.bollenbach@canonical.com/launchpad--remove-IBugTaskSubset--0
[04:33] <salgado> BjornT, ping
[04:33] <BjornT> hi salgado 
[04:34] <salgado> 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] <salgado> can I move it to my queue or you already reviewed it?
[04:35] <bradb> SteveA: Quick stylistic question for you:
[04:36] <bradb> SteveA: If I have a class that implements(IFoo)...
[04:36] <bradb> and IFoo inherits from IBar...
[04:36] <bradb> and in my class, I'm defining a method I want to override from the IBar interface...
[04:36] <bradb> In the method's docstring, do I say "See IFoo", or "See IBar"?
[04:38] <BjornT> 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] <SteveA> 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] <bradb> SteveA: ok, thanks
[04:43] <salgado> BjornT, you mean, some issues in that patch or issues other than that patch?
[04:47] <BjornT> 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] <BjornT> i replied to cprov's 'pyme & unicode' email about it
[04:53] <salgado> 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] <BjornT> 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] <Nafallo> 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] <elmo> stub: around?
[05:03] <lifeless> bjorn - you should remove the ancestry.gz file in that revision
[05:04] <BjornT> Nafallo: yeah. the problem is how to fix that bug properly.
[05:05] <Nafallo> BjornT: indeed.
[05:05] <BjornT> lifeless: in which revision?
[05:06] <daf> bradb, BjornT: are there any infestations in the sample data?
[05:07] <bradb> daf: nope, don't worry about infestations for now
[05:08] <bradb> 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] <daf> would it be sensible to just remove the traversal cases for infestations and add an XXX?
[05:09] <daf> that seems prudent if there are no tests for them
[05:09] <bradb> sure
[05:12] <daf> hmm, is /bugs/N/tasks/ linked from anywhere?
[05:13] <dilys> 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] <kiko> does it even exist, daf?
[05:13] <bradb> daf: Shouldn't be.
[05:13] <daf> it's in the traversals
[05:13] <daf> hmm, that's interesting
[05:13] <daf> http://localhost:8086/malone/bugs/1/tasks/ takes me to the Ubuntu task for that bug
[05:14] <daf> sounds like it should die
[05:14] <daf>     elif name == 'tasks':
[05:14] <daf>         return getUtility(IBugTaskSet).get(bug.id)
[05:14] <kiko> weird
[05:15] <bradb> daf: Might as well delete it. The Malone forcefield will let you know if something broke.
[05:17] <daf> :)
[05:20] <BjornT> debonzi: ping
[05:21] <debonzi> BjornT, pong
[05:22] <BjornT> ZConfig.ConfigurationSyntaxError: /usr/share/keyrings is not an existing directory
[05:22] <BjornT> debonzi: ^^ i get that when i try to run tests
[05:24] <debonzi> BjornT, ohh
[05:25] <debonzi> BjornT, why don't you have it.. I was thinking it was installed by default
[05:25] <debonzi> BjornT, give one sec
[05:27] <salgado> debonzi, BjornT, I think it's installed by ubuntu-keyring
[05:27] <salgado> debonzi, if so, you need to update the list of dependencies in the wiki
[05:28] <debonzi> salgado, I think it is.. I will check and do that
[05:28] <daf> bradb: Malone is very nearly DB-import clean
[05:28] <daf> bradb: the only remaining issue is the import of BugTaskReport into the traversal code
[05:29] <debonzi> BjornT, could you try install ubuntu-keyring and check if it works please?
[05:29] <debonzi> BjornT, AFAICS here it will solve the problem
[05:29] <bradb> daf: awesome
[05:30] <dilys> New Malone bug 1541 filed on Registry by Morgan Collett: RDF can't have multiple elements in a <lp:product> or <lp:series>
[05:30] <BjornT> debonzi: ok, i'll try that
[05:30] <dilys> https://launchpad.ubuntu.com/malone/bugs/1541
[05:30] <debonzi> thanks BjornT 
[05:32] <daf> https://chinstrap.ubuntu.com/~dsilvers/paste/filecCFUin.html
[05:32] <daf> I wonder if that is evil
[05:32] <daf> I think it's ok
[05:33] <daf> should make it a doddle to add the infestation stuff back in
[05:35] <daf> maybe we can close #1118 now
[05:35] <daf> maybe
[05:38] <bradb> Looks good with a dict, IMHO
[05:40] <bradb> hm, re: 1118...not sure. /me thinks.
[05:41] <bradb> yeah, i think so, once it's confirmed that all the tests pass, etc.
[05:44] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  Add back sorting to the distrorelease translations table (patch-2144: christian.reis@canonical.com)
[05:46] <carlos> stub, hi, do you have a minute?
[05:47] <Kinnison> Is there a way to get sqlobject to throw away its cache?
[05:47] <Kinnison> I'm having problems where my publisher is regularly using 1.6G of ram
[05:47] <Kinnison> which is a bit sucky
[05:48] <cprov> salgado: ping
[05:49] <Kinnison> cprov: Is there a way to empty the sqlobject cache without committing/aborting the txn?
[05:49] <salgado> cprov, pong
[05:50] <Kinnison> salgado: ^^ same question to you
[05:50] <cprov> Kinnison: not that I know, AFAIKS the cache isn't exposed through ztm interface
[05:50] <Kinnison> goddamn
[05:51] <Kinnison> I'm touching thousands and thousands of objects. Most only once
[05:51] <daf> hmm
[05:51] <Kinnison> but the entire publishing process is one transaction
[05:51] <salgado> stub, is patch-2142 going into next production rollout?
[05:51] <daf> I think we came across this when I was working on the language pack stuff
[05:51] <cprov> salgado: do we mind if I use "assert" to ensure arguments type in LP code ?  isn't it UGLY ?
[05:51] <daf> I think stub or Steve dug into the the cache stuff for me
[05:51] <daf> try using sqlobjectinstance.expire()
[05:52] <daf> there's another thing you can do also
[05:52] <daf> but I can't remember what it is
[05:52] <salgado> cprov, you shouldn't use asserts to check argument types/values. you should raise exceptions in that case
[05:52] <cprov> Kinnison: I'm not sure, but I always thought it is a weak point of sqlos 
[05:53] <salgado> cprov, have you seen Bjorn's email about pyme and unicode?
[05:53] <cprov> salgado: uhm ... show me an good example
[05:53] <stub> 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] <stub> Kinnison: Carlos thought he fixed that using sync, but I havn't tried running that code again to confirm.
[05:54] <cprov> salgado: sure, I've already discussed it here today earlier ;) quite fuzzy yet 
[05:54] <carlos> stub, I'm not usin sync always, I'm using the flush call
[05:55] <carlos> stub, btw, I saw that sometimes a commit() is not saved unless you do a .sync() first (I think that's broken)
[05:55] <salgado> 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] <Kinnison> carlos: flush? sync?
[05:56] <salgado> cprov, look in database/person.py there's some examples there.
[05:56] <cprov> salgado: good, thanks
[05:56] <carlos> Kinnison, if you do changes to slqobjects, if you don't dump those changes into the database
[05:56] <carlos> Kinnison, sqlobject eats a lot of memory
[05:56] <carlos> I think we reach 3GB on staging
[05:57] <Kinnison> carlos: yeesh
[05:57] <Kinnison> carlos: so what do I do?
[05:57] <salgado> 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] <carlos> Kinnison, from canonical.database.sqlbase import flush_database_updates
[05:58] <carlos> Kinnison, call that method
[05:58] <Kinnison> carlos: that'll keep memory down?
[05:58] <carlos> Kinnison, I think so, but I will not know that for sure until stub executes my script on staging
[05:58] <Kinnison> okay
[05:58] <Kinnison> ta
[05:59] <carlos> Kinnison, my theory is that after you flush the sqlobject content, the object can be destroyed by the garbage collector
[05:59] <carlos> but it's just a theory
[05:59] <SteveA> carlos: it is likely.  mail me about it.
[05:59] <carlos> and forgot to ask spiv 
[05:59] <SteveA> carlos: i have done work on the sqlobject GC stuff
[05:59] <cprov> 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] <SteveA> carlos: so, if there is an outstanding bug ,i need to fix it.
[06:00] <SteveA> bradb: i have now merged your branch.  i'll look into it after lunch.
[06:00] <carlos> SteveA, ok, the only bug I see here is that a commit() does not implies a flush of all sqlobjects
[06:00] <bradb> SteveA: Thanks.
[06:01] <SteveA> 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] <carlos> 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
[06:01] <Kinnison> 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
[06:01] <carlos> hmm
[06:01] <SteveA> carlos: mail me.  i will fix it.
[06:01] <carlos> SteveA, It was not that woy on Thursday
[06:01] <daf> Kinnison: did you see what I said about .expire()?
[06:01] <carlos> if the patch got merged later, it's ok
[06:01] <Kinnison> daf: yeah, I'll try those in a bit
[06:01] <Kinnison> daf: I want to get it to dominate properly first
[06:01] <daf> Kinnison: if you're just looking at stuff, it should be sufficient
[06:02] <daf> Kinnison: (looking as opposed to modifying)
[06:02] <daf> Kinnison: yes, making it work should come before making it fast :)
[06:06] <BjornT> salgado: i get failures in teammembership.txt. if i move that flush_database_updates() i get different errors
[06:07] <salgado> BjornT, you mean you're getting errros without touching it?
[06:09] <BjornT> salgado: yes
[06:09] <salgado> that's weird
[06:10] <salgado> bbiab
[06:16] <dilys> 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] <daf> spiv: around?
[06:18] <daf> bradb: aha, I've found a problem
[06:19] <daf> bradb: bugs/N/people/+new
[06:19] <daf> either we move this to bugs/N/+new-person
[06:19] <daf> or I get SteveA to tell me how to get the traversals code to do the old URL
[06:19] <daf> SteveA: I believe you said that this would be possible
[06:20] <bradb> daf: what's the problem?
[06:20] <daf> well, previously, you had a +new page registered on BugSubscriptionSet
[06:20] <daf> (presumably)
[06:21] <daf> the replacement code I wrote doesn't know about +new
[06:21] <bradb> Oh, I see. Couldn't +add-subscriber be registered on IBug without changing the URL scheme?
[06:22] <daf> "without changing the URL scheme"?
[06:22] <daf> certainly +add-subscriber could be registered on IBug
[06:23] <bradb> 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] <daf> mmm
[06:23] <daf> well, package infestations are even stickier
[06:24] <daf> you have:
[06:24] <daf> bugs/N/packageinfestations/
[06:24] <bradb> don't worry about them!
[06:24] <daf> bugs/N/packageinfestations/+new
[06:24] <daf> bugs/N/packageinfestations/N/+edit
[06:24] <bradb> Those are antique URLs, don't worry about them.
[06:24] <daf> well, there are tests failing for them :)
[06:24] <daf> therefore I am worried about them
[06:24] <bradb> how many tests?
[06:26] <daf> just one, I think
[06:26] <daf> pagetests/malone/30-add-edit-package-infestation.txt
[06:27] <daf> there are similar problems with bug references and watches
[06:27] <daf> bugs/N/references/+new, bugs/N/watches/+new
[06:27] <bradb> 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] <BjornT> daf: you could try to lookup a view first. if you find one, return it
[06:28] <daf> how do I look up a view?
[06:28] <bradb> queryView(object, viewname, request)
[06:28] <bradb> i think it's in zope.component
[06:29] <daf> ok, I can give this a try
[06:29] <BjornT> yep. and object should be the FooSet
[06:30] <bradb> argh, this is evil though. It's looking like this "smarter traversal" might force us to collapse the URLs.
[06:30] <daf> 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] <daf> bradb: mmm, yeah :/
[06:30] <daf> bradb: Mark seems happy to pay that price, though
[06:30] <bradb> I wonder if SteveA would let us consume one than one path step, or even it even makes sense to do so.
[06:30] <daf> e.g. foo/+new-person over foo/people/+new
[06:31] <BjornT> daf: yes, the same way you have to create it if you have ['1', 'watches'] 
[06:31] <bradb> 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] <daf> BjornT: well, in that case, I can do getUtility(IBugWatchSet)[id] 
[06:33] <daf> since the bug is not relevant
[06:33] <daf> but it is relevant for creating new watches
[06:34] <daf> 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] <bradb> 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] <daf> mm, I like the current URL scheme
[06:36] <bradb> daf: Do you like having several different pages across which to spread this information?
[06:36] <daf> how do you mean?
[06:37] <bradb> daf: having to go to separate pages for subscribing, adding URL refs, adding CVE refs, marking as dup, etc.
[06:38] <bradb> (If this were all disclosable on the bug page, the URL scheme would be irrelevant and unnecessary altogether.)
[06:38] <daf> ah
[06:38] <daf> hmmm
[06:38] <daf> I'm really not sure
[06:40] <Burgundavia> the more pages (and thus the more clicks) you introduce are simply going to infuriate people
[06:41] <BjornT> 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] <dilys> 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] <daf> yes, I want input from SteveA 
[06:44] <daf> but he doesn't appear to be around
[06:44] <stub> Lunch here in Brazil
[06:44] <daf> thought as much
[06:44] <jamesh> lunchpadding
[06:45] <Keybuk> strange, my laptop decided to pick an AP with no signal, and wouldn't leave it for a better one
[07:03] <daf> eek
[07:03] <daf> canonical.launchpad.scripts.builddmaster is chock-full of DB imports
[07:03] <daf> I thought the end was in sight
[07:06] <Keybuk> oops, nearly threw out my "Get Out of Brazil Free Card"
[07:06] <Kinnison> daf: we can chat about that tonight if you want
[07:06] <Kinnison> Keybuk: oops
[07:07] <daf> Kinnison: at a glance, it doesn't look too difficult to fix
[07:07] <daf> Kinnison: just tedious :)
[07:07] <daf> SteveA: around?
[07:10] <Keybuk> doesn't that translate as "salty lunch" ?
[07:10] <Keybuk> not good for your arteries
[07:10] <daf> "salgado" means "savoury", I believe
[07:11] <elmo> stub: ?
[07:12] <Kinnison> daf: savoury or salty
[07:12] <daf> ah, ok
[07:12] <Kinnison> daf: according to kiko and johan
[07:15] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  Fix Bug 1541: RDF can't have multiple elements in a <lp:product> or <lp:series> (patch-2147: morgan.collett@canonical.com)
[07:15] <carlos> jamesh, around?
[07:15] <jamesh> carlos: yep.
[07:15] <carlos> jamesh, about my karma branch
[07:15] <bradb> BjornT: question for you about widgets...
[07:16] <bradb> I have a BugTaskAssigneeWidget whose __init__ looks like this:
[07:16] <bradb>     def __init__(self, context, request):
[07:16] <bradb>         SimpleInputWidget.__init__(self, context, request)
[07:16] <bradb>         # Set the attribute that allows for choosing an assignee other
[07:16] <bradb>         # than the currently logged-in user.
[07:16] <bradb>         self.assignee_chooser_widget = SinglePopupWidget(
[07:16] <bradb>             context, context.vocabulary, request)
[07:16] <SteveA> guys, please don't waste time working out how to get the traversal step things working.  i'm working on it.
[07:16] <carlos> I need to give a list of fields to SQLObjectModifiedEvent
[07:16] <bradb> problem is, the assignee_chooser_widget is always empty when rendered (even though it properly *saves* a value I enter.)
[07:16] <carlos> jamesh, should I add any single field the sqlobject has or just the ones I care about at this moment?
[07:16] <daf> SteveA: what exactly are you working on?
[07:17] <bradb> 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] <jamesh> carlos: in the Malone code, they use the Snapshot class to take a copy of the old state of the object
[07:18] <carlos> jamesh, yeah, I'm using that too
[07:18] <carlos> jamesh, but as they use it from an edit form
[07:18] <carlos> they put there the list of fields showed to the user 
[07:18] <carlos> in that form
[07:19] <SteveA> daf: fixing problems that occur when you remove a step from the traversal subpath
[07:19] <carlos> in my case that's not so simple as I give the object to a function and that function modify the object
[07:19] <carlos> hmm, ok, I see your point
[07:19] <daf> SteveA: ok -- I have a different problem
[07:19] <jamesh> carlos: just create an empty list for the changed fields, and append to it as you set fields
[07:19] <jamesh> carlos: and then use that to create the SQLObjectModifiedEvent
[07:19] <carlos> as I have the orginal object and the new one I can guess the changes
[07:20] <carlos> jamesh, I cannot do it that way because that implies to move the logic of the notification inside the function I call
[07:20] <carlos> I think that I would just compare both objects and that's all
[07:20] <jamesh> hmm
[07:22] <jamesh> carlos: maybe a helper for constructing an SQLObjectModifiedEvent would be helpful here.
[07:22] <mpt_> carlos/daf: Can you add a real-world example of "something %s something %d something" to RosettaOneDotZeroAnnouncement?
[07:22] <carlos> mpt_, :-?
[07:23] <Kinnison> ciao dudes
[07:23] <carlos> mpt_, I don't understand your request
[07:23] <carlos> jamesh, yeah, bradb talked about a way to generalize his solution
[07:23] <mpt_> 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] <BjornT> bradb: i don't quite understand. you have a widget on a widget?
[07:24] <SteveA> daf: what is your different problem?
[07:24] <carlos> mpt_, oh, ok
[07:25] <jamesh> mpt: if a program does printf(_("Hello %s"), "World");
[07:25] <daf> SteveA: well, one instance of this problem is a URL such as /bugs/1/watches/+new
[07:25] <SteveA> sounds like the same problem to me
[07:25] <mpt_> thanks carlos
[07:25] <jamesh> 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] <bradb> BjornT: right, it's like a "composite widget" as it were
[07:26] <mpt_> jamesh: Yes, I know, but "XXX %s %s" still isn't a real example
[07:26] <bradb> BjornT: i.e. it looks like this on a form:
[07:26] <bradb> (*) foo someone else: [             ] 
[07:26] <bradb> () foo me
[07:27] <jamesh> mpt_: there was a real world example in dpkg, where it would reliably crash if using chinese a while back
[07:27] <bradb> i've hacked my way through getting the radio buttons set correctly, but the SPW thoroughly evades me
[07:29] <Keybuk> jamesh: that wasn't a real world example, it was a wacky world example
[07:30] <Keybuk> 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] <elmo> ok, I'm going to break staging - if anyone cares, shout now
[07:31] <BjornT> bradb: ah, ok. so, in setRenderedValue(self, value) you should call assignee_chooser_widget.setRenderedValue(value)
[07:31] <elmo> (tbh, I'll probably only break http://staging, rather than https, but then this is mod rewrite evil, so..)
[07:31] <Keybuk> for how long?
[07:32] <elmo> Keybuk: hopefully not long, but as long as it takes to beat the rewrite magic into submission
[07:32] <elmo> if it's a bad time, I can leave it
[07:32] <Keybuk> ah, so the db is ok?  that's all I care about
[07:32] <elmo> oh, yah, it's only the apache instance, I'm messing with
[07:34] <bradb> BjornT: rock! that worked, thanks a million.
[07:35] <BjornT> bradb: cool
[07:37] <bradb> mpt: around for a quick q about displaying the assignee widget?
[07:38] <bradb> mpt: (For when you are around) There are two "modes" for this widget, effectively: 1. assignee == None, 2. assignee != None
[07:38] <bradb> so, for 1. should the widget be shown like:
[07:38] <bradb> ( ) Assign to me
[07:38] <bradb> ( ) Assign to: [      ] 
[07:39] <bradb> and then 2. would be
[07:39] <bradb> (*) Assigned to me
[07:39] <bradb> ( ) Reassign to: [      ] 
[07:39] <bradb> hm
[07:39] <elmo> jamesh/someone: got an example calendar URL for me, pls?
[07:40] <dilys> 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] <dilys> https://launchpad.ubuntu.com/malone/bugs/1542
[07:41] <jamesh> elmo: https://launchpad.ubuntu.com/products/webcalendar/+calendar/+icalendar
[07:41] <bradb> 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] <bradb> s/other than/other than me/
[07:42] <jamesh> that's the icalendar file for a product with a registered calendar
[07:42] <elmo> jamesh: will that work on staging?
[07:42] <elmo> ohh, sexy, it does
[07:42] <jamesh> elmo: probably
[07:42] <jamesh> yes
[07:42] <elmo> jamesh: ok, so that url redirection magic is setup on staging
[07:42] <elmo> can you check it out and see if your happy?
[07:42] <elmo> you're too
[07:42] <elmo> btw, inventing a random URL does strange things
[07:42] <elmo> e.g. http://staging.ubuntu.com/projects/foo/+calendar/+icalendar
[07:43] <elmo> doesn't do what I'd expect
[07:43] <daf> hmm, that should be a 404
[07:43] <jamesh> elmo: seems to redirect to https
[07:44] <elmo> jamesh: which?  foo or webcalendar?
[07:44] <jamesh> webcalendar
[07:44] <elmo> jamesh: on staging?
[07:44] <jamesh> yeah
[07:45] <elmo> oh, so it is.  I am teh suck.
[07:45] <jamesh> lynx -mime_header -source http://staging.ubuntu.com/products/webcalendar/+calendar/+icalendar
[07:45] <jamesh> (lynx can't do ssl, so shows the redirect error)
[07:46] <kiko> ahoiee
[07:47] <elmo> OH
[07:47] <elmo> that's because it's _products_
[07:47] <elmo> no one said anything about redirecting _products_ :-P
[07:48] <jamesh> doh
[07:48] <jamesh> I missed that one :(
[07:49] <elmo> okay, added, now WFM
[07:49] <jamesh> not quite
[07:49] <elmo> ?
[07:49] <jamesh> it is giving me the Launchpad home page
[07:50] <jamesh> rather than a text/calendar (iCalendar) file
[07:50] <Keybuk> SteveA: I appear to have bought the complete set of "Aaron Carter" albums with me ... *bribe*
[07:50] <elmo> ah, right, meh
[07:50] <elmo> I am _still_ teh suck
[07:50] <SteveA> who is aaron carter, and what nefarious favour do you want?
[07:52] <jamesh> elmo: looks nice now
[07:52] <jamesh> thanks
[07:52] <elmo> ok, will transfer to live 
[07:53] <dilys> 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] <dilys> https://launchpad.ubuntu.com/malone/bugs/1543
[07:53] <SteveA> bradb: I know what the problem is.  now I just need to work out how to fix it.
[07:53] <bradb> SteveA: ok, cool
[07:56] <elmo> jamesh: do you want me to bounce ssl requests for those urls back to non-ssl or is there no point?
[07:58] <jamesh> elmo: no point.  If the client can handle SSL, then let them use it
[07:59] <elmo> ok
[07:59] <elmo> jamesh: production done too
[07:59] <jamesh> thanks
[08:02] <dilys> 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] <dilys> https://launchpad.ubuntu.com/malone/bugs/1544
[08:08] <SteveA> bradb: the bad thing is, it looks like a zope3 bug
[08:09] <bradb> i worried it might be that deep
[08:10] <bradb> 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] <Keybuk> SteveA: younger brother of some american boyband member -- very camp and bouncy music
[08:10] <Keybuk> therefore you'd like it
[08:15] <SteveA> hurrah
[08:15] <BjornT> bradb: no i don't think so. you probably have to add a method/property for that
[08:15] <bradb> heh
[08:20] <kiko> BjornT, is there a way of finding out what type a certain widget is, from the template?
[08:21] <BjornT> kiko: no
[08:22] <bradb> kiko, mpt, BjornT: what do you guys think of this assignee widget? 66.130.64.82:8086/distros/debian/+bugs/3/+edit
[08:24] <bradb> 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] <kiko> BjornT, could we add it?
[08:25] <kiko> BjornT, mpt and I want to do smarter layout of form fields
[08:25] <kiko> bradb, Log in or register
[08:25] <bradb> kiko: right, it's just the test data dude
[08:25] <bradb> test@canonical/test, etc.
[08:25] <bradb> or foo.bar@canonical.com, whatever
[08:26] <kiko> bradb, the radio buttons are lacking label
[08:26] <kiko> shouldn't test@canonical.com be the name of the person, and a link to the person's page?
[08:27] <kiko> I see why you didn't do that though
[08:27] <bradb> 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] <bradb> linkifying is probably a good idea though
[08:27] <kiko> yeah
[08:28] <kiko> and then the worst past is that a link on the email address...
[08:28] <kiko> but the radio button is actually useless, come to think of it
[08:28] <kiko> mpt to the rescue
[08:29] <BjornT> bradb: well, it's not entirely clear how to unassign yourself
[08:29] <bradb> yeah, i thought of that too
[08:29] <bradb> maybe mpt has some ideas...?
[08:29] <BjornT> kiko: what different types of widgets are you interested in?
[08:30] <kiko> BjornT, check, radio, text, textarea
[08:30] <kiko> BjornT, very good point, unassigning the bug is also important
[08:32] <bradb> is mpt looking at it?
[08:33] <bradb> 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] <BjornT> kiko: you can't do it with css?
[08:34] <kiko> BjornT, no.
[08:34] <mpt> bradb: That's what I'm doing
[08:34] <bradb> righty-o
[08:34] <mpt> it's very slow
[08:35] <mpt> Ok, the page I'm looking at has a set of radiobuttons of which neither are selected
[08:35] <mpt> that's not right
[08:36] <bradb> mpt: radio buttons are what you suggested to me. what's a better widget for that field?
[08:37] <mpt> ideally, we'd use a combo box
[08:37] <bradb> or, i guess you want the assign to: selected by default?
[08:37] <mpt> but HTML doesn't have combo boxes
[08:37] <mpt> hmmm
[08:37] <Keybuk> 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] <mpt> Assigned to: [(nobody)       ] 
[08:38] <bradb> mpt: why the need for (nobody)?
[08:38] <mpt> to make the nobodiment obvious
[08:38] <bradb> That seems to draw my attention to that field, and then say "oh, that was just nobody, not an actual person"
[08:38] <mpt> but that's not my final answer, I'm just throwing ideas out
[08:38] <mpt> true
[08:39] <BjornT> kiko: hmm, ok. i can't think of an easy of adding something like that.
[08:39] <mpt> bradb: ok, how about a <select> + a text field
[08:40] <mpt> the <select> contains "Nobody", "Me", and "Other:"
[08:40] <mpt> and the current assignee
[08:40] <mpt> "Nobody", "Me", "Brad Bollenbach", "Other:"
[08:41] <bradb> hm
[08:41] <mpt> and then the text field is for if "Other:" is selected
[08:42] <bradb> That seems a bit awkward to me, but I dunno.
[08:42] <bradb> kiko, BjornT: opinions on that?
[08:42] <mpt> well, we could make them radio buttons
[08:42] <mpt> Assigned to:
[08:42] <mpt> ( ) Nobody
[08:43] <mpt> ( ) Me
[08:43] <mpt> (*) Brad Bollenbach
[08:43] <mpt> ( ) [                    ] 
[08:43] <mpt> but that would take up lots of space
[08:43] <Keybuk> did someone break the staging librarian?
[08:43] <bradb> mpt: what about:
[08:43] <bradb> either:
[08:43] <bradb> ( ) Assign to me
[08:44] <bradb> (*) Assign to: [      ] 
[08:44] <bradb> or (when there's an assignee)
[08:44] <bradb> (*) Assigned to foo.bar@canonical.com
[08:44] <bradb> ( ) Reassign to: [      ] 
[08:44] <bradb> ( ) Remove assignee
[08:44] <bradb> (or whatever wording for the last option)
[08:44] <mpt> In the last case you're missing reassigning to yourself
[08:45] <bradb> mpt: does that matter though?
[08:45] <mpt> almost as much as it does for when there isn't an assignee
[08:45] <mpt> it wouldn't be obvious why the option existed for that case but not the other
[08:46] <mpt> (*) Assigned to nobody
[08:46] <mpt> ( ) Assign to me
[08:46] <mpt> ( ) Assign to: [current assignee goes here] 
[08:46] <mpt> that's from four down to three
[08:46] <bradb> 2 mins
[08:52] <bradb> mpt: what do you think now?
[08:52] <mpt> you're still missing the initial selection
[08:53] <bradb> it WFM, apparently
[08:53] <mpt> ah, now it works
[08:53] <mpt> ok
[08:54] <mpt> looks good
[08:54] <mpt> One more suggestion:
[08:54] <mpt> change "Assignee" to "Assigned to:"
[08:55] <mpt> Then you can simplify the labels by removing "Assign(ed) to" from all of them
[08:59] <bradb> mpt: like that?
[09:00] <mpt> yes
[09:00] <mpt> except that you forgot to make "nobody" and "me" <label>s
[09:01] <mpt> hmmm, that whole form looks as though it's been thrown on the page a bit
[09:02] <bradb> mpt: didn't forget; didn't know I was supposed to
[09:03] <bradb> they seem too dark when I put <label> around them. are they supposed to look like that?
[09:03] <SteveA> bradb: your fix:
[09:03] <mpt> bradb: ah, true, there's a label {font-weight: bold;} in launchpad.css
[09:03] <SteveA>             nextstep = travstack.pop()
[09:03] <SteveA>             request._traversed_names.append(nextstep)
[09:03] <SteveA>             request.setTraversalStack(travstack)
[09:03] <mpt> that probably shouldn't be there
[09:04] <SteveA> you need to add that middle line after the "pop()" line
[09:04] <SteveA> for the true fix, i need to write a zope3 proposal and fix it properly.
[09:04] <daf> aha
[09:04] <bradb> SteveA: ! right, I shall try that shortly and confirm whether or not it worked for me, thanks.
[09:04] <SteveA> it is rather evil
[09:04] <SteveA> because it is using an internal attribute of the request
[09:04] <bradb> mpt: should i leave them un-<label>'d for now then?
[09:05] <SteveA> but, it will do until we get it fixed upstream
[09:05] <SteveA> when i land the nav stuff, it will be evil only in one place
[09:05] <mpt> bradb: If you like, and I'll look through the places we've used <label> later to make sure nothing bad happens when I un-bold them
[09:05] <SteveA> the api that our traversal code uses will be decent and pure 
[09:06] <bradb> virgin-like, even?
[09:06] <bradb> mpt: thanks for the pointers. i'll clean this up a bit and submit for review.
[09:09] <mpt> no probs
[09:09] <bradb> SteveA: that appears to work, thanks!
[09:12] <Keybuk> 11m for a baz commit -- improving
[09:12] <Keybuk> SPEEDING UP!
[09:13] <daf> 11m?!
[09:24] <SteveA> bradb: can you fix up everywhere we use setTraversalStack ?
[09:24] <bradb> SteveA: sure
[09:25] <SteveA> thanks brad
[09:25] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  add branch pages and portlets (patch-2148: mark.shuttleworth@canonical.com)
[09:28] <bradb> SteveA: I have to wonder why that existing code does travstack[0]  and setTraversalStrack(travstack[1:] )
[09:28] <bradb> I'll change it to pop() and see if anything breaks
[09:30] <SteveA> um
[09:30] <SteveA> bradb: pop removes from the end
[09:30] <bradb> I know ;)
[09:30] <SteveA> so, code that does travstack[0]  is wrong, unless it reverses first
[09:30] <bradb> that's what i mean. I think it only got away with it because there was always only one extra step
[09:30] <SteveA> aha
[09:30] <bradb> (that's my guess, anyway)
[09:31] <SteveA> this will be clear in the new zope3 api
[09:32] <SteveA> there will be only pop() and push() to an ITraversalStack object
[09:32] <SteveA> called request.traversal_stack
[09:33] <bradb> new zope 3 api? you mean like when we upgrade to a newer version of zope 3? or are you talking about your nav code?
[09:33] <SteveA> when 
[09:34] <SteveA> 1. i write a proposal and some code for zope3
[09:34] <SteveA> 2. we upgrade to include that code
[09:34] <bradb> ah
[09:46] <bradb> SteveA: looks all good now. will commit, take a quick look through the diff, then put the IBugTaskSubset removal code in your queue.
[09:47] <bradb> (i.e. the tests all pass after those changes + .pop() instead of that [0]  weirdness)
[09:49] <SteveA> way cool
[10:04] <SteveA> who is Lionel Montrieux ?
[10:09] <bradb> * Comparing FROM and TO ...........................................................................................................................................................................................................................................................................................................................................................baz: uncaught exception: -1:(unable to fork for diff)
[10:09] <SteveA> you ran out of memory
[10:10] <bradb> i figured as much, but that's no comfort
[10:11] <SteveA> run again
[10:11] <SteveA> you may have cached data
[10:11] <SteveA> so that it will take less memory
[10:12] <bradb> I imagine I'm not the only one who often finds an hour added to the end of his day (if not more), /purely/ because of baz.
[10:12] <SteveA> how much memory do you have?
[10:12] <bradb> 512 MB. i.e. enough.
[10:13] <SteveA> no
[10:13] <SteveA> you will go much faster with 1GB or even 2 GB
[10:13] <SteveA>  mark has just over 1GB on his laptop
[10:13] <SteveA> and baz is fast enough
[10:13] <SteveA> i have 2GB at home.  no worries.
[10:13] <bradb> it is? wow.
[10:14] <bradb> i'd be much happier if the bug like that were fixed, instead of each user having to spend the extra money on RAM to accomdate baz.
[10:14] <SteveA> it is getting fixed
[10:14] <SteveA> it will take a while, though
[10:38] <bradb_> anyone know what the solution to the /usr/share/keyrings problem was?
[10:38] <bradb_> I didn't notice a mail to the list about it
[10:39] <bradb_> cprov?
[10:39] <SteveA> bradb_, BjornT: who is getting rid of the malone database imports into browser/traversers.py ?
[10:39] <bradb_> SteveA: daf, i think
[10:39] <SteveA> really?
[10:39] <bradb_> that's what he said earlier
[10:39] <SteveA> this is malone responsibility
[10:39] <bradb_> IIRC
[10:39] <bradb_> i agree
[10:39] <SteveA> so, if daf is doing it, you need to know about it
[10:40] <bradb_> i found out when he told me, but i'm not sure how far he ended up making it
[10:41] <bradb_> BjornT: i saw you talking about the /usr/share/keyrings problem earlier, i think. what was the solution/
[10:41] <bradb_> this whole lp-not-starting thing is a slight blocker
[10:44] <SteveA> what is the /usr/share/keyrings problem?
[10:44] <bradb_> debonzi: did you mail the list about ubuntu-keyring? I might have overlooked that mail.
[10:45] <bradb_> SteveA: lp fails to start, because, according to what debonzi says in my channel logs, ubuntu-keyring is a new dependency
[10:45] <bradb_>   File "/home/bradb/launchpad/lib/ZConfig/cfgparser.py", line 178, in error
[10:45] <bradb_>     raise ZConfig.ConfigurationSyntaxError(message, self.url, self.lineno)
[10:45] <bradb_> ZConfig.ConfigurationSyntaxError: /usr/share/keyrings is not an existing directory
[10:45] <bradb_> (line 261 in file:///home/bradb/launchpad/configs/default/launchpad.conf)
[10:45] <bradb_> make: *** [stop]  Error 1
[10:47] <SteveA> $ ls /usr/share/keyrings/ubuntu-archive-
[10:47] <SteveA> ubuntu-archive-keyring.gpg       ubuntu-archive-removed-keys.gpg
[10:48] <SteveA> if we have a new dependency, it needs to be updated in the LaunchpadSetup page, and announced to the list
[10:53] <SteveA> bradb: what does "baz tree-id" in sqlobject tell you?
[10:54] <bradb> rocketfuel@canonical.com/sqlobject--test--0.6--patch-31
[10:55] <SteveA> thanks
[10:55] <bradb> np
[10:57] <bradb> ugh, portlet renamings == nasty conflicts
[11:01] <dilys> New Malone bug 1545 filed on The Launchpad by svaksha: bug -a system error occurred during PO File Export
[11:01] <dilys> https://launchpad.ubuntu.com/malone/bugs/1545
[11:01] <bradb> kiko: now that IBugTaskSubset is removed, there's two portlets called rocketfuel@canonical.com/sqlobject--test--0.6--patch-31
[11:01] <bradb> alsdjfasd
[11:01] <bradb> make that +portlet-actions
[11:02] <bradb> kiko: what's the proper way to name the one that is specific to the bugtask listing?
[11:05] <debonzi> bradb, I've updated the rocketfuelsetup page.. but missed the mail list part.. sorry
[11:31] <bradb> debonzi: no worries, thanks for mailing the list to let others know
[11:42] <debonzi> bradb, welcome
[11:54] <bradb> SteveA: the remove IBugTaskSubset branch is in your queue now
[11:55] <SteveA> bradb: ta
[11:57] <bradb> gotta run, later all
[12:04] <SteveA> bradb-afk: reviewed, replied