[12:19] <lifeless> spiv: reviews for you please
[12:19] <lifeless> spiv: they are sqlobeject which I know you know
[12:21] <spiv> lifeless: Ok.
[12:25] <lifeless> thanks!
[12:43] <lifeless> spiv: reviewed your branch
[12:45] <spiv> Thanks
[12:45] <lifeless> I admire your time travel machine
[01:26] <mpt> Goooooooooooooooood afternoon Launchpadders!
[01:28] <lifeless> mpt: hey
[01:28] <lifeless> mpt: back in .nz ?
[01:28] <lifeless> mpt: so the branch I was asking about is still listed in 'baz' format. You need to convert its entry in pending reviews
[01:29] <mpt> lifeless, I realize that, which is why I was asking if pqm was off chinstrap yet
[01:30] <mpt> I suppose I could convert just that branch and not my others
[01:30] <lifeless> mpt: yes, pqm is off chinstrap
[01:30] <mpt> okie
[01:32] <mpt> and yes, I'm back in NZ, and partly recovered from jetlag
[01:54] <mpt> hi salgado 
[01:55] <lifeless> morning stub 
[01:56] <salgado> yo mpt
[01:57] <salgado> hi lifeless 
[01:57] <salgado> lifeless: I replied to your email a few minutes ago
[01:59] <lifeless> thanks
[02:05] <mpt> mpt@chinstrap:/home/warthogs/archives/mpt $ /home/warthogs/source/bzr.integration/bzr baz-import ./launchpad/2005-09-menus ../mpt\@canonical.com/launchpad--menus--0509 ../rocketfuel
[02:05] <mpt> bzr: ERROR: pybaz.errors.NamespaceError: invalid archive name: ../mpt@canonical.com/launchpad--menus--0509
[02:05] <mpt>   at /home/pqm/source/pybaz/pybaz/_builtin.py line 744
[02:05] <mpt>   in __init__
[02:08] <lifeless> mpt: no ../
[02:08] <lifeless> mpt: baz archive names are not paths per se
[02:09] <lifeless> except when they are
[02:09] <lifeless> and they're not here :[
[02:20] <mpt> lifeless, I get the same error removing either or both of the ../s
[02:22] <jamesh> mpt: you probably want "bzr baz-import-branch ../launchpad/2005-09-menus mpt@canonical.com/launchpad--menus--0509 ../rocketfuel"
[02:22] <jamesh> to import a single branch
[02:22] <mpt> oh, I got it now I think
[02:23] <mpt> hmm, no
[02:23] <jamesh> actually, remove that first "../" bit
[02:24] <mpt> well done jamesh :-)
[02:24] <mpt> I missed the -branch bit
[02:24] <salgado> lifeless: would you like to talk about that refactoring now?
[02:25] <mpt> bzr: ERROR: bzrlib.plugins.bzrtools.baz_import.NotPreviousImport: /home/warthogs/archives/mpt/launchpad/2005-09-menus is not the location of a previous import.
[02:25] <stub> arn't you on holidays yet salgado?
[02:26] <salgado> stub: not yet. it starts on the 26th
[02:27] <salgado> hmmm. maybe the note I added to the PendingReviews is wrong?
[02:29] <stub> no - I just can't read
[02:29] <jamesh> stub: if you've got a bit of time, could you do a quick review on https://chinstrap.ubuntu.com/~jamesh/pending-reviews/jamesh/launchpad/ErrorReportManagement/full-diff?
[02:29] <stub> or am confused
[02:29] <stub> Sure
[02:30] <jamesh> it's mostly deletes :)
[02:35] <stub> If ErrorData.count was a property, you could have used the new sort() form avoiding a lambda. But I wouldn't bother changing it.
[02:40] <lifeless> salgado: in 5 minutes if thats ok
[02:40] <lifeless> mpt: is it a new dir, an empty dir, or something else ?
[02:41] <lifeless> jblack: daf: LaunchpadHackingFAQ - can one of you update the bazaar instructions there to bzr ?
[02:41] <lifeless> (but let me finish my stuff first !)
[02:45] <stub> jamesh: It will need a command line argument limiting the number of days in the past the report is generated for. I can imagine we will acumulate months or years worth of exceptions on chinstrap for histerical reasons, but we really are only interested in reporting on the last week.
[02:45] <stub> jamesh: Otherwise r=stub
[02:49] <jamesh> stub: you pass the yyyy-mm-dd directories as arguments to the script
[02:50] <jamesh> stub: so if I only pass the last week of dates, it will generate a report on the last week's errors
[02:50] <jamesh> 2005-12-* will give a december report
[02:50] <lifeless> salgado: ok
[02:50] <stub> We can't really cron that
[02:51] <jamesh> that's a point.
[02:51] <jamesh> I think the reports have been done manually up til now
[02:52] <salgado> lifeless: after all the changes I've done, what we have left are DistributionMirrorEditView.doSchemaValidation() and DistributionMirrorAddView.doSchemaValidation() which are exactly the same code
[02:52] <salgado> but one is in distribution.py and the other is in distributionmirror.py
[02:52] <lifeless> but both are DistributionMirror*.doSchemaValidation
[02:53] <salgado> because the contexts of each view are not the same --one is a DistributionMirror and the other is a Distribution
[02:53] <lifeless> why are not both forms in distributionmirror.py ?
[02:53] <salgado> I usually place all views that share the same context in the same file
[02:53] <lifeless> I can tell you what my instinct says to do here
[02:54] <lifeless> but I suspect we need stevea to weigh in
[02:54] <lifeless> they are both called 'Di..Mirror?View'
[02:55] <lifeless> so I would expect both to have a DistributionMirror as a context. the Add would get a NullDistributionMirror which it would only use to grab the Distribution object from, the other would have a real DistributionMirror
[02:55] <lifeless> I think that Mark did something like that for new objects
[02:55] <lifeless> create-on-the-fly.
[02:55] <salgado> hmmm. I never heard of it
[02:55] <lifeless> but if we dont have that facility handy, then I would still put them both in distributionmirror.py
[02:56] <lifeless> and the schema validation does not look at context, so its fine.
[02:56] <lifeless> if however that goes against current layout requirements (it may)
[02:56] <lifeless> then I would extract the schema validation logic to a new object - a 'schema'
[02:57] <lifeless> and in both forms call 'DistributionMirrorSchema.validate(form_fields)'
[02:57] <lifeless> in doSchemaValidation
[02:57] <lifeless> BjornT: around? does z3 have something like this built-in ?
[02:58] <salgado> that could even live in interfaces/distributionmirror.py, I guess
[02:59] <lifeless> could do. I don't know the z3 idioms well enough to really comment there.
[02:59] <salgado> or maybe interfaces/validators.py. 
[02:59] <salgado> yes, that seems to be the right place
[02:59] <lifeless> that sounds more like it to me
[03:00] <salgado> I can even move it there and keep the two view classes into different files, in case I'm right and we should actually place views that share the same context in the same file
[03:00] <salgado> maybe spiv can help us here?
[03:00] <lifeless> spiv: ^^
[03:04] <stub> There is a schema validation example in lib/zope/schema/README
[03:04] <stub> .txt
[03:06] <stub> Stuff under interface is just interface, and schemas are extensions of interfaces. Interface validation (IFoo.providedBy(obj) ) doesn't do enough
[03:08] <salgado> eh?
[03:09] <stub> Ignore all that - the README.txt is broken and science fiction (at least in our Z3 release)
[03:11] <stub> Oh... lifeless was using 'schema' in a different sense, which is naughty because it is a loaded term in Z3 development
[03:15] <lifeless> stub: sorry
[03:17] <salgado> lifeless: what about https://chinstrap.ubuntu.com/~dsilvers/paste/file8YXEAN.html in interfaces/validation.py?
[03:17] <lifeless> for now, yes
[03:18] <lifeless> it can land like that,but I really want to get stevea to eyeball the approach
[03:18] <salgado> I don't plan to land it now, so I can talk to steve this morning
[03:18] <lifeless> ok
[03:18] <lifeless> personally I'd have done a class
[03:18] <lifeless> with a validate method
[03:19] <lifeless> but thats because I am allergic to context-free-contextual-methods
[03:20] <spiv> lifeless, salgado: Hmm, what can I do for you?
[03:20] <salgado> spiv: first question: should we always try to keep view classes that share the same context in the same file or this is not important?
[03:21] <dilys> Merge to devel/launchpad: more ErrorReportManagement updates, r=stub (r2937: James Henstridge)
[03:21] <spiv> Well, the important thing is that it should be easy to find code.
[03:22] <spiv> Grouping view classes by context object is a good way to do that, but I'm not sure that it's an absolute rule.
[03:22] <spiv> What's the alternative you're thinking of?
[03:24] <salgado> spiv: the view name. for instance, I have DistributionMirrorAddView and DistributionMirrorEditView
[03:24] <salgado> they don't have the same context --one has a Distribution as context while the other has a DistributionMirror
[03:25] <spiv> The existing convention for FooAddView is that they are kept in browser/foo.py
[03:26] <spiv> E.g. BugAttachmentAddView's context is a Bug, but it's in bugattachment.py
[03:26] <spiv> Which is where I first thought to look, without really thinking about it very hard :)
[03:26] <lifeless> ahha!
[03:26] <lifeless> my instinct was right :)
[03:27] <spiv> So I think both DistributionMirrorAddView and DistributionMirrorEditView would belong in browser/distributionmirror.py
[03:28] <salgado> spiv: the same is valid for the zcml of the page that uses the view? (in our case the zcml for the page that uses FooBarAddView would be in bar.zcml although the context is a Foo)
[03:31] <spiv> salgado: The existing convention for zcml is a bit different, it seems.
[03:31] <spiv> So e.g. BugAttachmentAddView is in bug.zcml, not bugattachment.zcml.  The ZCML seems to be strictly grouped by context object.
[03:32] <spiv> I'm not sure if this was a conscious decision or not, but I'd be consistent with what we have, and talk to Steve and/or mail the list if you think it's worth changing the groupings of things in browser/ and zcml/ to be consistent.
[03:33] <salgado> I don't think it's worth changing, but I'll talk to Steve and try to get this formalized somewhere. I think this is something important to have
[03:33] <lifeless> agreed
[03:33] <salgado> anyway, for now, I agree with you, we should be consistent with what we have
[03:41] <spiv> salgado-zzz: FWIW, I agree, I think it's fine as-is too.  It would be good to have this formalised, possibly in the README.txts in the relevant directories.
[04:58] <Wolever> Would this be the right place to come for help with Launchpad problems?
[04:59] <mdke> yes
[05:00] <Wolever> Allright, well, I had an account with the old Ubu ShipIt, then they switched over to Launchpad and my account did not work anymore.  I just tried to create a new account (with the same e-mail address) and I still can't login (if I click the forgot password link, it tells me that my account details have not been found)
[05:10] <stub> Wolever: What email address did you try to register on Launchpad with?
[05:20] <Wolever> wolever@ftml.net
[05:23] <stub> Wolever: No record of that in the system. I suspect you didn't successfully complete the registration form or something got lost in transmission.
[05:24] <Wolever> stub: Hrm, stange.  I'll try registering again and see if that fixes anything.
[05:24] <stub> There are several other @ftml.net addresses in there, but none resemble yours
[05:24] <Wolever> Ah, ok...
[05:26] <Wolever> This is looking better... The first time I registered it didn't log me in afterwards =\
[05:26] <Wolever> Horra! It works
[05:28] <Wolever> Thanks for the help.
[05:44] <Wolever> http://www.bitpress.com/atari/prog.mov
[05:44] <Wolever> err
[05:44] <Wolever> wrong window =\
[07:21] <dilys> Merge to devel/launchpad: [trivial]  Update pgrestore.py to restore PostgreSQL 7.4 dumps under PostgreSQL 8.0 (r2938)
[08:01] <SteveA> hi
[08:06] <jamesh> hi SteveA 
[08:08] <SteveA> hello jamesh 
[08:08] <SteveA> i just replied to your review of mpt's capitalization branch
[08:08] <SteveA> i want to keep all source code files in launchpad in ascii
[08:09] <SteveA> that should be part of the coding standards
[08:10] <jamesh> SteveA: how about page tests?
[08:11] <jamesh> some of his changes were to switch from straight to curly quotes in the page test output
[08:11] <jamesh> I'm not sure how you'd handle that differently though
[08:22] <SteveA> these cause some problems
[08:22] <SteveA> comparing non-ascii in the pagetest output has caused problems for kiko before
[08:22] <lifeless> SteveA: what prevents us using utf8? (I presume that ascii is a means to an end not an end itself)
[08:23] <SteveA> i think we ended up doing   output = http(....) ; '\{curlyquote} blah blach {curlyquote}' in output; True
[08:24] <SteveA> lifeless: if we start using utf-8 in source files, then we get various problems.  characters start appearing in source files that aren't what they appear to be at first glance.
[08:24] <SteveA> such as quotes that aren't the quote character
[08:25] <SteveA> output of things like diffs that pass through various systems gets mangled
[08:26] <SteveA> it's not like this is a new thing.  the coding standard for launchpad has always been ascii-only source files.
[08:26] <lifeless> I was just curious
[08:26] <SteveA> if we want to change this, we should do so in a well-considered way, and not just because mpt wants it for curly quotes
[08:26] <SteveA> or scott wants it for the copyright-c-circle symbol
[08:26] <lifeless> as, AFAIK, our entire toolchain these days is utf8 safe
[08:27] <SteveA> i remain sceptical, but i'd like to be proved wrong.
[08:27] <lifeless> I don't particularly care myself ;).
[08:27] <SteveA> but, even so, my point about having characters that don't look as they appear to be stands
[08:27] <SteveA> once i redid some tests that daniel had written
[08:27] <lifeless> if we have time at some point, get can look into testing the toolchain we care about
[08:28] <SteveA> they were testing that something took appropriate unicode input and did the right thing with it
[08:28] <SteveA> these tests were in utf-8 encoded source files
[08:28] <SteveA> using, in the source file, various different unicode features such as combining diacritics
[08:28] <lifeless> do you want an ascii lint enforced on commit to pqm ?
[08:29] <SteveA> so that when reading the tests, even in a utf-8 capable editor, it wasn't clear what the input was
[08:29] <SteveA> nor how to maintain it, unless you're a utf-editor-jockey
[08:29] <SteveA> i don't think we need an ascii lint.  having it in the coding standards is enough
[08:30] <SteveA> and there may be exceptional cases were we want to use it
[08:30] <SteveA> an example would be a module written externally that we want in the 'contrib' package
[08:30] <lifeless> I think its the sort of thing that people forget
[08:31] <lifeless> and doing what we have done before, with a list of exceptions, and a check, would provide a small safety net with documentation.
[08:31] <SteveA> do you think ascii lint would be a good thing?
[08:31] <lifeless> yes. It lowers the things people can get wrong by mistake.
[08:31] <SteveA> then sure, go ahead
[08:32] <lifeless> I'll open a bug
[08:32] <lifeless> I think its a low-priority thing
[08:34] <SteveA> ok
[08:34] <lifeless> bug 6065
[08:34] <Ubugtu> Malone bug #6065: non-ascii files should be checked for before pqm commits In: launchpad (upstream), Severity: Normal, Assigned to: Nobody, Status: New https://launchpad.net/bugs/6065
[08:58] <jamesh> spiv: ping?
[08:58] <spiv> jamesh: pong
[08:59] <jamesh> spiv: was the selectOne() usage really that weird?  It seemed pretty natural to me
[09:00] <spiv> jamesh: Well, it seemed weird to me.  :)  But, I'm not sure it really is that weird.
[09:00] <spiv> jamesh: Which is why I suggested asking a few other people and seeing what they think.
[09:00] <spiv> I'm happy to readjust my brain if it makes sense to other people.
[09:09] <stub> I believe Unicode aware editors are free to change the normalization if they feel like it, which will break tests doing byte comparisons.
[09:13] <stub> Bug 5156
[09:13] <Ubugtu> Malone bug #5156: baz-import fails with AttributeError In: bzr (upstream), Severity: Normal, Assigned to: Nobody, Status: New https://launchpad.net/bugs/5156
[09:14] <stub> lifeless: If baz-import bzr or bzrtools?
[09:17] <jamesh> bzrtools, iirc
[09:19] <stub> Bah - no bzrtools product in Launchpad anyway
[09:20] <jamesh> create one then :)
[09:23] <stub> Probably better in bzr anyway - most likely it is a bzr version thing. Just thinking of reasons it might now have been triaged for three weeks (I could, but that would be rude).
[09:28] <jamesh> stub: what's your opinion on using selectOne() with a query that would return multiple results but you've used limit=1?
[09:28] <stub> Fine
[09:29] <stub> Actually I'll qualify that. Fine if you have used an ORDER BY clause guaranteeing what result will be retrieved. Or tests will blow up.
[09:31] <jamesh> sure.
[09:58] <SteveA> i think that a limit of 1 or no limit is all that makes sense
[09:59] <SteveA> the case where there's a limit of 1 and an orderby clause is really saying selectFirst
[09:59] <SteveA> so maybe it is confusing to use selectOne for this
[09:59] <SteveA> selectFirst would have a limit of 1 hardcoded, and would require an orderby
[10:00] <SteveA> and selectOne can remain simpler
[10:02] <stub> I don't see much gain having selectFirst around - may be more precise, but adds another method to remember when to use.
[10:04] <SteveA> i'm reading spiv's original code review of jamesh's changes.  spiv said that it took him a while to see what was going on with using selectOne to get the first result.
[10:04] <stub> selectOne we introduced because select(...)[0]  was a common idiom and hid bugs
[10:04] <SteveA> i think selectOne's specific semantics should be for cases where the application says there should only ever be one or zero results
[10:05] <SteveA> selecting the first only doesn't fall into this usecase, except in one edge-case
[10:05] <stub> which is exactly what is happening when you have LIMIT 1 in your query, which is a common idiom
[10:05] <stub> (eg. "SELECT foo FROM bar ORDER BY foo LIMIT 1" is a common way of retreieving the smallest foo)
[10:06] <SteveA> i think application code reads more clearly using selectFirst than selectOne with a limit.
[10:06] <SteveA> i'm interested to hear other opinions.
[10:06] <stub> I'm -0 anyway. Not particularly fussed
[10:07] <SteveA> i guess selectOneOnly is what i mean
[10:08] <SteveA> daf: hello, around?
[10:08] <jamesh> SteveA: the cases I used selectOne with limit were cases of "get the smallest" or "get the newest" or similar
[10:08] <jamesh> (well, the code was already doing that
[10:08] <stub> I think selectFirst would be correct, which simply does assert orderBy is not None and  returns selectOne (limit=1)  if you want something like this.
[10:09] <jamesh> spiv: does selectFirst() with stub's semantics sound good?
[10:09] <jamesh> I agree that the only values of limit that make sense for a select-with-single-result function are None and 1
[10:09] <SteveA> i'd expect selectOne to have the options of limit=2 or limit=1, but no others.
[10:10] <SteveA> because, if you get 2, then it's an error
[10:10] <jamesh> limit 2?
[10:10] <jamesh> ah.
[10:10] <SteveA> so, rather than putting 'limit' into selectOne
[10:10] <stub> Hmm... that actually could be a good optimization on the PostgreSQL end...
[10:10] <SteveA> the semantic is "error_on_multiple_results=True" as the default we're using
[10:11] <SteveA> i'm surprised we're not using limit=2 already for selectOne
[10:11] <SteveA> so, i suppose my concern is this:
[10:11] <SteveA> right now, we use selectOne in a way where we expect it to give an error if we get 2 or more results
[10:11] <stub> (or maybe not - it is a rare case where PostgreSQL doesn't already know only one result will be returned due to UNIQUE indexes)
[10:12] <stub> (but it wouldn't hurt)
[10:12] <SteveA> and passing in limit=1 is changing that "error on multiple results" behaviour by telling postgres to only sent a maximum of one result
[10:12] <SteveA> i feel uncomfortable about that because it is mixing up the layers
[10:12] <SteveA> although it does get the job done
[10:13] <SteveA> and that unfomfortableness is what led me to suggest selectFirst
[10:13] <SteveA> which would never give that "more than one result" error
[10:13] <stub> It is all perfectly clear if you look at it from the SQL end ;)
[10:17] <daf> SteveA: hi
[10:17] <jamesh> so, selectFirst() then?
[10:20] <SteveA> daf: want to do more rosetta bug stuff on voip today?
[10:20] <SteveA> jamesh: i'd like to get spiv's opinion, as he originally brought it up
[10:21] <daf> SteveA: I do want to, but I've left my headset in Cambridge
[10:22] <SteveA> darn.  we can use irc in any case
[10:22] <SteveA> or even one-way skype ;-)
[10:22] <daf> :)
[10:24] <daf> I'm going to grab some breakfast quickly
[10:24] <daf> how about now + 15?
[10:24] <stub> I've got a failure in xx-shipit-login.txt. Looks like login is succeeding, but the Z3 principals are not being changed causing launchbag.user to still be None
[10:25] <stub> Hmm... probably my fault
[10:28] <SteveA> daf: ok
[10:33] <stub> What listens for CookieAuthLoggedInEvent ?
[10:36] <stub> found it
[10:45] <daf> SteveA: ready when you are
[11:07] <daf> jordi: hi, are you around?
[11:13] <stub> SteveA: What should be handling CookieAuthPrincipalIdentifiedEvent?
[11:15] <jordi> daf: pong
[11:16] <daf> jordi: hi, I've just assigned a bug to you about iso-codes for breezy being unavailable in Rosetta
[11:16] <SteveA> stub: can't remember.  i'd need to look through the code...
[11:17] <daf> jordi: I'm hoping you'll know what to do with it
[11:17] <jordi> let me have a look
[11:17] <daf> I think we should encourage people to use the support tracker for this stuff, but I'm not sure how to do that
[11:17] <jordi> daf: but that's probably carlos' court
[11:18] <stub> A CookieAuthPrincipalIdentifiedEvent is being published, and seems to be handled by authentication.py's handle method. This method happily ignores event.principal, tries to autheticate, and fails. 
[11:18] <stub> I suspect there is another handler that should be being invoked
[11:19] <jamesh> stub: staging.ubuntu.com is giving a Bad Gateway error.  Is that a known problem?
[11:20] <stub> jamesh: As I mentioned in the meeting yesterday, expect staging to be down for the next few days. Postgres7.4-8 migration stuff
[11:20] <jamesh> okay
[11:21] <spiv> jamesh: Sorry, I was at dinner.
[11:21] <spiv> jamesh: Yes, selectFirst sounds good to me.
[11:23] <SteveA> stub: what is emiting the event?
[11:24] <SteveA> stub: can we not have a nice page saying "staging is down because..." ?
[11:26] <stub> SteveA: I havn't even got the rt job for that done on production and you want it on staging?
[11:27] <SteveA> i want the moon on a string
[11:28] <stub> ShipitLoginView is a subclass of LoginOrRegister. LoginOrRegister.process_form is not logging in, causing this for fail. 
[11:29] <stub> It happily authenticates the user, and calls logInPerson() in login.py, giving a valid principal
[11:30] <SteveA> when we have a request where we have a cookie login form
[11:30] <SteveA> when we have a request where we have the cookie login form POST, rather
[11:30] <SteveA> then we have what is initially an anonymous request
[11:30] <SteveA> it is handled by the view, which interprets the form, checks the details, and sets session data
[11:31] <SteveA> from that point on, we also want the user to be logged in
[11:31] <stub> Yup. All that is working.
[11:31] <stub> But they arn't logged in
[11:31] <SteveA> so, that's when the CAPIEvent is sent
[11:31] <SteveA> i think that's meant to log them in... the handler for that
[11:31] <stub> It isn't senting a PrincipalIdentified event, it is sending a CookieAuthLoggedInEvent
[11:32] <stub> Which is handled by authentication.py's handle() function
[11:32] <SteveA> but just in shipit?
[11:33] <stub> The page test that is failing is a shipit one
[11:33] <stub> xx-shipit-login.txt
[11:34] <stub> But logInPerson() always sends a CookkieAuthLoggedInEvent
[11:37] <stub> Which is odd, because logInPerson has been passed a principal to log in, but doesn't propogate it making me think that the wrong event is being published?
[11:38] <stub> I see... then the authenticate method is invokved, basic auth fails, falls through to cookie auth, which first tries to pull the auth data out of the session that we just shoved in there.
[11:40] <stub> Which is where my code changes might start causing problems
[11:40] <SteveA> aha
[11:47] <stub> Looks like a bug in the new session machinery
[11:49] <stub> If you construct your session data storage area, set stuff, and then construct it again in the same request you won't see your changes.
[11:54] <stub> Ahh... but maybe only when you don't have a session cookie set.
[11:57] <SteveA> it would be nice to somewhere somehow detect refusal of the session cookie
[11:57] <SteveA> so we can say "screw you hippie" 
[11:57] <SteveA> and later on, offer basic auth instead
[11:59] <daf> mpt: yo
[12:03] <SteveA> BjornT: hi
[12:03] <SteveA> https://launchpad.net/products/rosetta/+bug/2497
[12:03] <Ubugtu> Error: I cannot access this bug
[12:04] <BjornT> hi SteveA 
[12:04] <SteveA> can we do better at stripping GPG stuff?
[12:05] <daf> the "This is an OpenPGP/MIME..." thing gets in the way of reading the bug description
[12:05] <SteveA> there's also the signature .asc
[12:05] <SteveA> which isn't all that important
[12:06] <BjornT> yes we can. 
[12:06] <BjornT> the "This is an OpenPGP/MIME" stuff shouldn't appear in new comments
[12:06] <SteveA> cool
[12:07] <BjornT> the signature.asc is easy to get rid off. currently IMessage.contents include all the message's parts, when it should only include text/plain parts
[12:10] <BjornT> i'm not sure if we have a use case for the current IMessage.contents, but we could add an IMessage.text_contents, that would contain only the text parts of the message.
[12:10] <SteveA> sounds good
[12:10] <BjornT> that should get rid of most GPG stuff. inline signatures will still appear in comments, though. we could get rid of those as well, but it's a little bit trickier.
[12:11] <BjornT> there should be a bug open for this
[12:12] <BjornT> bug 2653, i'll see if i will have time to fix it today
[12:12] <Ubugtu> Malone bug #2653: Strip signature.asc attachments from e-mailed comments and bug reports In: malone (upstream), Severity: Normal, Assigned to: Bjrn Tillenius, Status: Accepted https://launchpad.net/bugs/2653
[12:18] <SteveA> BjornT: https://launchpad.net/products/rosetta/+bug/2934
[12:18] <Ubugtu> Error: I cannot access this bug
[12:18] <SteveA> i just assigned it to stub
[12:18] <SteveA> but, the original email from stub attempted to set him as the assignee
[12:19] <SteveA> so, maybe there's a bug somewhere/
[12:19] <SteveA> ?
[12:20] <BjornT> sort of. the 'assignee' command is a part of the 'affects' command, and have to appear right after it. this will be fixed in the next rollout, though.
[12:30] <matsubara> good morning!
[12:34] <matsubara> mpt: Hey ho! how was your trip?
[12:46] <daf> lifeless: perhaps the baz stuff in the hacking faq should go to a saeparate page
[12:47] <daf> and be converted to bzr stuff
[12:49] <daf> hmm: https://launchpad.net/products/husna
[01:09] <mpt> matsubara, tiring
[01:15] <matsubara> mpt: You forgot/left over one of your packs here. A green one.
[01:16] <matsubara> mpt: and 2 white blankets
[01:17] <salgado> SteveA, around?
[01:17] <salgado> lifeless, have you seen the whole diff of the mirror-management branch?
[01:27] <SteveA> salgado: yes, although having lunch somewhat
[01:28] <SteveA> mpt: i've been talking with daf about improving certain rosetta UI
[01:31] <mpt> matsubara, I left behind the green bag deliberately, because the vicious So Carlos footpaths broke one of its wheels
[01:32] <mpt> matsubara, I left behind the sheets deliberately too -- they're no use to me
[01:33] <mpt> SteveA, which?
[01:33] <SteveA> https://wiki.launchpad.canonical.com/FindProgramsToTranslate
[01:33] <SteveA> although, the launchpad entry needs updating in that spec
[01:34] <SteveA> this will make things more focused, and also remove a bunch of timeout errors
[01:37] <jblack> lifleess: sure
[01:37] <jblack> lifeless: i'll d that with the rocketful stuff I want to finish today
[01:38] <daf> it sounds like a perfectly plausible word
[01:38] <daf> but I think it may be cromulent
[01:38] <daf> (https://launchpad.net/products/malone/+bug/5251)
[01:38] <Ubugtu> Malone bug #5251: Bugs not vinculated In: malone (upstream), Severity: Normal, Assigned to: Nobody, Status: New https://launchpad.net/bugs/5251
[01:39] <mpt> I noticed that earlier
[01:42] <SteveA> google matches 609 vincluateds
[01:45] <daf> aha, I think it means "to link" in Spanish
[01:46] <mpt> SteveA, I like the focus on workflow, but probably it could do with some simplification
[01:46] <mpt> Most importantly, I doubt that translators are going to start by going from launchpad.net/ to launchpad.net/distros/ubuntu
[01:46] <daf> mm, that bit is a bit dodgy
[01:47] <daf> but Ubuntu is a pretty big link on the front page
[01:47] <daf> s/big/prominent/
[01:47] <mpt> At least if I was wanting to translate, I would click the link that says "Translations"
[01:47] <daf> true
[01:47] <SteveA> i think many people want to translate a particular favourite program
[01:47] <mpt> especially if I didn't realize that Launchpad hosted distributions other than Ubuntu
[01:48] <mpt> so I didn't realize I *could* even go into the Ubuntu context, let alone that it was a good idea to do so
[01:49] <daf> the "Translateble APplications" table: the "application" column seems redundant
[01:49] <daf> (https://launchpad.net/rosetta)
[01:49] <mpt> yes
[01:50] <mpt> they're url-names
[01:51] <daf> source package names, perhaps?
[01:51] <daf> or bianries
[02:06] <dilys> Merge to devel/launchpad: [r=Bjornt]  fixing bug # 6040, bug # 4810, bug # 3530 and bug # 3531. Fixing minor on buildd infrastructure (bad zipped tempfile name), Soyuz/Buildd UI improvements (build state selector, common templates and widgets, etc). (r2939: Celso Providelo)
[02:37] <salgado> SteveA, on of lifeless' emails for the review of my mirror-management branch asks for your thoughts. have you seen that email?
[02:37] <salgado> SteveA, Subject: Re: Urgent review request attn: stevea
[02:37] <SteveA> i have it flagged, but not properly read
[02:38] <salgado> another thing I'd like to talk to you is about defining a policy for where we should place view classes
[02:38] <salgado> I thought we should always keep view classes that share the same context in the same file, but this is not always true
[02:40] <salgado> for instance, things like BugAttachmentAddView are defined in bugattachment.py, although it's context is a Bug
[02:40] <salgado> on the other hand, the zcml for the page that uses BugAttachmentAddView is in bug.zcml
[02:41] <salgado> SteveA, do you think it's worth having a policy for this, and have it formalized on the wiki?
[02:41] <SteveA> salgado: i'm working with daf on bug triage at the moment.  i'd like to talk about this with you later, when i can give my attention to it
[02:42] <salgado> SteveA, sure
[02:47] <jblack> stevea: ping
[02:47] <SteveA> hello jblack 
[02:48] <jblack> Mind if I bother you privately for a moment?
[02:49] <SteveA> daf: can i take 5 for a chat with jblack?
[02:49] <daf> certainly
[02:57] <bradb> SteveA: Can you add me to your queue too please? :) Questions about Bugzilla => Malone transition and implementing keywords.
[03:01] <SteveA> bradb: can we talk later on, after daf has finished work?
[03:02] <bradb> SteveA: Sure. What time is that, UTC?
[03:04] <SteveA> it's 2 UTC now
[03:04] <SteveA> daf: how much longer are you working today?
[03:05] <daf> good question
[03:06] <daf> still another 3 hours or so, I think
[03:06] <daf> so perhaps you should talk to Brad now
[03:07] <SteveA> brad should be around for a while i think
[03:07] <bradb> A long while, yes.
[03:07] <SteveA> so let's continue looking through rosetta bugs
[03:07] <SteveA> and i'll talk with brad later on
[03:07] <daf> depends if it's blocking you or not
[03:07] <daf> ok
[03:07] <bradb> sounds good. /me fades into the background
[03:58] <SteveA> bradb: want to chat now?  daf's taking a food break
[03:59] <bradb> SteveA: Sure.
[04:37] <SteveA> daf?
[04:39] <daf> Steve
[04:39] <SteveA> how's your lunch going?
[04:39] <daf> it's finished
[04:39] <SteveA> cool
[04:39] <SteveA> more bugs?
[04:39] <daf> yep
[05:04] <sivang> daf: lunch now ? :)
[05:06] <daf> a late lunch
[05:06] <daf> definitely too early for dinner
[05:07] <sivang> daf: probably :-D
[05:07] <sivang> jblack: around?
[05:08] <sivang> btw, who of the lp folks are also off between 25-1jan ?
[05:13] <daf> almost all of us, I think
[05:59] <salgado> SteveA, do you have some time to talk about that issue now?
[06:00] <SteveA> salgado: i'm still working with daf
[06:00] <SteveA> can i answer the basic question, and we can have the discussion later?
[06:00] <salgado> sure
[06:01] <SteveA> what is the basic question?
[06:02] <salgado> SteveA, if a view class is defined in browser/foo.py, then a page that uses that view should be declared in zcml/foo.zcml. do we have a policy like this or something similar?
[06:03] <SteveA> the overall policy is that we put things where someone familiar with the launchpad codebase would expect to find them
[06:10] <SteveA> now, there's an interesting case for adding things
[06:11] <SteveA> because the context for a view that adds things is something else
[06:11] <SteveA> such views to do with adding things should be grouped with the things being added, in general.
[06:13] <salgado> sometimes I find it confusing when looking for one of the add views in the thing's zcml file
[06:13] <salgado> because right now, these views are in the context's zcml file
[06:15] <salgado> and when I'm trying to find the view that's used in a given page, I first grep for the page name inside zcml/*, get the filenames that match and then look into that filename inside browser/
[06:16] <salgado> but when it's an add view, I won't find it there
[06:16] <salgado> anyway, this is no big deal. I can live with it as it is, easily
[06:17] <SteveA> salgado: add it as a launchpad hackers' FAQ, without an answer
[06:17] <SteveA> or with "steve should answer this!"
[06:18] <salgado> SteveA, what I really want is your input on that email lifeless sent. I need to land that mirror-management branch before I leave. so, I'd appreciate if you could reply to that today
[06:22] <SteveA> salgado: in the email, i don't really know what is being asked
[06:22] <SteveA> we don't need to pay a lot of attention to handling form submissions that haven't come from the application
[06:22] <SteveA> or have come from an older version of an application
[06:23] <SteveA> so long as they won't do damaging things
[06:24] <salgado> that won't do any damage if the form comes from an older version of the app
[06:24] <salgado> neither if it doesn't come from the app at all
[06:25] <SteveA> then, there is no problem.  the form handler must be polite for any data it receives from the current form
[06:25] <SteveA> but it can give an AssertionError or something if it receives data not from the app
[07:01] <sivang> daf: have you updated the official languages in .il for rosetta ? Is that what you were pinging me about?
[07:05] <daf> er, did I ping you?
[07:05] <daf> I can't remember
[07:07] <sivang> daf: yeah, you pinged me 2 days ago IIRC
[07:07] <sivang> daf: there was a guy "nakee" opening a bug report about official langs in rosetta for .il
[07:07] <daf> that was probably it
[07:07] <daf> he said "aramic" -- do you think he meant "arabic" or "aramaic"?
[07:09] <sivang> he was talking about aramic
[07:09] <sivang> no idea why he mentioned it
[07:09] <sivang> it's an ancient language that's not spoken anymore
[07:10] <sivang> he also said english is an official language, while I belive it's not - as per my comment and wikipedia links on the bug report
[07:10] <sivang> so it's only arabic and hebrew
[07:10] <daf> well, he said "Yes acording to dry law Israel gave up english as a formal language."
[07:11] <LarstiQ> "dry law"?
[07:11] <daf> but at any rate, I don't think any English spoken in Israel would be sufficiently different to merit its own code
[07:12] <daf> I was wondering if perhaps "aramic" is a typo
[07:12] <daf> for "arabic"
[07:12] <daf> in English, there's no such word "aramic", only "aramaic"
[07:12] <LarstiQ> possibly, I think it is rather aramaic though
[07:13] <LarstiQ> daf: I would have translated it to aramic myself too, before you mentioned aramaic
[07:13] <daf> Wikipedia says Aramaic is still spoken in Israel
[08:14] <Seveas> sorry for ubugtu's flooding - testing a new version of the Malone plugin and something is wrong :)
[08:14] <LarstiQ> heh
[08:22] <dilys> Merge to devel/launchpad: [r=Bjornt]  fixing bug # 6040, bug # 4810, bug # 3530 and bug # 3531. Fixing minor on buildd infrastructure (bad zipped tempfile name), Soyuz/Buildd UI improvements (build state selector, common templates and widgets, etc). (r2940)
[08:59] <LarstiQ> Seveas: ah, working again?
[09:00] <Seveas> testing now (the error was during starting/exiting, which is really annoying)
[09:11] <Seveas> ok, now it's working again, with shiny new code I'm no longer embarrased of :)
[09:12] <LarstiQ> heh
[09:13] <Seveas> the old plugin was a collection of dirty hacks
[09:13] <Seveas> the new one is nice, less hackish code
[09:25] <matsubara> Seveas: is dilys code available?
[09:25] <Seveas> I don't run dilys 
[09:26] <Seveas> but I guess that even when it's available it's of little use since it's quite tied into launchpad, which is not yet open source
[09:26] <matsubara> Seveas: you run ubugtu, right?
[09:27] <Seveas> yes
[09:28] <matsubara> I see, and i think daf runs dilys. I got confused. So, Is ubugtu code available?
[09:28] <Seveas> not yet
[09:29] <Seveas> but Ubugtu is a supybot, so it's only my plugin that is not yet available.
[09:29] <Seveas> It wil be when I finish the debbugs part
[09:36] <matsubara> Seveas: interesting. I'll sure take a look at it when you release. :)
[09:37] <Seveas> ping me again in a few hours, it should be done by then :)
[09:42] <matsubara> Seveas: I'll probably not be here. But we'll look for it after the holidays.
[09:49] <Seveas> happy holidays :)
[09:51] <Seveas> partial results
[09:51] <Seveas> debian bug 300123
[09:51] <Ubugtu> Debian bug 300123: "alt-. gives wrong signal to zsh" Package: xterm, Version: 4.3.0.dfsg.1-8;, Severity: important, Maintainer: Debian X Strike Force  http://bugs.debian.org/300123
[09:51] <Seveas> so that already works, about 30 minutes max until completion :)
[09:54] <bradb> Using browser:generalform, the IBugTask.product field, and its SinglePopupWidget, the field is always blank when the form gets rendered. Any ideas?
[10:09] <bradb> Ah, I think I know why. GFV uses setUpWidgets and not setUpEditWidgets
[10:12] <Seveas> matsubara, http://bugbot.ubuntulinux.nl
[10:13] <Seveas> join #supybot
[10:13] <Seveas> ehm right, that should be with an /
[10:13] <bradb> Using setUpEditWidgets seems to fix this problem, w00t.
[10:37] <matsubara> Seveas: thanks, will take a close look later. 
[10:38] <matsubara> To all you launchpadders a Merry Christmas and a Happy New Year! See you all on the next year. Take care.
[10:48] <Seveas> !config channel Plugins.Bugtracker.snarfTarget malone
[10:48] <Ubugtu> The operation succeeded.
[10:52] <dilys> Merge to devel/launchpad: [trivial]  Update tsearch2 dictionaries when migrating a database from PostgreSQL 7.4 (r2942: Stuart Bishop)