[12:12] <BradB> sabdfl: i should have one-click accept/reject checked in shortly
[12:22] !lilo:*! As you may be aware, freenode is a program of Peer-Directed Projects Center, an IRS 501(c)(03) (not-for-profit, tax-exempt) organization.  Ramping up has been slow; we're in the middle of our first actively-budgeted year of operation.  Information on PDPC is available on Guidestar: http://www.guidestar.org/search/report/gs_report.jsp?ein=74-3033697 (registration required, free of charge).
[12:24] !lilo:*! The information on Guidestar should serve to give you a bit of information on the goals of PDPC.  Meanwhile, we're in the middle of program planning.  If you're interested in helping brainstorm a bit, please read our Guidestar entry and stop by #pdpc-input .... I'll talk about what we're tring to do and maybe you can help us come up with more ideas for pilot programs.  Thanks.
[12:25] <BradB> just checking which tests have broken now
[12:51] <Kinnison> night
[01:18] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: added one-click bug assignment accept/reject (patch-856)
[01:29] <dilys> Malone bug #47 fixed for product Malone: All our bug assignments are 'NEW'
[01:29] <dilys> https://launchpad.ubuntu.com/malone/bugs/47
[01:30] <BradB> stub!
[01:30] <BradB> can you move up a new malone?
[01:30] <stub> dogfood? sure
[01:30] <BradB> thanks
[01:31] <BradB> stub: first, perhaps you could take a quick look at the one-click bug assignment accept/reject
[01:31] <BradB> to make sure it works in your browser.
[01:31] <BradB> you're probably using the same as me (ubuntu's firefox), but just to be sure...and to ensure the UI is relatively sane
[01:32] <stub> hoary firefox
[01:32] <BradB> ah
[01:33] <BradB> it'd be nice if we could do something about the formatting. it looks pretty nasty, to be honest.
[01:33] <BradB> er, formatting of bug messages, that is
[01:35] <stub> Look fine at my end. Got any bugs on launchpad that particularly make you eyes bleed?
[01:35] <BradB> stub: what looks fine on your end?
[01:35] <stub> Formatting of bug messages
[01:37] <BradB> it looks bizarre in a (fairly) vanilla warty firefix (0.9.3). looks like 1.5 line spacing, and a fairly small font
[01:39] <BradB> stub: there's major optimization needed for the bug listing (takes 1m 30s when db contains 7,000 bugs) but that'll most go away when we upgrade to a new zope and i implement cool selection widgets using sources.
[01:40] <stub> Cool. Is a source like a Vocabulary, only saner?
[01:40] <BradB> doing what's necessary to get us running on the newest z3 would be good. talking to lifeless to get him to do that thing you mentioned before to make it easy to upgrade whenever would be good.
[01:40] <BradB> stub: yeah
[01:41] <BradB> it's specifically meant for vocabs which are too large to enumerate, which is exactly what we need to solve that problem
[01:41] <stub> Let me know if you need me to check in any of the existing popup source to the Z3 tree if you use that model for the widget
[01:41] <BradB> ok
[01:42] <stub> There are already interfaces for non-enumerable Vocabularies, but they are buried in that disgusting mess of Interfaces that nobody can be bothered groking or using.
[01:42] <BradB> eek
[01:43] <stub> I would recommend starting fresh like you are ;)
[01:43] <BradB> a minor one: the comment widgets need to be made the same size for followup comments as they are for the add new comment widgets. then we can close #12 slightly more confidently.
[01:43] <stub> I think you have IBaseVocabulary, IIterableVocabulary being used to build IVocabulary (which is the only one people use afaik)
[01:46] <BradB> it'd be helpful to go through and mark bugs fixed that you've fixed. e.g. something needs to be done about #45 (like i say, i don't think the formatting is acceptable...certainly not on an out-of-the-box firefox on warty)
[01:46] <BradB> stub: and then since pitti is our first Ubuntu person testing, his bugs may point out things that make you say "ah, yeah, we better fix that right away"
[01:46] <BradB> pitti, i.e. Martin Pitt
[01:47] <stub> I think if we want to tweak the formatting of the bug comments, it only involves changing the CSS class boardCommentContent. The comments look fine here (I think I might be seeing the 1-and-a-bit linespacing you are, but I like it. I'm running at 144dpi though so I will get different rendering to you.
[01:49] <stub> I don't know if I'll get to look at Malone stuff today though - got some other tasks I'm getting behind on (Issue Tracker).
[01:49] <BradB> ok
[01:50] <BradB> have you finished star-merging? i'd be curious to get your feedback on a basic sanity check of one-click accept/reject before i go do not-work things
[01:50] <stub> I'll be rolling out dogfood, and I think I saw a bug about two martins in the db which I will sort.
[01:50] <stub> Just committing the merge
[01:53] <stub> I can't see where the one click is..
[01:53] <BradB> you have to login
[01:53] <BradB> afterall, we don't want anons accepting/rejecting :)
[01:54] <stub> I am logged in.
[01:54] <BradB> bug listing?
[01:54] <stub> What screen should I be on?
[01:55] <stub> Wierd... I get logged out on the buglisting page... I guess I should clear my basic auth tokens ;)
[01:56] <stub> Seems to work fine here.
[01:56] <BradB> cool
[01:56] <stub> Some tweaks needed - 'Accept' should not be a hyperlink if the bug is already accepted.
[01:57] <BradB> stub: yeah, i wasn't sure about what the correct behaviour was there, but yeah, we'll probably do that.
[01:57] <BradB> also, we'll probably drop the text in favour of icons or something
[01:57] <BradB> but anyway, cool, i look forward to a new dogfood
[01:58] <stub> I think we need to drop the 'onclick' for the table row rollovers - it is confusing to have hyperlinks embedded in a larger object that is clickable.
[01:58] <BradB> stub: it's no longer the whole row
[01:58] <BradB> stub: it's everything but the "Take Action" column now. the row highlighting remains a bit confusing in that regard though.
[01:59] <BradB> stub: anyway, i'll leave it with you. need anything from me before i go?
[01:59] <stub> ok - it is improved, but I still think it is confusing (as someone who like to watch his status bar to see what links do). I think when Limi threw it together, the entire row was all destined to go to the same destination.
[02:00] <stub> Should be fine ;-)
[02:00] <BradB> stub: yeah, it is. we'll definitely do something about that.
[02:00] <BradB> ok, thanks, later!
[02:00] <stub> have fun ;)
[02:28] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Put debbugs in sampledata (patch-857)
[04:46] <dilys> Malone bug #73 fixed for product Malone: "Martin Pitt" is in the assignee list twice
[04:46] <dilys> https://launchpad.ubuntu.com/malone/bugs/73
[05:09] <dilys> Malone bug #25 fixed for product The Launchpad: favicon not founds
[05:09] <dilys> https://launchpad.ubuntu.com/malone/bugs/25
[05:10] <dilys> Malone bug #25 fixed for package launchpad: favicon not founds
[05:10] <dilys> https://launchpad.ubuntu.com/malone/bugs/25
[05:29] <dilys> Malone bug #45 fixed for product Malone: Bug message formatting not appropriate for bugs
[05:29] <dilys> https://launchpad.ubuntu.com/malone/bugs/45
[09:21] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: separated publishing and udeb import for gina (patch-858)
[10:03] <Kinnison> Morning
[10:07] <Kinnison> Morning lulu
[10:23] <lulu> kinnison:morning :o)
[11:00] <Kinnison> morning carlos
[11:01] <carlos> morning
[11:16] <lulu> carlos:morning!
[11:16] <carlos> lulu: hey!
[11:26] <Kinnison> Y'know, I think I almost fixed the last FMO
[11:27] <Kinnison> For warty at least
[11:43] <Kinnison> @ Closing database connections...
[11:43] <Kinnison> @ Gina completed.
[12:00] <Kinnison> Hihi cprov 
[12:04] <cprov> Kinnison: morning 
[12:05] <Kinnison> okay; gina seems clear
[12:14] <dilys> New Malone bug #76: "SQLObject is not committing", submitted by Rob Weir
[12:14] <dilys> https://launchpad.ubuntu.com/malone/bugs/76
[12:27] <Kinnison> gina is doing well
[12:31] <SteveA> Launchpad meeting, here, 1 hour from now
[12:33] <Kinnison> ack.
[01:24] <SteveA> meeting in 5
[01:25] <Kinnison> Four
[01:25] <Kinnison> (I can just sense a 'Lunchpadders are go' coming up)
[01:27] <carlos> kiko: ;-)
[01:27] <carlos> uppps
[01:27] <carlos>  /s/kiko/Kinnison/
[01:27] <kiko> lunchpadders are go go go
[01:27] <carlos> kiko: I have your AP 
[01:29] <kiko> carlos, you are them man
[01:30] <SteveA> ok, who is here.  all here say "something"
[01:30] <carlos> "something"
[01:30] <BradB> something
[01:30] <lifeless> SteveA: 
[01:31] <SteveA> daf?
[01:31] <SteveA> anyone seen james henstridge?
[01:31] <Kinnison> "summat"
[01:31] <SteveA> sabdfl: ?
[01:31] <lifeless> yeah, a few months ago
[01:31] <stub> yo
[01:31] <SteveA> cprov: ?
[01:31] <SteveA> debonzi: ?
[01:31] <sabdfl> SteveA: yes?
[01:31] <SteveA> kiko: ?
[01:31] <SteveA> sabdfl: launchpad meeting starting
[01:32] <sabdfl> present ;-)
[01:32] <SteveA> ok, let's get started.  others can read the logs and join in when they join in
[01:32] <SteveA> first of all, I have a couple of general launchpad things
[01:33] <SteveA> We should all start using baz.
[01:33] <SteveA> Who isn't using baz yet?
[01:33] <BradB> me
[01:33] <stub> baz switch rocks. baz branch rocks.
[01:33] <SteveA> dunno what those are
[01:33] <lifeless> new commands
[01:34] <lifeless> baz help switch
[01:34] <lifeless> yadayada
[01:34] <debonzi> SteveA, 
[01:34] <SteveA> if you don't have baz yet, do you know how to get it?
[01:34] <sabdfl> BradB: baz is very nice
[01:35] <SteveA> ok, let's all use baz today.
[01:35] <carlos> yep, It's just i was not able to look into it yet
[01:35] <carlos> ok
[01:35] <kiko> present
[01:35] <SteveA> next up, permissions
[01:35] <SteveA> Do not use zope.View or any other "zope." permissions in your zcml code, except for "zope.Public"
[01:36] <SteveA> When my next checkin hits RF, there will be launchpad.AnyPerson and launchpad.Edit permissions available
[01:36] <SteveA> you can add more launchpad.Something permissions in the canonical/launchpad/permissions.zcml file
[01:36] <SteveA> we should keep them generic, where possible.  so, launchpad.Edit rather than launchpad.EditBug
[01:37] <sabdfl> there's only a zope.SendMail, in mail.zcml
[01:37] <sabdfl> hold on
[01:37] <sabdfl> please don't just add permissions
[01:37] <cprov> here
[01:37] <sabdfl> if you think you need a new permission, discuss it with steve
[01:37] <SteveA> I'm about to check in some changes to allow you to write code in a database object or in an adapter to say whether the logged in user gets particular permissions.
[01:37] <sabdfl> i'd like there to be a launchpad.Admin permission as well
[01:37] <SteveA> I will post docs about this a little later today.
[01:37] <kiko> sabdfl, seconded
[01:38] <SteveA> yeah, what sabdfl said
[01:38] <sabdfl> the idea is to stick to a bare minimum of permissions
[01:38] <carlos> SteveA: then we will have only: readonly or read/write permissions?
[01:38] <sabdfl> so we don't end up with zope.CanTranslateToChineseWhenTheMoonIsFull
[01:38] <carlos> if I have write acces I could do anything I want?
[01:38] <SteveA> carlos: we'll need to talk about that.  but not right now
[01:38] <carlos> ok
[01:39] <SteveA> next, there are various places in the code where we have "from canonical.launchpad.interfaces import *"
[01:39] <sabdfl> in general - launchpad.Admin would allow you to do almost anything except break it
[01:39] <sabdfl> launchpad.Edit would let you edit it, so title, shortdesc, description, properties typically
[01:39] <cprov> sabdfl: how to define launchpad.Admin in DB ? I know it's necessary, I just wonder how to define it .
[01:39] <sabdfl> cprov: stevea will explain the mechanism
[01:39] <SteveA> I want to see the actual interfaces that are used explicitly mentioned in imports.  It is a bit more typing, but it keeps the code clearer, and dependencies clearer.
[01:40] <sabdfl> so no more import *?
[01:40] <kiko> import * == evil
[01:40] <SteveA> the only time we should use import * is when the module concerned defines an __all__ tuple
[01:40] <SteveA> for interfaces, there are just too many of them
[01:40] <SteveA> and the code's dependencies become unclear
[01:42] <SteveA> debonzi: can you do a clean-up job on that?  we can discuss the details after the meeting.
[01:43] <debonzi> SteveA, sure
[01:43] <SteveA> thanks
[01:43] <SteveA> lifeless: is Zope 3 SVN being sucked into the supermirror yet?
[01:43] <lifeless> SteveA: not yet, will be trying it later today
[01:43] <SteveA> ok.
[01:44] <SteveA> we shall be upgrading our zope 3 soon.  I've tested the code with the latest zope, and all our tests pass.
[01:44] <SteveA> lifeless: you noted some problems with the dogfood server
[01:45] <lifeless> yeah
[01:45] <lifeless> changing my password gave me an exception
[01:45] <lifeless>     *  Module zope.tales.tales, line 698, in evaluate
[01:45] <lifeless>       return expression(self)
[01:45] <lifeless>       /srv/launchpad.ubuntu.com/launchpad-dogfood/lib/canonical/launchpad/templates/passwd-change.pt
[01:45] <lifeless>       Line 18, Column 0
[01:45] <lifeless>       Expression: <PathExpr standard:'view/getResult'>
[01:45] <lifeless>          - Names:
[01:45] <lifeless>             {'args': (),
[01:45] <lifeless>              'context': <canonical.auth.PasswordChangeApp object at 0xcc2ce6c>,
[01:45] <lifeless>              'default': <object object at 0x401bf470>,
[01:45] <lifeless>              'loop': {},
[01:46] <lifeless>              'nothing': None,
[01:46] <lifeless>              'options': {},
[01:46] <lifeless>              'repeat': {},
[01:46] <lifeless>              'request': <zope.publisher.browser.BrowserRequest instance URL=https://launchpad.ubuntu.com/ubuntulinux/forgottenpassword/m4gmcl43sz86s9qxdf2mz9v94lqbd27xblp0zn34/index.html>,
[01:46] <lifeless>              'template': <zope.app.pagetemplate.viewpagetemplatefile.ViewPageTemplateFile object at 0x4143ec4c>,
[01:46] <lifeless>              'usage': <zope.pagetemplate.pagetemplate.TemplateUsage object at 0xcd01cac>,
[01:46] <lifeless>              'view': <zope.app.pagetemplate.simpleviewclass.SimpleViewClass from /srv/launchpad.ubuntu.com/launchpad-dogfood/lib/canonical/launchpad/templates/passwd-change.pt object at 0xcd016ac>,
[01:46] <lifeless>              'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object at 0xcd0168c>}
[01:46] <lifeless>     * Module zope.tales.expressions, line 204, in __call__
[01:46] <lifeless>       return self._eval(econtext)
[01:46] <lifeless>     * Module zope.tales.expressions, line 198, in _eval
[01:46] <lifeless>       return ob()
[01:46] <lifeless>     * Module canonical.auth.browser, line 123, in getResult
[01:46] <BradB> dude
[01:46] <lifeless>       encryptor = getUtility(IPasswordEncryptor)
[01:46] <lifeless> NameError: global name 'getUtility' is not defined
[01:46] <lifeless> sorry :|
[01:47] <SteveA> looks like a shallow bug, but we need to look at improving the tests of the password change app
[01:47] <SteveA> I want to do something neat with testing that email gets sent, so I'll take on fixing this.
[01:47] <SteveA> lifeless: can you stick a bug in malone (if someone can change your password on mawson for you?)
[01:48] <BradB> There's already a bug about the email link being broken too, not sure if it mentions that the screen itself raises an exception.
[01:48] <carlos> SteveA: so do we have already the form to update the user data outside rosetta?
[01:48] <SteveA> I assume that since lifeless had a problem while changing his password, he can't log in at the moment
[01:48] <lifeless> happy to , if someone sets my pw
[01:48] <lifeless> BradB: I copied the url and adjusted by hand
[01:48] <stub> On it (if I can remember how to encrypt them)
[01:48] <SteveA> BradB: we need a launchpad-branded forgotten password app too, not just an ubuntu branded one
[01:48] <SteveA> thanks stub
[01:49] <BradB> SteveA: yes, indeed :)
[01:49] <SteveA> BradB: care to file a bug on that?
[01:49] <BradB> sure
[01:49] <SteveA> thanks
[01:49] <SteveA> ok, that's it for general launchpad stuff
[01:50] <SteveA> apps... malone?
[01:50] <BradB> Malone!
[01:50] <BradB> Malone's doing pretty good, I think.
[01:50] <BradB> I just implemented one-click bug assignment accept/reject yesterday.
[01:50] <sabdfl> nice!
[01:50] <BradB> Not sure how well it'll work in every browser, but alas, that's how it goes with writing .js.
[01:51] <sabdfl> i've split out cve and url references
[01:51] <sabdfl> they now work separately
[01:51] <BradB> To see it, you just have to be logged in when you use the dogfood app.
[01:52] <BradB> There's this really good article I think everyone should read: http://www.adambosworth.net/archives/000031.html
[01:52] <BradB> It's a blog post, actually.
[01:52] <SteveA> what is it about?
[01:52] <BradB> SteveA: writing software
[01:52] <lifeless> SteveA: also the initZopeless thing
[01:52] <BradB> more specifically, writing software for normal human beings
[01:52] <BradB> My concern is that from time to time we're making decisions about Launchpad that cater more to our database schema than to those who will be our users.
[01:53] <BradB> i had some thoughts about how to make Malone more user-friendly.
[01:53] <SteveA> lifeless: yep, thanks for the reminder
[01:54] <kiko> BradB, sabdfl: if you like, I would like to sit with you at bara and do a massive UI review based on my usage of malone in the past
[01:54] <kiko> I want to do it there because bandwidth is better and because you'll have a chance to fix up the things I've suggested in the past already
[01:54] <BradB> the one-click accept/reject is one such "oh cool" feature, i think. we need a lot more "oh cool" features though in launchpad, because Malone at least is occassionally bordering on something a human being is not going to be able to use.
[01:54] <sabdfl> kiko: are you using utf-8?
[01:54] <sabdfl> i missed the first message
[01:54] <BradB> kiko: sure
[01:54] <kiko> ah. no. one sec
[01:54] <kiko> bara
[01:54] <kiko> better? :)
[01:55] <Kinnison> yes
[01:55] <sabdfl> BradB: i think we can resolve these issues
[01:55] <kiko>  BradB, sabdfl: if you like, I would like to sit with you at bara and do a massive UI review based on my usage of malone in the past
[01:55] <sabdfl> right now, malone is largely a set of views on nderlying tables
[01:55] <carlos> kiko: that's a football team :-)
[01:55] <BradB> i started thinking about google a bit last night, and then had some ideas for how to improve malone's bug listing.
[01:55] <sabdfl> this is partly because the zope3 auto-form machinery works that way
[01:55] <sabdfl> it wants to add or edit an object, and our underlying oibjects are stored in tables
[01:56] <elmo> [are the "what to import" package choices stress testing for a random function or something?  'cos they're very random] 
[01:56] <sabdfl> we need to have a form which affects multiple tables
[01:56] <kiko> BradB, cool
[01:56] <sabdfl> an action that affects multiple tables
[02:11] <sabdfl> elmo: what to import?
[02:11] <SteveA> the easiest way to do that is to make a content object that represents data spread across tables
[02:11] <BradB> sabdfl: wanna hear my idea for how to simplify the bug listing? there's not much to it, really, but i think it'll help.
[02:11] <SteveA> and then use a form that presents / edits that content object
[02:11] <elmo> sabdfl: into buildbot/tla/whateverit'scalledongalapagos
[02:11] <sabdfl> BradB: not here! later
[02:11] <BradB> ok
[02:11] <sabdfl> elmo: as i understand it lifeless started with packages a* b* c* plus whatever people have pushed for
[02:11] <BradB> SteveA: the main things malone needs are 1. a zope upgrade, 2. a solution for batching aggregate result sets. (i.e. batching more than one SelectResults in the same Batch.)
[02:11] <elmo> people pushed for thai-ttf and upx ? :)
[02:11] <elmo> anyway, sorry, it's not relevant to the meeting..
[02:11] <BradB> #1 is for the super widget, of course, #2 to solve the problem that rendering the bug listing takes 1m, 30s for 7,000 bugs :/
[02:11] <stub> Edit forms can be used to generate arbitrary forms - we already do that in the bug add form where we capture information for bugassignments as well. Implementation can follow once we decide on the design ;)
[02:11] <sabdfl> stub: it seems silly to have to create a new schema for the form
[02:11] <lifeless> elmo: I'm running them all serially
[02:11] <stub> sabdfl: You have to define the form *somewhere*, and a schema is a nice place to do it.
[02:11] <BradB> sabdfl: the other option is to handwrite your form's HTML and validation, which isn't so nice. :) we really need a browser:form directive in Malone too. :) Jim Fulton and Stephan Richter we're talking about generalizing the directive the other day, so things are heading in the right direction, it would seem.
[02:11] <SteveA> can we get a list of things that malone needs to have / do before barcelona?
[02:11] <sabdfl> BradB: in general the form elements are already defined as part of existing schemas
[02:11] <sabdfl> seems wasteful to have to redefine them
[02:11] <sabdfl> which means rewriting the title and description
[02:11] <sabdfl> trranslating it all again
[02:11] <sabdfl> and remembering to update it
[02:11] <BradB> sabdfl: i think that comes down to inheritance (if not, how else would you want it to work?)
[02:11] <sabdfl> i have to step away for an hour or so, will catch up on scrollback
[02:11] <SteveA> we'll sort out the browser:form or launchpad:form directive
[02:11] <BradB> SteveA: here's what Malone needs for Barcelona, from where I'm standing.
[02:11] <BradB> 1. the super select widget. i started going on this, but i need us to keep fairly up-to-date on Zope 3 to make it happen, because I need Sources.
[02:11] <stub> You could dynamicaly generate a schema (these fields from this interface, these fields from that. Just needs implementation)
[02:11] <BradB> 2. fast bug listing. the bug listing page needs to be pretty much instant, but there's still a rather complex issue there (the one about batching more than one SelectResults at a time.)
[02:11] <SteveA> can we talk about batching in some more detail after this meeting?
[02:11] <BradB> sure
[02:11] <BradB> i'm trying to think of what else is absolutely needed...stub?
[02:11] <SteveA> the goal is so that we can show off malone to everyone in barcelona, and also roll it out to the golden system at that time.
[02:11] <BradB> e.g. i can think of tons of things to improve: the bug listing can become a lot more googlish and simple to work with, the bug assignments editing screens need to remind me what bug i'm working on, the notification emails need to be reformatted and perhaps reworded a bit, etc.
[02:11] <stub> No idea what is needed for barcelona. Depends on what we need to do with it at Barcelona ;) If we need to sit down the Ubuntu people and steer them through it, we need to do whatever Martin thinks is necessary for instance.
[02:11] <kiko> yes, of course
[02:11] <dilys> New Malone bug #77: "Implement a potemplate form handler", submitted by Carlos Perell Marn
[02:11] <dilys> https://launchpad.ubuntu.com/malone/bugs/77
[02:11] <SteveA> you'll also need to do some work on permissions, I expect
[02:11] <SteveA> that is, defining permissions on various operations that not everyone should do
[02:11] <carlos> BradB: and the package/source search should show the package name not the number after select it (to be more userfriendly :-P)
[02:11] <BradB> SteveA: also, malone still doesn't have enough states, and we should be able to attach a note every time we edit basically anything.
[02:11] <BradB> SteveA: not the least of which means having to attach a note when we mark an assignment resolve, or update an infestation, or whatever.
[02:11] <SteveA> do we have bugs on each of these things we need to do?
[02:11] <BradB> some, yeah, e.g. the note thing. some not yet, because it requires talking to sabdfl to confirm.
[02:11] <BradB> which has thus far not been a priority.
[02:11] <SteveA> it is okay to file such things as bugs
[02:11] <SteveA> bugs can always be rejected / deprioritized etc
[02:11] <BradB> ok
[02:11] <SteveA> (is "deprioritized" a word?)
[02:11] <SteveA> the thing is, it gets the ideas out into public view, so others can think about them
[02:11] <BradB> yeah
[02:11] <SteveA> ok, cool
[02:11] <SteveA> can we talk about soyuz now
[02:11] <SteveA> Kinnison: want to start with gina?
[02:11] <stub> from when I used batching: https://launchpad.ubuntu.com/malone/bugs/40
[02:12] <Kinnison> Gina is almost ready for prime-time
[02:12] <Kinnison> sabdfl and I identified a number of areas of improvement she needed in order to be suitable for doing hoary for everyone (where doing == tracking)
[02:12] <Kinnison> I've closed all but one or two minor ones of those now
[02:13] <Kinnison> Some of you will have noticed the database additions it needed. I've not done the sqlobject changes for those yet
[02:13] <Kinnison> If someone else wants to pick those up I'd be grateful
[02:14] <SteveA> can one of the async guys help?
[02:14] <Kinnison> I imagine cprov could do it fairly quickly
[02:14] <Kinnison> cprov is now working with me on lucille related stuff
[02:14] <Kinnison> This means cprov will have knowledge of both the front and back ends of the package parts of soyuz which will really help matters a lot
[02:15] <cprov> Kinnison: if you think I'm able to do it I can :)
[02:15] <SteveA> ok
[02:15] <SteveA> what else from the soyuz world?
[02:15] <Kinnison> https://wiki.canonical.com/Lucille_2fBraindump contains a braindump of most of what I'll be doing up until the end of es-conf
[02:15] <Kinnison> and some of beyond there
[02:15] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Add advanced authorization stuff. (patch-859)
[02:16] <SteveA> does someone want to talk with me about permissions needed for doing certain things in soyuz? 
[02:16] <Kinnison> It's exactly what it says on the tin though -- a braindump. I put it there so that it would be recorded
[02:16] <cprov> people branch was moved from Soyuz to FOAF by salgado ..  it has effects in permission, of course, I'd like to talk about launchpad.Admin bits if possible 
[02:17] <SteveA> ok, let's chat about that after this meeting sometime today
[02:17] <dilys> New Malone bug #78: "Forgotten password screen needs to be branded for Launchpad", submitted by Brad Bollenbach
[02:17] <dilys> https://launchpad.ubuntu.com/malone/bugs/78
[02:17] <cprov> SteveA: ok
[02:17] <daf> hi
[02:17] <SteveA> hi daf
[02:18] <carlos> daf: you should use evolution ;-)
[02:19] <SteveA> kiko: anything else to report on soyuz?
[02:19] <SteveA> how are we doing for being able to give a kick ass demo in spain?
[02:21] <carlos> don't know if that's possible...
[02:21] <carlos> but
[02:21] <carlos> what about doing a demo to build a Linex and/or Guadalinex using soyuz?
[02:22] <SteveA> let's come back to soyuz in a bit
[02:22] <SteveA> rosetta:
[02:22] <kiko> SteveA, yep
[02:23] <SteveA> oh, okay, backto soyuz
[02:23] <SteveA> go ahead kiko
[02:23] <kiko> SteveA, sabdfl and I will lay down the final soyuz plan for mataro this afternoon, followed by an lp-br-meeting on getting this all done in time
[02:23] <kiko> debonzi is cleaning up the house
[02:24] <kiko> he'll be key in getting the soyuz features done the following weeks
[02:24] <kiko> cprov is busy with Kinnison, and kinni's best to update on that
[02:24] <SteveA> will you post the mataro plan to the list?
[02:24] <kiko> salgado's been moving person bits around and will start hacking the karma bits in a second
[02:24] <kiko> (I typed karnal first there, some psychologist read into that)
[02:24] <kiko> SteveA, you bet
[02:25] <SteveA> cool
[02:25] <kiko> SteveA, I'll also call for anyone giving a final roundup for soyuz features pre-mataro 
[02:25] <kiko> so if anyone has a pet feature they want to see done, time to speak up
[02:25] <SteveA> maybe get elmo to give it a quick look
[02:25] <kiko> (apart from that we have tickets emitted and travel plans finally set up)
[02:25] <kiko> I'll bother him
[02:25] <SteveA> ok
[02:26] <SteveA> let's talk about rosetts
[02:26] <SteveA> let's talk about rosetta
[02:26] <kiko> soyuz needs some extra borka-borka in the zcml files, salgado and I are looking into it
[02:26] <kiko> we would like to get rid of a whole array of solitary <page stanzas
[02:26] <kiko> but it may be we need some extra ZCML bits, I'll post you on the result of that
[02:27] <kiko> I'm also going to do a final SQL roundup to try murdering spurious queries I'm seeing
[02:27] <SteveA> kiko: sure.  I can make zcml directives very quickly for this kind of thing
[02:27] <SteveA> daf, carlos: how is rosetta doing?
[02:27] <kiko> this bothers me significantly because I think it's a major perf-hog
[02:27] <kiko> and finally
[02:27] <kiko> we will bear gifts for mataro
[02:27] <kiko> just wait and see
[02:28] <kiko> over and out
[02:28] <carlos> SteveA: we are working on the import from the web feature
[02:28] <SteveA> how is that going?
[02:28] <SteveA> is the form done?
[02:28] <carlos> it has some delays because I had to get yesterday free for non canonical tasks
[02:28] <carlos> will work on saturday
[02:29] <daf> it's nearly done
[02:29] <SteveA> before we make rosetta go totally live, it must be possible to get new pot and po files into the system without your or daf's intervention
[02:29] <SteveA> daf: how many hours is "nearly" ?
[02:29] <carlos> if nothing goes wrong, today I will do my part of the work
[02:29] <dilys> New Malone bug #79: "Bug listing needs default search criteria to be user-sensitive", submitted by Brad Bollenbach
[02:29] <dilys> https://launchpad.ubuntu.com/malone/bugs/79
[02:29] <daf> perhaps two more
[02:29] <SteveA> daf: can you work on it right after the meeting?
[02:30] <SteveA> tell me if you need help with this.  I have time to help with rosetta.
[02:30] <SteveA> keep me up to date with how the work is going.  don't worry about mailing me several times a day to tell me how things are going
[02:30] <daf> I'll let you know if I have trouble
[02:30] <SteveA> let me know about successes too
[02:31] <daf> I've been invited to a thanksgiving dinner today, so I'll be leaving work early
[02:31] <SteveA> ok, cool
[02:31] <SteveA> veggie turkey?
[02:32] <carlos> X-)
[02:33] <daf> :)
[02:33] <Kinnison> we appear to be side-tracking
[02:34] <SteveA> what is left to do to get rosetta so that I can upload po files and translate them?
[02:34] <carlos> SteveA: the upload part
[02:35] <daf> the view class for the upload form needs to be finished
[02:35] <daf> hmm, I need some clarification here
[02:35] <SteveA> so, you can store the raw template inthe database?
[02:35] <daf> yes
[02:35] <SteveA> and go to a url to tell the system to actually import the template?
[02:36] <daf> wait, no
[02:36] <daf> there's an upload form
[02:36] <daf> but the view class doesn't write to the database yet
[02:37] <SteveA> I want to see a list of tasks, either as bugs in malone, or on a wiki page
[02:37] <daf> ok, I'll do that right away
[02:38] <SteveA> then see these tasks getting completed, as we move towards getting this rosetta import stuff done
[02:38] <SteveA> thanks
[02:38] <SteveA> anyone with experience hacking on initZopeless ?
[02:38] <SteveA> stub: ?
[02:39] <daf> no, but I've used it a fair bit
[02:39] <SteveA> anything else from anyone else?
[02:39] <stub> I havn't hacked it
[02:39] <dilys> New Malone bug #80: "Bug titles/descriptions need to be text searchable", submitted by Brad Bollenbach
[02:39] <dilys> https://launchpad.ubuntu.com/malone/bugs/80
[02:39] <SteveA> lifeless reported a problem where it doesn't seem to be coping properly committing a second transaction in a row
[02:39] <stub> Mmm... need to look into fulltext searching for PostgreSQL...
[02:40] <SteveA> ok, let's finish up
[02:40] <SteveA> last 10 seconds to bring up other issues...
[02:41] <BradB> smart diff output!
[02:41] <SteveA> oh yeah, how is that going?
[02:41] <BradB> we need something that works. it continues to cost us at least 10-15 hours a week.
[02:41] <daf> I've noticed a problem with SQL errors
[02:41] <stub> Some of our sourcepackagebugassignments had been changed from sourcepackage 4 to sourcepackage 14. Anyone might have screwed up modifying the data? Or do we have a deeper problem somewhere?
[02:41] <stub> (on dogfood)
[02:42] <kiko> stub, I had some odd issues where I filed bugs on product 4 and ended up with them assigned to some other bizarre product.
[02:42] <stub> That would be it.
[02:43] <stub> Might have a bug hiding there - posibly in the new popup widgets.
[02:43] <kiko> I reported to BradB who convinced me the new picker would sort that out!
[02:43] <SteveA> let's get bugs invariably put into malone
[02:43] <SteveA> not just told to people
[02:43] <SteveA> otherwise, they can get lost, or people can waste time unnecessarily
[02:44] <kiko> agreed, it was a bad call
[02:44] <BradB> SteveA: they are reported though
[02:44] <SteveA> ok, cool
[02:45] <daf> I've noticed that if there's a database error, Launchpad won't work until it's restarted
[02:45] <daf> "DatabaseException: ERROR: current transaction is aborted, commands ignored until end of transaction"
[02:45] <SteveA> daf: report as bug please
[02:45] <daf> it seems the transaction is never aborted after an error
[02:45] <daf> ok, will do
[02:45] <BradB> SteveA: i'd really like to hear an answer on the diff output though. it drives me nuts when page tests fail.
[02:45] <SteveA> stub: can you look into that?
[02:45] <BradB> i.e. because they take forever to fix.
[02:45] <SteveA> (the transactions, not the diff)
[02:45] <stub> Sure
[02:45] <SteveA> BradB, cprov: what was the outcome of cprov's experiments?
[02:46] <BradB> SteveA: i responded on lp@. i was hoping for something checked in that we can all use out-of-the-box.
[02:46] <SteveA> to summarize...
[02:46] <SteveA> there is something that works, but it needs patches to python.  is that so?
[02:47] <BradB> yeah
[02:47] <SteveA> ok, I'll get that into launchpad
[02:47] <stub> I gave it a go re: the diffs, but I was too clever and it didn't work. The difflib.py is in lib/canonical, and there is a bit of a patch in test.py commented out.
[02:47] <SteveA> ah, okay
[02:47] <Kinnison> is the meeting over? I need to get lunch?
[02:47] <SteveA> stub: you mean, the new diff stuff didn't work, or your hack didn't work.
[02:48] <stub> My hack - I was trying to avoid patching Z3. At least I hope it was my hack - I havn't tested it 'normally' yet.
[02:48] <BradB> SteveA: and one more thing: I'd like to hear a concrete answer on when i have the machinery to be able to put Bug URLs in email notifications. having a URL in an email is a fairly small, yet all so important thing.
[02:48] <dilys> New Malone bug #81: "transactions are not aborted when database errors occur", submitted by Dafydd Harries
[02:48] <dilys> https://launchpad.ubuntu.com/malone/bugs/81
[02:49] <SteveA> Kinnison: go for it
[02:50] <SteveA> BradB: bug filed on it?
[02:50] <SteveA> file that on me if you like, as I'm dealing with URL issues here in london
[02:50] <BradB> SteveA: yeah, it's been there and assigned to you for a long time :)
[02:50] <debonzi> SteveA, do you want to talk about the import work now?
[02:51] <BradB> SteveA: you had said a while back that you were going to work on it
[02:51] <SteveA> ok, cool.  I haven't started on the url work yet, but it is on the list after security.
[02:51] <daf> BradB: hmmm
[02:51] <dilys> New Malone bug #82: "Possible initZopeless transaction issues", submitted by Stuart Bishop
[02:51] <dilys> https://launchpad.ubuntu.com/malone/bugs/82
[02:51] <daf> BradB: I'm submitting a bug
[02:51] <cprov> SteveA: Brad is right ! what I've done, patching difflib, is something very difficult to be submited to lib upstreamer, kiko is working on it, but for a moment I suggest we keep our patched difflib, that also contains some bug yet . 
[02:51] <daf> BradB: I've got the notification message
[02:51] <daf> but the response from Launchpad itself timed out
[02:52] <dilys> New Malone bug #83: "Filter criteria widgets should be moved to an "Advanced Search" screen", submitted by Brad Bollenbach
[02:52] <dilys> https://launchpad.ubuntu.com/malone/bugs/83
[02:52] <BradB> if it happens consistently, it might be cause for concern, otherwise i wouldn't worry about it
[02:52] <SteveA> ok.  meeting over.
[02:52] <SteveA> thanks folks
[02:52] <daf> this is the first time it's happened, I'll file a bug if it happens again
[02:53] <SteveA> BradB: we'll chat later today about batching
[02:53] <SteveA> cprov: we'll talk later today about permissions 
[02:53] <SteveA> debonzi: okay, let's talk about the import thing.
[02:53] <carlos> later!
[02:53] <debonzi> SteveA, cool
[02:54] <cprov> SteveA: sure
[02:54] <SteveA> debonzi: so, in various places in the code, we have the line:
[02:54] <SteveA>    from canonical.launchpad.interfaces import *
[02:55] <SteveA> what we should have instead is the following:
[02:55] <SteveA>    from canonical.launchpad.interfaces import IFoo, IBar
[02:55] <SteveA> if there are lots and lots of interfaces to be imported, then use separate lines of 79 chars each max
[02:55] <SteveA>    from canonical.launchpad.interfaces import IFoo, IBar, IBaz, ISpoo
[02:55] <SteveA>    from canonical.launchpad.interfaces import IBug, IProduct, IBazaar
[02:55] <elmo> lifeless: ?
[02:55] <debonzi> right.. even in the __init__.py inside the interfaces package?
[02:56] <SteveA> that line doesn't occur in that file
[02:56] <SteveA> it is only the exact line I wrote:
[02:56] <SteveA>    from canonical.launchpad.interfaces import *
[02:57] <SteveA> lib/canonical/arch/broker.py
[02:57] <SteveA> lib/canonical/launchpad/browser/product.py
[02:57] <SteveA> lib/canonical/launchpad/browser/project.py
[02:57] <SteveA> lib/canonical/launchpad/database/bug.py
[02:57] <SteveA> lib/canonical/launchpad/database/bugextref.py
[02:57] <SteveA> lib/canonical/launchpad/database/sourcesource.py
[02:57] <SteveA> lib/canonical/launchpad/database/product.py
[02:57] <debonzi> Right, but we do have in canonical/interfaces/__init__.py for example from canonical.launchpad.interfaces.pofile import * 
[02:57] <SteveA> lib/canonical/launchpad/database/bounty.py
[02:57] <SteveA> lib/canonical/launchpad/database/cveref.py
[02:57] <SteveA> lib/canonical/launchpad/database/infestation.py
[02:57] <SteveA> lib/canonical/launchpad/database/bugassignment.py
[02:57] <SteveA> lib/canonical/launchpad/database/project.py
[02:57] <SteveA> 
[02:57] <SteveA> that's the list of files
[02:57] <elmo> ok, launchpad.ubuntu.com switched to macquarie
[02:57] <SteveA> yes.  that is okay.
[02:58] <debonzi> SteveA, right.. Im gonna do that .. 
[02:58] <elmo> lifeless: ^---
[02:58] <SteveA> ok, great.  thank you
[02:58] <debonzi> You are welcome :(
[02:58] <debonzi> :)
[02:59] <dilys> New Malone bug #84: "Malone is ungrammatical about input errors", submitted by Dafydd Harries
[02:59] <dilys> https://launchpad.ubuntu.com/malone/bugs/84
[02:59] <BradB> stub: uh, that is /bizarre/. i just reported bug 83 and it's not in Malone (you can even see the dilys notification a little bit back in the scrollback)
[03:00] <daf> hmmm
[03:00] <daf> I wonder if it's related to the changes elmo was making
[03:01] <daf> it might explain why I didn't get a HTTP response
[03:01] <stub> All the bugs are gone
[03:01] <BradB> what the hell^Wheck?
[03:01] <daf> hmm, I can see some
[03:02] <daf> https://launchpad.ubuntu.com/malone/bugs/84 works for me
[03:02] <BradB> i can't see any
[03:02] <stub> its in your cache. All the sourcepacakges are gone too.
[03:02] <BradB> daf: it's browser cache dude
[03:02] <BradB> stub: what's going on?
[03:02] <stub> They are in the db...
[03:02] <stub> hmm..
[03:02] <BradB> oh, ok, phew
[03:03] <BradB> [08:56]  <elmo> ok, launchpad.ubuntu.com switched to macquarie
[03:03] <BradB> elmo: eh, why?
[03:03] <daf> aha
[03:03] <daf> https://dogfood.ubuntu.com/malone/bugs/
[03:04] <elmo> BradB: because sabdfl told me to
[03:04] <cprov> SteveA: we are going to have lunch, I'll be back in 1 hour, any problem for you and our brief meeting?
[03:04] <SteveA> no problem.  I need to take a break for a while
 can we shuffle the current launchpad.ubuntu.com to dogfood.canonical.com, and make launchpad.ubuntu.com point at macquarie's production launchpad server?
[03:04] <elmo> BradB: --^
[03:05] <cprov> SteveA: right, see you soon
[03:05] <elmo> well, I got the domain name of dogfood wrong, but.. details ;)
[03:05] <BradB> #83 seems to have been lost into the ether
 elmo: we cover enough timezones to be able to fix any issues, so Just Do It
[03:06] <SteveA> did dilys report my latest merge to RF?
[03:06] <elmo> BradB: dude, I asked if anyone should be around, and that's what I was told
[03:07] <SteveA> sabdfl should have mailed the launchpad list
[03:07] <BradB> SteveA: indeed :)
[03:09] <BradB> elmo: is there a need for LP to be running on macquarie right now? if not, perhaps we could stop it, so that we don't have to migrate bugs between servers and field responses from #launchpad'ers about what's where.
[03:09] <BradB> elmo: e.g. a patch saying that the dogfood server was moved to [link]  would be handy.
[03:09] <BradB> page, even
[03:09] <sabdfl> erm, sorry guy, should have mailed the list
[03:09] <sabdfl> s
[03:10] <sabdfl> but thanks for getting it done elmo, this allows us to prepare the production server for barcelona
[03:20] <BradB> daf: this'll mean a dilys update i guess too eh?
[03:23] <daf> BradB: good point
[03:23] <daf> BradB: just a config file change, though
[03:24] <BradB> cool
[03:25] <dilys> New Malone bug #85: "Filter criteria widgets should be moved to an "Advanced Search" screen", submitted by Brad Bollenbach
[03:25] <dilys> https://dogfood.ubuntu.com/malone/bugs/85
[03:34] <dilys> New Malone bug #86: "Bug listing needs "Quick Searches"", submitted by Brad Bollenbach
[03:34] <dilys> https://dogfood.ubuntu.com/malone/bugs/86
[03:41] <Kinnison> I'm back but eating if anyone needs to ask me anything
[03:56] <carlos> Kinnison: dude, you shouldn't eat near the laptop 
[03:57] <carlos> you are too addict to it :-)
[04:00] <Kinnison> carlos: heh
[04:11] <kiko> fala salgado 
[04:12] <salgado> yo kiko!
[04:19] <lifeless> elmo: ?
[04:20] <elmo> lifeless: 'sup
[04:20] <lifeless> you did a? at me before
[04:21] <elmo> lifeless: was seeing if you were around - wanted to let you know about the launchpad.u.c move
[04:23] <carlos> lifeless: any chance to get Debian ppc packages of bazaar without doing self compilation?
[04:23] <Kinnison> kiko: I think I've eliminated all cases of FMO from warty in gina now ;-)
[04:24] <kiko> NO!
[04:24] <kiko> that was 50% of gina's personality
[04:24] <kiko> troup and trout
[04:24] <kiko> is that going away too?
[04:24] <elmo> lifeless: oh! you have accounts on concordia and davis btw
[04:24] <lifeless> elmo: oh yeah, do I have that ppc account yet ?
[04:24] <elmo> lifeless: I'll make accounts for pqm later
[04:24] <elmo> so you can set up something more automatic
[04:25] <Kinnison> kiko: The error is still present
[04:25] <Kinnison> kiko: I mean I've fixed it so that it doesn't need to generate the error to parse warty
[04:25] <Kinnison> it does warty cleanly. udebs and all
[04:25] <elmo> lifeless: btw, if you've never used dchroot before, it's 'dchroot -c hoary'
[04:25] <elmo> to get a shell in the hoary chroot
[04:26] <elmo> tla's build-deps should be installed - I assume that'll suffice
[04:26] <kiko> Kinnison, ah; well, the error was caused IIRC by the archive being outdated, no?
[04:27] <Kinnison> kiko: The error was related to gina being unable to find a sourcepackagerelease for a given binarypackage
[04:27] <Kinnison> kiko: Now; some of those were hard to solve; some were simple
[04:27] <kiko> canyou elaborate? why would we not be able to find a SPR for a BP?
[04:28] <Kinnison> It is because a binarypackage exists that the sourcepackage doesn't exist for; or in this case that the binarypackage's version was shorter than the sourcepackagerelease's version rather than longer so your regexp didn't catch it
[04:29] <Kinnison> I'm not convinced I've covered all the bases correctly but I'll see in time
[04:29] <Kinnison> (and btw, I'm only talking about a clean import of warty/main,restricted not universe
[04:29] <Kinnison> universe is still full of amusement for me
[04:30] <BradB> Should I be running hoary these days? e.g. is it reasonable safe to s,warty,hoary, in my sources.list, apt-get update and apt-get dist-upgrade?
[04:30] <BradB> s/ble/bly/
[04:34] <Kinnison> I'm not gonna put hoary on any of my systems until after es-conf
[04:34] <Kinnison> because I'm a paranoid goit
[04:36] <lifeless> so whats my new password ?
[04:37] <SteveA> "tomlordisanasshat"
[04:37] <SteveA> only kidding.
[04:39] <lifeless> hahaonlyserious
[04:39] <lifeless> seriuosly, for dogfood
[04:40] <lifeless> elmo
[04:40] <SteveA> stub said he'd change it for you
[04:40] <SteveA> stub has gone
[04:40] <lifeless> can we get python 2.4 on production servers ?
[04:40] <SteveA> in addition to python2.3?
[04:41] <carlos> BradB: I'm using hoary since some weeks already
[04:41] <carlos> BradB: I didn't had any problem with it (yet)
[04:41] <lifeless> looks like we may have a python2.3 interacting with twisted problem
[04:42] <SteveA> oh suck
[04:42] <SteveA> fixed in 2.4?
[04:42] <elmo> the soyuz list got subsumed into launchpad, right ?
[04:42] <kiko> yes, it did.
[04:43] <lifeless> ddaa reckons so
[04:43] <SteveA> hello david
[04:43] <ddaa> I'm not sure what lifeless says I'm thinking, but I want my lawyer!
[04:43] <SteveA> we could move to 2.4 for launchpad, but I'd want to chat to zope3 developers first
[04:43] <lifeless> 02:40 < lifeless> can we get python 2.4 on production servers ?
[04:43] <lifeless> 02:40 < SteveA> in addition to python2.3?
[04:43] <lifeless> 02:41 < carlos> BradB: I'm using hoary since some weeks already
[04:43] <lifeless> 02:41 < carlos> BradB: I didn't had any problem with it (yet)
[04:43] <lifeless> 02:41 < lifeless> looks like we may have a python2.3 interacting with twisted problem
[04:43] <lifeless> 02:42 < SteveA> oh suck
[04:43] <lifeless> 02:42 < SteveA> fixed in 2.4?
[04:43] <ddaa> thanks
[04:44] <ddaa> SteveA: difficult to say what is fixing the issue... it's very empirical.
[04:44] <BradB> moving to 2.4 ASAP would rox0r
[04:44] <lifeless> elmo: can you copy the importd@galapagos .ssh dir to roomba@galapagos's one for me please ?
[04:44] <SteveA> ddaa: but, is it fixed in 2.4?
[04:44] <SteveA> as in, if you use 2.4, does the problem go away
[04:44] <ddaa> SteveA: it seems to go away.
[04:44] <ddaa> But since that's an intermittent problem by nature, it's hard to say.
[04:48] <ddaa> * hard to tell
[04:49] <salgado> lifeless, should I mail you my gpg key id/fingerprint to get it registered in PQM?
[04:49] <lifeless> elmo: yes
[04:49] <lifeless> bah
[04:49] <lifeless> salgado: yes
[04:50] <lifeless> elmo: so, ping
[04:52] <lifeless> elmo: I'm asking you because I don't have write permission to .ssh
[04:52] <elmo> lifeless: yeah, one sec, I'm just in the middle of osmething
[04:53] <salgado> lifeless, your email is?
[04:57] <BradB> SteveA: When do you want to discuss the batching problem?
[04:57] <BradB> I'd love to make the bug listing surprisingly fast.
[04:58] <elmo> lifeless: done... [point of information, you can write to .ssh, just copy it somewhere else, rm -fr the root owned original - you own the directory it's in] 
[04:59] <BradB> SteveA: Oh, and upgrading Z3, for that matter.
[05:01] <SteveA> what is there to discuss about upgrading zope 3?
[05:02] <BradB> SteveA: When will it be upgraded?
[05:02] <BradB> SteveA: "be upgraded" meaning a mail to lp@ saying how I get the latest and greatest Z3 running with launchpad.
[05:03] <SteveA> in the meeting, lifeless said that he was working on it today
[05:04] <BradB> I missed that bit. Okay, so maybe today then, cool.
[05:04] <BradB> SteveA: got time to discuss batch-fu then?
[05:05] <elmo> is the arch commits list still live?
[05:06] <SteveA> BradB: I will in a bit I hope.  I'm helping bob2 debug some nasty nasty transactions problem
[05:06] <bob2> elmo: yup
[05:07] <BradB> SteveA: ok
[05:07] <elmo> bob2: thanks
[05:20] <dilys> New Malone bug #87: "Need to be able to Cc people when adding a bug", submitted by Brad Bollenbach
[05:20] <dilys> https://dogfood.ubuntu.com/malone/bugs/87
[05:21] <bob2> salgado: he's robert@canonical.com
[05:22] <BradB> elmo: would it be possible to shutdown the LP instance at launchpad.ubuntu.com? I can see two possible problems now that the app lives at a different URL 1. confusion, 2. the dogfood having some hardcoded instances of launchpad.ubuntu.com, and things inadvertently happening to what is ultimately going to be the live LP app.
[05:22] <bob2> erm, which one should we be using then?
[05:22] <BradB> elmo: er, shutdown and include a simple message saying where the dogfood instance lives now, etc.
[05:22] <bob2> dogfood.u.c or launchpad.u.c?
[05:22] <BradB> launchpad
[05:22] <BradB> exactly my point though :)
[05:22] <bob2> hah
[05:23] <bob2> dogfood is the one that gets nuked every hour?
[05:23] <elmo> BradB: dude, you need to talk to sabdfl
[05:23] <BradB> bob2: no, it's a production app.
[05:23] <BradB> sabdfl: ping
[05:23] <salgado> bob2, thanks
[05:23] <daf> !!
[05:23] <daf> BradB: dogfood is production?!
[05:24] <BradB> yeah, for us.
[05:24] <BradB> production as in, if we lost the data in there, we'd all die
[05:24] <daf> oh, *right*
[05:24] <BradB> heh
[05:24] <daf> yeah, end of the world time
[05:26] <SteveA> BradB: smack my batch up
[05:26] <BradB> !
[05:27] <BradB> SteveA: should i reexplain the problem?
[05:27] <SteveA> sure.
[05:27] <BradB> ok:
[05:27] <BradB> when there's 7,000 bugs in the db, the bug listing takes about 1m 30s to render on my machine.
[05:28] <SteveA> to render how many bugs?
[05:28] <BradB> i believe (from having investigated a bit) that about half that time is from the vocabs, and half from the bug listing itself
[05:28] <BradB> just 20, like normal
[05:28] <SteveA> ok
[05:28] <BradB> so, the half that has to do with vocabs will go away when the super widget is implemented
[05:28] <SteveA> it will?
[05:28] <BradB> the next step there is to upgrade Z3, etc. different subject, etc.
[05:28] <SteveA> because sources do this better?
[05:29] <BradB> yes
[05:29] <SteveA> ok
[05:29] <SteveA> I haven't looked at sources at all
[05:29] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: work on revision control import workflow (patch-860)
[05:29] <BradB> so, to the buglisting though...
[05:29] <BradB> we've got this batching thing
[05:29] <BradB> with a Batch, you give it a list of things, and tell it what part you want to work with, and then it does this really smart stuff to slice out only the chunk you want to look at, and (mostly) ignore the rest
[05:29] <BradB> which is cool
[05:29] <SteveA> yep
[05:29] <BradB> and works well
[05:30] <BradB> for *one* *list* of things :)
[05:30] <BradB> in the bug listing, we have two lists of things that make up one batch of things
[05:30] <BradB> package assignments, and product assignments
[05:30] <BradB> two different SelectResults, needing to be represented by one batch
[05:30] <BradB> so, imagine this:
[05:31] <BradB> ~50 package assignments, ~50 product assignments, user wants to see results, 20 to 30 of 100
[05:31] <BradB> the assignments need to be ordered by bug id, of course
[05:32] <SteveA> if you have one set of things, do they come sorted by bug id anyway?
[05:32] <BradB> how do we batch that so that when i ask for elements 20 through 30 i get the appropriate combination of product and package assignments?
[05:32] <BradB> SteveA: yes, individually, but not between the two different SelectResults :)
[05:32] <SteveA> yes, I see
[05:33] <BradB> SteveA: i think the solution means we have to write some raw SQL here, and make batch navigation work with that too
[05:34] <SteveA> can you make an sql query do that easily? 
[05:34] <BradB> it'd be nice to have this designed in such a way that all i need to do is write an SQL query and it all Just Works (because there are several applications of this in LP, i think)
[05:34] <SteveA> is this a good time to make a view?
[05:34] <BradB> SteveA: i thought about a view, but i don't think it's appropriate, since there are an arbitrary number of WHERE clauses.
[05:35] <BradB> maybe none, maybe 4, maybe 1
[05:35] <BradB> maybe N
[05:35] <SteveA> what do the where clauses do?
[05:36] <BradB> filter the select results :) e.g. bug status, package, product, assignee, and perhaps other criteria
[05:36] <SteveA> you could still do that
[05:36] <SteveA> do a view that represents everything, and then select using where on the view
[05:36] <SteveA> just an idea
[05:37] <BradB> it's easier to do on the table, i think
[05:37] <SteveA> ok, so let's say we'll do it with an appropriate sql query
[05:37] <SteveA> the query needs to live somewhere
[05:37] <SteveA> it should live with the database code
[05:38] <BradB> and perhaps implement a general RawSQLSelectResults, which iterates over raw sql select results and has smarts so that you can access col names as attribs of the elements returned from that iterator
[05:38] <SteveA> and it should have a standard method name and signature, so that the batcher can use it
[05:38] <SteveA> There is something like what you just described in zope3 already, actually
[05:39] <SteveA> but I'm thinking of something simpler
[05:39] <BradB> SteveA: yes, as i say, this has got to work in a way that in the future one need only write the SQL query (and, of course, the relevant tales to plop the results into a page) and have it all Just Work
[05:39] <BradB> SteveA: Why does the query have to live in the DB?
[05:39] <SteveA> not in the db
[05:39] <SteveA> in the database code
[05:39] <BradB> ah
[05:40] <BradB> I misread that, but yeah, in the db code indeed
[05:40] <SteveA> so, I'm thinking that the batching code doesn't really know what the select is
[05:40] <SteveA> it just calls the method with some args that the method feeds into the select
[05:40] <SteveA> and the method returns some standard stuff to the batching
[05:40] <BradB> SteveA: batching doesn't even care about that
[05:40] <BradB> SteveA: it's Batch(something, offset, size)
[05:40] <SteveA> doesn't it need to feed it the start and end items?
[05:41] <BradB> the "something" has to be smart enough to know what results to return. it knows the filter criteria already, etc.
[05:41] <debonzi> SteveA, why launchpad.iandrew.py still exists? 
[05:42] <SteveA> that's a good question debonzi
[05:42] <BradB> SteveA: and, actually, now that i think about it, outside of even batching, a RawSQLSelectResults would do well to help us optimize many parts of the app as we enter the holy-crap-it's-slow-on-a-real-db phase of development.
[05:42] <SteveA> BradB: think of the simplest way to do this, even if it requires a bit of extra configuring for now
[05:43] <SteveA> at the point you're talkingn about, it isn't a collection of sql select results any more really
[05:43] <BradB> SteveA: I think the RawSQLSelectResults will add the most value, to solve this task, and as a documented thing that will help us improve launchpad as we move towards the Mataro Sessions. Do you see anything simpler than that?
[05:44] <SteveA> it is just a "table" of python objects, surely?
[05:44] <BradB> SteveA: no, because that would mean loading everything into memory
[05:44] <SteveA> BradB: I don't really see what your vision of RawSQLSelectResults is.  Can you write an email, to the lp list, sketching out what this thing needs to be like
[05:44] <SteveA> ?
[05:44] <BradB> you have to pass something that represents the entire list of results
[05:44] <BradB> (to the batching)
[05:45] <SteveA> and how it will be used
[05:45] <BradB> ok
[05:45] <SteveA> thanks.
[05:45] <SteveA> I think that will get the ideas you have communicated better
[05:46] <SteveA> I think you may be onto something Brad.  But I'd like us to think about it a bit more
[05:47] <BradB> ok. hopefully we can make a decision today though, because i really need this working today or tomorrowish. :)
[05:47] <SteveA> you need it working in one or two cases today or tomorrow, so that's why I'm concerned about making a general solution when a specific one would still work.
[05:47] <SteveA> but, we'll talk about it more in a while
[05:48] <ddaa> lifeless: why does iandrew.py still exists?
[05:49] <debonzi> SteveA, another question: in the and of iandrew there is a class RCSTypeEnum. So, the other apps that use it have to make from launchpad.interfaces import RCSTypeEnum. Im quite sure that it is not an Interface :).. do you have an idea to where should I put it?
[05:49] <debonzi> s/and/end
[05:50] <lifeless> ddaa: feel free to fix it
[05:55] <BradB> SteveA: actually, indeed, i think i can make it work with a simpler approach. i'll start now and focus on getting something work this afternoon.
[05:55] <BradB> s/work/working/
[05:55] <BradB> simpler, i.e. no special funky iterator class
[05:55] <Kinnison> rehi
[05:59] <debonzi> ddaa, Are you going to work in iandrew.py?
[06:00] <SteveA> debonzi: I am working there
[06:01] <debonzi> SteveA, ohh cool.. So I wont touch it
[06:01] <SteveA> yep
[06:01] <SteveA> I'm moving it to interfaces/pyarch.py
[06:01] <SteveA> and giving it an __all__
[06:02] <ddaa> yeah... I guess I'll delegate putting the required stuff in there to bob2 if I can. After all he is the one who wrote the code that uses it but that does not have a test suite.
[06:02] <debonzi> SteveA, and where are you going to put the RCSTypeEnum class?
[06:04] <debonzi> SteveA, So, its done... Im gonna merge in rocketfuel
[06:05] <BradB> sabdfl: ping
[06:05] <sabdfl> BradB: give me five
[06:05] <BradB> ok
[06:10] <lifeless> sabdfl: auto-running autotester is in place
[06:10] <lifeless> now to get feedback from it 
[06:10] <sabdfl> lifeless: great!
[06:11] !Bhaal:*! Noise people arent you!
[06:11] <lifeless> need to do a production code drop to do that, which means you and I need to sort out the db stuff for stub to apply ...
[06:11] !Bhaal:*! Noisey even
[06:12] <sabdfl> lifeless: my stuff is ready to go
[06:12] <lifeless> merged into rf ? if so I'll pull down and whip up my end of code.
[06:12] !alindeman:*! Wrong channel, Bhaal 8)
[06:13] !lilo:*! Hi all.  If you have FWD and would like to help us check a gateway, please /msg me.
[06:18] <BradB> sabdfl: got a minute then?
[06:22] <sabdfl> still in a meeting
[06:22] <BradB> ok
[06:26] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Some more cleanup to remove from canonical.launchpad.interfaces import * to import only the required interfaces. (patch-861)
[06:29] <SteveA> cprov: want to talk about permissions?
[06:34] <SteveA> BradB|lunch: lifeless says it will take quite a while to get Zope 3 synced from SVN.  We can't expect it before next week
[06:36] <carlos> do I need to check out a new tree to start using baz?
[06:36] <carlos> I'm getting an error if I use my old tree
[06:38] <SteveA> what is the error?
[06:38] <SteveA> rob just helped me start using baz
[06:38] <SteveA> is it a gpg error?
[06:38] <SteveA> you will need to change your signing scripts
[06:39] <SteveA> tla-gpg-check to bazaar-gpg-check, and tla to baz in the files in ~/.arch-params/signing/*
[06:40] <SteveA> also, change tla to baz in submit-arch-merge
[06:44] <carlos> ********************************
[06:44] <carlos> INVALID SIGNATURE ON REVISION!
[06:44] <carlos>   archive: carlos.perello@canonical.com--2004
[06:44] <carlos>   revision launchpad--devel--0--patch-332
[06:44] <carlos>   checksum file: checksum
[06:44] <carlos> ********************************
[06:44] <carlos> yeah, I did that change already
[06:44] <Kinnison> I just removed tla and set up a symlink from ~/bin/tla
[06:47] <sabdfl> BradB|lunch: i'm back
[07:11] <ddaa> hello?
[07:11] <SteveA> carlos: that was directed at you
[07:11] <carlos> ddaa: hi
[07:11] <ddaa> Mh... let me look at the log.
[07:11] <carlos> SteveA: thanks
[07:12] <carlos> ddaa: do you need any extra information than I already pasted?
[07:12] <ddaa> I'm trying to figure out your problem.
[07:12] <ddaa> You seem very confused.
[07:13] <carlos> ddaa: it's not related to my yesterday's problem
[07:13] <carlos> ddaa: I was using until today tla
[07:13] <carlos> I just installed baz
[07:13] <carlos> and that's the error I get with baz changes
[07:13] <carlos> in my old tla tree
[07:13] <ddaa> the tree you are using has _absolutely_ no incidence on the validity of the revision signatures.
[07:14] <carlos> ok
[07:14] <carlos> should I clean my revision library?
[07:14] <carlos> rm -Rf and let it regenerate with baz?
[07:15] <ddaa> hu... the tla revlib should work just fine with baz
[07:15] <ddaa> the reverse is not true though (according to lifeless that's a bug in baz)
[07:15] <ddaa> and in any case, your revlib has no incidence whatsoever on the validity of revision signatures
[07:15] <ddaa> do you _still_ have tla installed?
[07:16] <carlos> ddaa: yes
[07:17] <carlos> should I remove it?
[07:17] <ddaa> no, it contains a script that's used for signing, and apparantly baz does not provide it yet
[07:19] <carlos> the bazaar-gpg-check?
[07:19] <salgado> ddaa, isn't this script bazaar-gpg-check?
[07:19] <carlos> I changed my config files already
[07:19] <carlos> to use it
[07:19] <carlos> instead of tla-gpg-check
[07:20] <ddaa> carlos: then, it should be okay
[07:20] <ddaa> carlos: can you make sure you can actually (using gpg by hand) check the checksum file in that revision.
[07:21] <carlos> ddaa: my fault
[07:21] <carlos> sorry
[07:21] <carlos> it was a typo
[07:21] <carlos> baazar instead of bazaar
[07:21] <carlos> O:-)
[07:22] <ddaa> I got a trick for you so you'll rember it: it's foo, bar, (we've got up to tla this far), baz.
[07:22] <carlos> ddaa: thank you for your help and sorry for the noise
[07:24] <carlos> ok
[07:34] <lulu> night all :o)
[07:34] <Kinnison> night lulu
[07:47] <BradB> sabdfl: ping
[07:49] <sabdfl> yo
[07:49] <sabdfl> let's go!
[07:49] <BradB> two things:
[07:49] <sabdfl> btw... have been playing with your batching bits, and have some feedback
[07:49] <SteveA> cprov: want to talk about permissions?
[07:50] <BradB> 1. can we get elmo to put a stop sign up at https://launchpad.ubuntu.com/malone? I want to avoid 1. confusion 2. inadvertently hitting that server with existing code in dogfood.u.c.
[07:50] <BradB> maybe we just want to shut off the whole instance, of course
[07:50] <sabdfl> no, it's time for us to bring launchpad up into production
[07:51] <sabdfl> we already have bits of it running in production
[07:51] <sabdfl> all we've done is expose it on the launchpad.ubuntu.com url
[07:51] <sabdfl> during es-conf i want to go much further
[07:51] <BradB> sabdfl: it's too early to bring malone into production.
[07:52] <sabdfl> i don't know how smart we can make it so it shuts off certain url paths on certain hosts
[07:52] <SteveA> BradB: why?
[07:52] <BradB> SteveA: why what?
[07:52] <sabdfl> BradB: we have two weeks till spain, and two weeks IN spain, to get it right
[07:52] <SteveA> why do you think it is too early to use malone in production?
[07:53] <BradB> SteveA: because it's not ready. we've have one Real User test it for about 10 minutes.
[07:53] <sabdfl> and we have a month to work on it
[07:53] <BradB> two weeks + two weeks isn't now, of course. i meant now.
[07:53] <SteveA> we can use rewrite rules in apache to shut off certain paths on certain vhosts
[07:53] <SteveA> and replace them with holding pages etc.
[07:53] <sabdfl> and i said launchpad
[07:53] <BradB> sabdfl: yeah, but i'm just at least asking that malone be shut off :)
[07:54] <BradB> and the users told where to go (i.e. dogfood.u.c)
[07:54] <sabdfl> ok elmo, thom, which of you is best set to setup url rewriting on launchpad.ubuntu.com to divert malone and possibly other bits to "go away" pages
[07:55] <elmo> gar
[07:55] <elmo> URL rewriting and proxypass are NOT FRIENDS
[07:55] <elmo> I just went through this with the wiki
[07:55] <SteveA> or... we can override the malone layer for a layers.DoNotUse layer
[07:55] <SteveA> just on that server
[07:56] <elmo> well, whichever - I do know how to beat them into submission now
[07:56] <BradB> whatever works. i'm genuinely concerned that we may go "oops, that bit is still hitting launchpad.u.c/m for some reason" and want to catch that too, before something odd happens
[07:58] <BradB> elmo: so is that a yes, you can put up a page telling the user to go away (to [link] )? :)
[07:58] <carlos> also, a http://dogfood.canonical.com redirect to https://...  could be really good..
[07:58] <elmo> sabdfl: btw, which do you want dogfood.c.c or dogfood.u.c ?  atm we have both 'cos I'm lame
[07:58] <elmo> if we only want one, I should delete the other now
[07:59] <sabdfl> elmo: don't do it yet, i'm just doing something...
[07:59] <elmo> sure
[08:00] <BradB> sabdfl: with that out of the way, the other thing was to know if i could get my hands on another Monster Dump, that uses the most bleeding edge schema.
[08:00] <BradB> (not sure how much work's involved in that...)
[08:01] <sabdfl> BradB: can you login to mawson?
[08:01] <BradB> yeah
[08:01] <sabdfl> erm... actually, that wont help
[08:01] <sabdfl> ok, will get you another one tomorrow
[08:02] <BradB> sabdfl: ok, i can proceed with what i wanted to do anyway, i'll just have to wait until tomorrow to see if it Really Works
[08:03] <BradB> sabdfl: what was your batching feedback? it needs refactoring, that's for sure (and there's a bug filed on that.)
[08:03] <sabdfl> yes!
[08:03] <sabdfl> (sorry, context)
[08:03] <sabdfl> yes! bug#1 rules!
[08:03] <BradB> heh
[08:03] <sabdfl> ok elmo, NOW you can fence it off for a while ;-)
[08:03] <BradB> fence fence!
[08:04] <sabdfl> oh bugger
[08:04] <sabdfl> what IS bug #1?
[08:04] <BradB> sabdfl: you might be interested in reading bugs 79, 80, 85 and 86, which describe the tasks i had in mind for improving the bug listing UI.
[08:05] <elmo> what am I fencing off?  just /malone/ ?
[08:08] <carlos> sabdfl: I love that bug :-P
[08:08] <sabdfl> carlos: yes, but we'll have to nudge it to be #1
[08:09] <BradB> elmo: at least /malone, or the whole thing if mark allows
[08:10] <BradB> sabdfl: it is #1, though it may not be assignment #1.
[08:11] <sabdfl> elmo: let's nuke /malone, /bounties, /rosetta, /lists, /soyuz
[08:11] <sabdfl> BradB: que?
[08:12] <BradB> https://dogfood.ubuntu.com/malone/bugs/1 is the world domination bug!
[08:12] <sabdfl> no, i filed in launchpad
[08:12] <sabdfl> but it shows up as bug #2
[08:12] <elmo> sabdfl: ok - working on that.. ping WRT dogfood hostname
[08:12] <sabdfl> dogfood hostname?
[08:13] <carlos> hmmm
[08:13] <elmo> sabdfl: btw, which do you want dogfood.c.c or dogfood.u.c ?  atm we have both 'cos I'm lame
[08:13] <carlos> right, it's not #1 anymore...
[08:13] <elmo> sabdfl: if we only want one, I should delete the other now
[08:13] <sabdfl> both is fine if it's no trouble (one-liner)
[08:13] <carlos> hmmm
[08:14] <carlos> launchpad.ubuntu.com's malone is broken
[08:14] <carlos>  A system error occurred.
[08:14] <elmo> it's no trouble, it's what we have already :)
[08:14] <carlos> https://launchpad.ubuntu.com/malone/bugs/2
[08:14] <BradB> oh, i see, you're talking the production box
[08:14] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: moved iandrew.py to interfaces/pyarch.py.  Made names explicitly exported. (patch-862)
[08:16] <sabdfl> fuck
[08:16] <sabdfl> how hard is it going to be to delete #1, make #2 into #1 and reset the counter?
[08:16] <BradB> heh
[08:17] <BradB> 4 SQL statements, I think
[08:17] <sabdfl> BradB: so, about the batching
[08:17] <BradB> yeah...
[08:18] <sabdfl> i guess the batch start / end details need to be sent to the search function, right?
[08:18] <sabdfl> the bugassignment example doesn't do that
[08:18] <BradB> sabdfl: no, but the thing you give to your Batch has to slice intelligently
[08:19] <sabdfl> by sqlobject resultset doesn't do that
[08:19] <elmo> ok, try /malone/ now - is that basically what you want?
[08:19] <sabdfl> you have to pass the slice onto the query to get it to work properly as i understand it
[08:19] <BradB> sabdfl: wait, dude, what are you working on? hopefully we're not doing the same thing.
[08:20] <sabdfl> elmo: perfectly put
[08:20] <sabdfl> Not Ready Yet (TM)
[08:20] <sabdfl> BradB: i haven't climbed into the code
[08:20] <sabdfl> i've just been working with the code you used for bugassignment's report
[08:20] <BradB> elmo: and a link to the dogfood server please
[08:20] <sabdfl> bugs-index.pt
[08:20] <sabdfl> BradB: no, don't do the link
[08:20] <sabdfl> elmo: ^
[08:21] <sabdfl> dogfood will be internal, we don't need to advertise it
[08:21] <BradB> ok, so anyway, i was working on optimizing bugs-index.pt :)
[08:21] <elmo>  /malone, /bounties, /rosetta, /lists, /soyuz  all redirected
[08:21] <sabdfl> elmo: superstar, thanks
[08:22] <sabdfl> BradB: i think it's going to have to be something like this:
[08:22] <BradB> sabdfl: slicing a SelectResults is documented to Do The Right Thing
[08:23] <sabdfl> batch_start = int(request.get('batch_start', 0))
[08:23] <sabdfl> batch_len = int(request.get('batch_len', 0))
[08:23] <sabdfl> self.batch = Batch(self.search(batch_start=batch_start, batch_len=batch_len))
[08:23] <sabdfl> BradB: as far as i can tell it does the right thing if you slice it when you create it
[08:23] <BradB> sabdfl: i already did that, and then realized i misunderstood what i was doing an removed it.
[08:24] <sabdfl> but if you return Table.select(), then try and slice the result, it barfs
[08:24] <sabdfl> in otherwords you need to return Table.sect[slice:end] 
[08:24] <sabdfl> Table.select()[slice:end] 
[08:25] <BradB> sabdfl: the Batch, should actually be called BatchedSequence or something. the point is though, it doesn't make sense to give offset and limit to your search, because the thing you give to Batch needs to represent your /entire/ result set. if you gave it a list with just 20 things it in, you'd get just one batch link, because it only sees 20 things.
[08:25] <sabdfl> well, that's nice, but it means that postgres still has to return the ENTIRE result
[08:26] <sabdfl> 90% of which is then discarded
[08:26] <sabdfl> you surely want to use the underlying SQL batch machinery
[08:26] <BradB> sabdfl: no.
[08:26] <sabdfl> where you LIMIT the resultset
[08:26] <sabdfl> ugghhh
[08:26] <sabdfl> why not?
[08:26] <BradB> sabdfl: a SelectResults doesn't select all the results.
[08:26] <BradB> it's a thing that represents the results. it /isn't/ the results.
[08:26] <sabdfl> meaning?
[08:27] <BradB> if foo is a SelectResults, foo[:10]  does what you expect.
[08:27] <BradB> foo # still not fetched...
[08:27] <sabdfl> so, you are saying that the existing machinery actually works properly at the SQL level?
[08:27] <BradB> for f in foo[:10] : # iterate through first 10 rows of the SelectResults
[08:28] <BradB> sabdfl: it's documented too. if it doesn't then it's a bug, but anyway, this is already something i'm going to solve with bare sql, because it's still too slow even if it works right.
[08:28] <BradB> s/too/to/
[08:28] <sabdfl> hold on a sec, let me test something
[08:29] <BradB> from the docs:
[08:29] <BradB> You can also slice select results. The results are used in the SQL query, so peeps[:10]  will result in LIMIT 10 being added to the end of the SQL query. If the slice cannot be performed in the SQL (e.g., peeps[:-10] ), then the select is executed, and the slice is performed on the list of results. This will only happen when you use negative indexes.
[08:29] <elmo> oh, that's cute
[08:30] <sabdfl> elmo: ?
[08:31] <elmo> being able to slice SQL query results
[08:31] <sabdfl> BradB: ok, here's the problem i am hitting
[08:31] <BradB> it'd probably be better if it weren't an iterator though
[08:31] <sabdfl> the batching code does a len(foo) on the resultset
[08:31] <sabdfl> that fails on the resultset
[08:32] <BradB> sabdfl: i'm already solving this problem though, how 'bout i just continue doing what i was going to do?
[08:32] <sabdfl> so, theworkaround is to pass it list(foo)
[08:32] <sabdfl> but that iterates the full set
[08:32] <BradB> len(foo) is fine too
[08:32] <BradB> len(foo) *should* simply do a count(*), and if it isn't that too is a bug.
[08:32] <sabdfl> what i'm saying is that if I do self.batch=Batch(foo...)
[08:32] <sabdfl> where foo is a resultset
[08:32] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: added launchpad.Admin permission (patch-863)
[08:32] <sabdfl> it dies
[08:33] <SteveA> does sqlobject define a __len__ ?
[08:33] <sabdfl> i have to say Batch(list(foo), ...
[08:33] <sabdfl> and that defeats the purpose of the whole exercise
[08:33] <BradB> sabdfl: nah, you shouldn't have to. if you do, then that's a bug.
[08:33] <BradB> sabdfl: but again, i'm already going to circumvent sqlobject in that screen entirely anyway, because it's going to be too slow, i think.
[08:33] <sabdfl> what code are you running that you DON'T have to do that?
[08:34] <sabdfl> why should it be too slow?
[08:34] <BradB> sabdfl: for f in foo[:20]  does at least 20 SELECT's, I believe.
[08:34] <BradB> maybe 40, i can't remember offhand how it's implemented.
[08:35] <SteveA> oh, fuck this.  I'm going to fix __len__ on SelectResults right now.
[08:35] <BradB> in a sane world, foo[:20]  would not be an iterator
[08:35] <sabdfl> why doesn't it just use OFFSET and LIMIT?
[08:35] <BradB> foo[:20]  would select the results then and there.
[08:36] <sabdfl> are you sure about this?
[08:36] <BradB> sabdfl: not 100%, no.
[08:36] <sabdfl> because i have seen Table.select()[0]  put an OFFSET and LIMIT 1 into the SQL
[08:36] <sabdfl> which would appear to be correct
[08:36] <BradB> yeah, but try a slice
[08:37] <sabdfl> is there a way to make sqlobject print the SQL it's generating?
[08:37] <BradB> anyway, can i just implement this in raw sql? it'll be much faster, and we need speed on that screen, nowish.
[08:37] <BradB> sabdfl: debug=1 to the connection, i believe. that's what i was asking about yesterday, and you told me to use log_statement=true :)
[08:38] <BradB> because i don't know how to set that stuff with SQLOS
[08:38] <sabdfl> i'm looking for a way that doesn't incvolve restarting the server
[08:38] <BradB> sabdfl: do we really need to both be working on the same thing though? :) i was hoping to just go off and make this work right now.
[08:39] <BradB> with sql
[08:39] <sabdfl> BradB: you're smokin' yer toenails, dude
[08:39] <sabdfl> 2004-11-25 19:39:20 [2762]  LOG:  statement: SELECT Project.id, Project.reviewed, Project.owner, Project.wikiurl, Project.title, Project.homepageurl, Project.lastdoap, Project.displayname, Project.description, Project.active, Project.name, Project.datecreated, Project.shortdesc FROM Project WHERE  1 = 1 LIMIT 3 OFFSET 2
[08:40] <sabdfl> this was created by:
[08:40] <sabdfl> mark@slinky ~/projects/ubuntu/launchpad/lib/canonical/database $ python -i harness.py
[08:40] <sabdfl> >>> Project.select()[2:5] 
[08:40] <sabdfl> <sqlobject.main.SelectResults object at 0x40fb898c>
[08:40] <sabdfl> >>> for item in Project.select()[2:5] : print item.name
[08:40] <sabdfl> ...
[08:40] <sabdfl> ../../canonical/database/sqlbase.py:90: UserWarning: Something tried to set a _connection.  Ignored.  warnings.warn("Something tried to set a _connection.  Ignored.")
[08:40] <sabdfl> iso-codes
[08:40] <sabdfl> gimp
[08:40] <sabdfl> mozilla
[08:40] <sabdfl> so sqlobject works perfectly
[08:40] <sabdfl> it's the batching code that is broken
[08:40] <sabdfl> if you were hoping to just go off and make this work right now you'd be barking up the wrong tree
[08:41] <sabdfl> oh lord that 1 = 1 is hideous
[08:42] <BradB> sabdfl: try for p in Project.select()[2:5] 
[08:42] <BradB> er, yeah, i see n/m
[08:42] <sabdfl> so to make this work, we DO need to pass the batch details down to the actual select()
[08:43] <BradB> sabdfl: anyway, like i say, i wasn't sure. :) not barking up the wrong tree though. by cutting out the vocabs on the bug listing it was still taking 45s with 7,000 bugs in the db.
[08:43] <sabdfl> i think that's moslty indeces
[08:43] <sabdfl> we don't have any in malone
[08:44] <BradB> it may be in its interaction with the batching machinery
[08:44] <SteveA> SelectResults.__len__ will work as soon as my patch hits
[08:44] <sabdfl> i doubt that
[08:44] <sabdfl> SteveA: hold on
[08:44] <sabdfl> that doesn't help
[08:45] <sabdfl> at least, i dont think so
[08:45] <SteveA> oh well.  it has caught us out enough before.  and also, it is declared with a permission in sqlos.
[08:45] <BradB> sabdfl: run the bugs-index.pt with log_statement=true and the vocabs commented out. you'll see how much it's hitting the db.
[08:45] <sabdfl> because doing the __len__ will triger the full un-LIMITed SQL query, won't it?
[08:45] <sabdfl> is it lots of different queries?
[08:46] <BradB> i don't remember. i'm going to run it again now.
[08:46] <sabdfl> ok, i have to step away from the keybd shortly :-)
[08:47] <BradB> going to try it now with a tiny listing
[08:50] <BradB> sabdfl: e.g.
[08:50] <BradB> 2004-11-25 14:47:54 [10982]  LOG:  statement: SELECT owner, activitytimestamp, communityscore, activityscore, title, duplicateof, description, hitstimestamp, hits, communitytimestamp, name, datecreated, shortdesc FROM Bug WHERE id = 1
[08:50] <BradB> 2004-11-25 14:47:54 [10982]  LOG:  duration: 5.732 ms
[08:50] <BradB> 2004-11-25 14:47:54 [10982]  LOG:  statement: SELECT owner, activitytimestamp, communityscore, activityscore, title, duplicateof, description, hitstimestamp, hits, communitytimestamp, name, datecreated, shortdesc FROM Bug WHERE id = 2
[08:50] <BradB> 2004-11-25 14:47:54 [10982]  LOG:  duration: 1.155 ms
[08:50] <BradB> 2004-11-25 14:47:54 [10982]  LOG:  statement: SELECT owner, activitytimestamp, communityscore, activityscore, title, duplicateof, description, hitstimestamp, hits, communitytimestamp, name, datecreated, shortdesc FROM Bug WHERE id = 3
[08:50] <sabdfl> BradB: this is because sqlobject doesn't do proper selects across multiple tables
[08:51] <BradB> so, of course, with improper slicing (which is how it currently is), that phenomenom is murder.
[08:51] <sabdfl> say you get all the bugasssignments into a list foo
[08:51] <sabdfl> now you go :
[08:51] <sabdfl> for bugass in foo: print bugass.bug.title
[08:51] <BradB> sabdfl: um, the point being though, i wanted to move this into raw sql because the db is being hit too much :)
[08:51] <sabdfl> you will see this kind of crap
[08:51] <carlos> SteveA: I need to add a new class to DBSchema
[08:51] <carlos> SteveA: could I do it directly or should I send a request?
[08:52] <sabdfl> BradB: this was one of the two big improvements to sqlobject I said i was willing to fund / let you work on
[08:52] <sabdfl> anyhow,  REALLY have to help kiko with something now, my time is nearly up
[08:52] <BradB> sabdfl: i've got a failing unit test i've written ready to be funded into passing :)
[08:52] <carlos> sabdfl: you need a twin ;-)
[08:52] <BradB> but anyway, i'll make this work sanely today
[08:53] <BradB> one sql select for the listing, max 20 items, that's it, plain and simple.
[08:53] <sabdfl> twin! two ugly mean mutherf*ckers might be too much me for the world...
[08:53] <carlos> X-)
[08:53] <sabdfl> BradB: yesterday i asked you not to spend hours and hours on this report
[08:53] <sabdfl> please think about it
[08:53] <sabdfl> performance is not a big issue till we get to mataro
[08:54] <sabdfl> but on day one at mataro we have to walk people through the system
[08:54] <sabdfl> it can be slow
[08:54] <sabdfl> but the processes need to be slicker
[08:54] <sabdfl> make THAT your focus
[08:54] <sabdfl> we can optimise specific reports later
[08:54] <BradB> sabdfl: 1m 30s on 7,000 bugs isn't worth fixing right now though?
[08:54] <BradB> if not, i can wait.
[08:54] <sabdfl> and besides, the one you are working on is the biggest, slowest
[08:54] <sabdfl> we may refactor the product/packagebugassignments into a single table
[08:55] <sabdfl> all of which will undo work that you are investing now
[08:55] <sabdfl> so please, let's focus on workflow
[08:55] <sabdfl>  - find a bug
[08:55] <sabdfl>  - report a bug
[08:55] <sabdfl>  - see bugs on a product (done)
[08:55] <sabdfl>  - see bugs on a package (done)
[08:55] <sabdfl>  - reassign to a different product (needs doing)
[08:55] <sabdfl>  - reasign to a different package
[08:55] <sabdfl>  - mark fixed
[08:56] <BradB> should "Fixed" be one of the one-click actions?
[08:56] <sabdfl> it's the simple workflow things that we need to simplify
[08:56] <sabdfl> sounds good
[08:56] <BradB> ok, i'll do some more of that kind of work right now then
[08:56] <sabdfl> kiko, around, i have little time left today
[08:58] <SteveA> carlos: what is the new DBSchema class you want to add?
[08:58] <carlos> RosettaImportStatus
[08:58] <carlos> it's to control the raw file status
[08:58] <carlos> imported, done, failed
[08:59] <carlos> it's a field in the database
[08:59] <carlos> hmm
[08:59] <dilys> New Malone bug #88: "Add a one-click "mark fixed" to the bug listing", submitted by Brad Bollenbach
[08:59] <dilys> https://dogfood.ubuntu.com/malone/bugs/88
[08:59] <carlos> imported shoud be "pending"
[08:59] <carlos> or something like that 
[09:00] <SteveA> ok.  remember to add it to the __all__ of the module
[09:00] <carlos> ok
[09:00] <carlos> thanks
[09:01] <carlos> hmmm, is NULL a valid value for a DBSchema?
[09:02] <BradB> sabdfl: btw, some icons for one-click accept/reject/mark fixed would be nice, if we get a chance (real estate getting tight!) maybe icons for statuses too...
[09:02] <SteveA> carlos: no
[09:02] <SteveA> numbers only
[09:02] <carlos> ok, then I need to ask for a database change
[09:07] <SteveA> daf: 
[09:08] <SteveA> carlos, daf: how is the rosetta stuff going?
[09:08] <carlos> SteveA: daf is offline at the moment
[09:09] <SteveA> oh, at a thanksgiving thing
[09:09] <carlos> SteveA: I'm implementing the queue view and process 
[09:09] <carlos> SteveA: yes
[09:09] <SteveA> okay
[09:36] <cprov> SteveA: sorry, I was AFK for a while, now we have a meeting at Async with kiko & salgado, can we talk later ?
[09:37] <cprov> SteveA: I hope so, need to go, see you 
[09:43] <kiko-afk> SteveA, are *some* classmethods reasonable?
[09:47] <BradB> elmo: is pqm looping?
[09:50] <BradB> lifeless: ?
[10:27] <elmo> killed
[10:32] <BradB> thanks
[10:37] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: added __len__ to SelectResults. (patch-864)
[10:42] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: added one-click 'fixed' to the bug listing (patch-865)
[10:50] <dilys> Malone bug #88 fixed for product Malone: Add a one-click "mark fixed" to the bug listing
[10:50] <dilys> https://dogfood.ubuntu.com/malone/bugs/88
[11:12] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: fixed bug assignee search (patch-866)