[12:17] <kiko> jbailey, yes, both are bugs. the latter I think is filed, though -- salgado?
[12:19] <jbailey> Hmm
[12:20] <salgado> jbailey, you mean that your karma counter wasn't updated or that you don't see the actions performed by jbailey-ubuntu on your "Show Karma" page?
[12:21] <jbailey> salgado: The karma counter wasn't updated.  It was 25 under jbailey-ubuntu.  I merged it into jbailey where my karma count was, and remains 0
[12:21] <salgado> jbailey, that counter is a cached value
[12:22] <salgado> it's updated daily
[12:22] <jbailey> Ah a'ight.
[12:22] <jbailey> Perhaps it should indicate that near it?
[12:23] <salgado> yes, that's probably a good idea
[12:23] <jbailey> I probably wouldn't have noticed except that it went from non-zero to zero.
[12:23] <jbailey> The first bug is probably a bit more troubling, given that it means that you now have data corruption in the database.
[12:25] <salgado> the first is really problematic. we have a bug filed on that for some time now, and I think stub is in charge of it
[12:27] <salgado> jbailey, first you need to know in which package/product/distro you want to search
[12:28] <salgado> we don't have any place where you can search through all the bugs database, like we do in bugzilla
[12:28] <jbailey> Ah, right.
[12:28] <jbailey> I had just expected clicking on bugs to take me to something like that, but it appears that it's only to do with bugs that I care about.
[12:29] <jbailey> Perhaps it might be cool if there were a quicklinks set in there to take me to products that I"m involved with?
[12:29] <jbailey> It wasn't obvious that I otherwise had to click on launchpad and *then* the same Bugs link in the corner.
[12:30] <salgado> jbailey, right. that are the bugs that are somewhat related to you (or whoever person you're looking at the page)
[12:30] <jbailey> 'k
[12:30] <jbailey> I'm just trying to search for that other bug so that I can add to it "and please fix my account too" =)
[12:31] <jbailey> 1136 lovely
[12:31] <salgado> heh. in that case I guess the easiest way to do is to search for the product where the bug is reported
[12:31] <salgado> in this case, it's launchpad
[12:31] <sabdfl> salgado: it wouldn't be difficult to bump the karma cache up, for bonus points ;-)
[12:32] <salgado> sabdfl, indeed, it could easily be done when we finish the merge
[12:32] <sabdfl> jbailey: go ahead and file a bug on that, assign to salgado, post-shipit-ng :-)
[12:33] <salgado> salgado-post-shipit-ng
[12:33] <salgado> that's another person
[12:33] <kiko> I knew that person once
[12:33] <kiko> gpgme is fun
[12:33] <jbailey> Uh oh, sabdfl's smiling again /me backs away slowly.
[12:34] <kiko> sabdfl, help me remember -- did we use to have a +contribute URL on distribution?
[12:34] <sabdfl> kiko: no
[12:34] <kiko> hmmm
[12:34] <kiko> I have to wonder how we're getting hits to it in the error log
[12:34] <sabdfl>  +gethelp and +translate on source package, if LaunchpadIntegration is what you are after
[12:35] <kiko> yeah, I remember
[12:35] <sabdfl> there was a LP-Integration detour which might have involved that
[12:35] <Keybuk> kiko: do you record the referrer(sic) ?
[12:35] <kiko> we do, but this page expired
[12:35] <kiko> I've asked about this before but couldn't
[12:36] <kiko> get a straight answer
[12:36] <sabdfl> well, for a start, it's stored in-memory
[12:36] <sabdfl> in the zodb, i think
[12:36] <kiko> that could probably be fixed quite easily
[12:36] <kiko> the issue is what bugs that would trigger
[12:39] <sabdfl> night all
[12:39] <kiko> night mark
[01:11] <Kinnison> How does one issue a warning in python?
[01:13] <Kinnison> cprov: ^^ ?
[01:13] <cprov> Kinnison: big pardon ?!
[01:13] <Kinnison> cprov: SteveA wants me to issue a warning if a certain kwarg is true
[01:14] <Kinnison> like assert, only a warning
[01:14] <cprov> Kinnison: indeed there is, I just don't remember the sintaxe
[01:18] <cprov> Kinnison: >> from warnings import warn
[01:18] <cprov> Kinnison: >> warn("BIG Warning")
[01:18] <cprov> Kinnison: __main__:1: UserWarning: BIG WARN
[01:18] <Kinnison> cool
[01:18] <Kinnison> ta
[01:19] <cprov> Kinnison: oops, mixed commands, paste wrong output, don't give me attention :(
[01:20] <cprov> Kinnison: further info at http://python.active-venture.com/lib/module-warnings.html
[01:32] <stub> And please use stacklevel=2 argument to warn so the callsite is referenced and the tit in question can be traced
[01:36] <Kinnison> so warn("foo", stacklevel=2) ?
[01:51] <Kinnison> I'll take that as a 'yes' ;-)
[02:02] <stub> Kinnison: yes ;)
[02:08] <niran> if the import test fails for a CVS project in the launchpad, is there a way to fix it so it will actually import?
[02:13] <cprov> stub: can you have a quick look on bug #2102, please ? it'sabout an odd problem with unicodes in a GPG related page.
[02:16] <stub> cprov: There is no bug 2102
[02:17] <Kinnison> He says 
[02:17] <Kinnison> 2101
[02:17] <Kinnison> sorry
[02:18] <stub> Just commented on that one actually
[02:22] <cprov> stub: I apologize the mistake with bug number and thank you for the comment.
[02:28] <cprov> anyway, time to sleep, night hackers
[02:28] <Kinnison> night all
[02:41] <sladen> calendar needs some love
[03:18] <tiborius> hi.  is the rosetta source going to be opened?  when?
[03:20] <bob2> it's planned to at some point, not date has been set
[03:21] <tiborius> bob2: do you know something about cooperation with the debian project in this field?
[03:22] <tiborius> bob2: i found only some complains on the debian-i10n ml about rosetta
[03:22] <bob2> how so?
[03:23] <tiborius> i guess they planned to use pootle, if anything
[03:35] <goofrider> hey anyone can help me delete an uid and a project I created by mistake?
[03:36] <stub> I can
[03:36] <stub> if you give me the details
[03:36] <elmo> dee-bee-ay to tah RESQUE!
[03:36] <goofrider> I went to Launchpad trying to report a bug on Mantis
[03:36] <goofrider> and ended up 1. created another uid (I didn't realize I already had one)
[03:37] <goofrider> and 2. Created Matnis as a project, which I don't maintain
[03:38] <kiko> goofrider, no worries, we can fix both :)
[03:39] <goofrider> the uid I don't need was renamed to old-goofrider
[03:39] <goofrider> and i transfered Mantis to that uid
[03:39] <kiko> goofrider, you can merge accounts in launchpad
[03:39] <kiko> this is the correct way of indicating you've found a dupe in there
[03:39] <goofrider> u can belete both. If u have questions about the authenticty, let me know what I can do for more proof
[03:39] <kiko> accounts should be merged
[03:40] <kiko> a mantis product is more interesting
[03:40] <kiko> I can reassign it to the registry admins
[03:40] <kiko> you wanted to file a bug on the mantis source package I imagine
[03:40] <goofrider> thank u, that would be gr8
[03:40] <goofrider> no it was a dpkg script problem
[03:40] <goofrider> so it's either belong to Debian or Ubuntu
[03:42] <kiko> heh
[03:42] <kiko> dpkg script?
[03:43] <goofrider> oh actually i was only gonna report a missing dependancy
[03:43] <kiko> ah
[03:43] <kiko> still
[03:43] <kiko> motu
[03:43] <goofrider> it required "makepasswd"
[03:43] <goofrider> I'll let them know over there
[03:44] <goofrider> I just assumed that LaunchPad was a bug DB (cuz I was redirected from Ubuntu Bugzilla's website) and was on autopilot to report bugs
[03:44] <kiko> heh
[03:44] <kiko> you can file motu bugs in launchpad
[03:45] <kiko> so owner fixed
[03:45] <goofrider> right... that's how I ended up created projects I don't own
[03:45] <goofrider> LOL
[03:45] <kiko> https://launchpad.net/malone/bugs/+package
[03:45] <kiko> visit that page
[03:45] <kiko> type "mantis" in the source package page
[03:45] <kiko> s/page/field
[03:46] <goofrider> ah.............
[03:46] <goofrider> thanks
[03:46] <kiko> right
[03:47] <kiko> or from https://launchpad.net/distros/ubuntu
[03:47] <kiko> (this is the "more correct" way to file bugs)
[03:47] <kiko> click on bugs
[03:47] <kiko> then file a new bug
[03:48] <goofrider> i just did
[03:52] <kiko> goofrider, do you want help merging your accounts?
[03:52] <goofrider> you can just delete "old-goofrider"
[03:53] <goofrider> there's nothing there needed to be kept
[03:53] <kiko> we don't delete accounts in launchpad
[03:53] <kiko> and there is probably something attached to it that you don't know of yet :-)
[03:53] <kiko> if you have ever translated or imported a package, you need it
[03:53] <jamesh> spiv: ping?
[03:53] <goofrider> ok then, sure. Merge them. What do I have to do?
[03:53] <spiv> jamesh: pong
[03:54] <kiko> heya jamesh, spiv 
[03:54] <jamesh> spiv: time for a sqlobject question?
[03:54] <spiv> Sure.
[03:54] <kiko> goofrider, fun! visit https://launchpad.net/people/+requestmerge and follow the yellow brick road
[03:54] <goofrider> thanks kiko
[03:54] <jamesh> spiv: do you know what's necessary to synchronise sqlobject's state after doing a PersonSet.merge() call?
[03:55] <spiv> flush_database_updates()
[03:55] <jamesh> doesn't seem to help
[03:55] <jamesh> it's weird
[03:55] <kiko> enjoy goofrider 
[03:55] <spiv> Hmm.  That's surprising.  What do you mean by "synchronise"?
[03:56] <jamesh> spiv: the SQL objects I have don't seem to see the changes made by the merge() call
[03:56] <jamesh> I wonder if they are being done in a different (parallel) transaction?
[03:56] <spiv> In the same transaction?
[03:56] <spiv> I see your guess is the same as mine :)
[03:57] <spiv> But PersonSet.merge() should happen in the current transaction.
[03:57] <spiv> Ooh...
[03:57] <spiv> PersonSet.merge does direct SQL, doesn't it?
[03:57] <jamesh> yes
[03:57] <spiv> Hmm, really the entire SQL cache needs to be invalidated.
[03:57] <jamesh> lots of it
[03:57] <spiv> s/SQL/SQLObject/
[03:58] <spiv> (this is the danger of using and ORM, and then going behind its back)
[03:58] <spiv> PersonSet.merge should probably start with a flush_database_updates, and end with invalidating the SQLObject cache for the current transaction.
[03:59] <jamesh> what do I need to do to invalidate the SQLObject cache?
[04:00] <spiv> SQLBase._connection.cache.clear() looks likely.
[04:02] <spiv> I'd like to teach SQLObject to do this automatically any time SQL is issued directly.
[04:02] <spiv> It shouldn't be too hard to do.
[04:03] <jamesh> doesn't seem to help in my tests.  Would I need to get new SQLObjects for rows I have references to after clearing the cache?
[04:03] <spiv> (unless you *explicitly* tell it that a given invocation won't affect it, which should be rare)
[04:04] <spiv> I'd hope not.
[04:04] <spiv> But hmm...
[04:06] <jamesh> canonical.database.sqlbase._clearCache() doesn't seem to do it either
[04:08] <spiv> jamesh: You need a bigger hammer than flush_database_objects
[04:08] <spiv> jamesh: You need a variant of that that calls object.sync() rather than object.syncUpdate(), I think.
[04:09] <spiv> I'm not sure what sqlobj.sync() will do if sqlobj has been deleted in the DB, though.
[04:10] <spiv> Hmm, it'll raise SQLObjectNotFound.
[04:10] <jamesh> raise SQLObjectNotFound, "The object %s by the ID %s has been deleted" % (self.__class__.__name__, self.id_
[04:10] <jamesh> yeah
[04:10] <spiv> And fail to invalidate it :(
[04:11] <spiv> Ok, so:
[04:11] <spiv> try:
[04:11] <spiv>  obj.sync()
[04:11] <spiv> except SQLObjectNotFound:
[04:11] <spiv>  obj.expire()
[04:11] <spiv> Looks like it would do the right thing.
[04:12] <spiv> Hmm, or just: obj.expire(); obj.sync()?
[04:16] <jamesh> that's not enough
[04:16] <jamesh> SQLBase._connection._dm.objects will just keep track of the "dirty" objects, right?
[04:16] <jamesh> whereas after doing arbitrary SQL, any object could be dirty
[04:17] <spiv> Let me look.
[04:18] <spiv> You might be right, you may need to iterate over SQLBase._connection.cache.something
[04:19] <jamesh> if I get hold of the non-security wrapped person object and call sync() on it, everything is fine.  But just iterating over SQLBase._connection._dm.objects and calling sync() doesn't help
[04:19] <spiv> Yeah, you're right.
[04:19] <spiv> Well, that fixes the problem you see right now.
[04:19] <spiv> But it's possible, perhaps even likely, that other SQLObjects in that transaction are similarly broken.
[04:20] <jamesh> yep
[04:20] <spiv> So just syncing the one object is a bit fragile.
[04:20] <jamesh> I know.  The above is my reason for thinking that the _dm.objects sequence only contains the objects SQLObject thinks are dirty
[04:21] <jamesh> rather than the objects that actually are dirty
[04:21] <spiv> Right, it does.
[04:21] <spiv> (that's what I was confirming with the "Yeah, you're right."
[04:21] <spiv> )
[04:22] <spiv> So the _connection.cache is what we need to iterate over.
[04:22] <spiv> Which isn't trivial, unfortunately.
[04:22] <spiv> See lib/sqlobject/cache.py
[04:22] <spiv> you need something like:
[04:23] <jamesh> I'm looking there
[04:23] <jamesh> iterate over cache.allSubCaches(), then expireAll() on each cache?
[04:23] <spiv> I don't think so.
[04:24] <spiv> That will leave live SQLObjects inconsistent.
[04:24] <spiv> So you need to do "for cache in subcaches: for obj in (cache.cache.values() + cache.expiredCache.values(): obj.sync()"
[04:25] <spiv> If I'm reading that correctly.
[04:25] <kiko> stub, I love xx-notfound-traversals
[04:25] <spiv> All expireAll does is move objects from Cache.cache to Cache.expiredCache
[04:26] <jamesh> seems better
[04:26] <jamesh> I didn't touch expiredCache though
[04:26] <spiv> Fair enough.
[04:26] <spiv> I don't understand what the expired cache is for.
[04:27] <jamesh> expiredCache holds weak references to objects that have been freed
[04:27] <jamesh> s/freed/aren't being used anymore/
[04:29] <jamesh> what do you think a good name for this would be?
[04:29] <spiv> Hmm, and yet it still happily retrieves things from it in e.g. tryGet.
[04:30] <jamesh> not quite
[04:30] <jamesh> the values are weak refs
[04:30] <spiv> I have a feeling that to be 100% correct we should also sync any expiredCache entries that still have live weak refs.
[04:30] <jamesh> so it returns "value()" (the value the weak ref points at)
[04:30] <jamesh> which could be None if the object has been freed (okay, since this is a cache)
[04:30] <spiv> Right, which will be the object if there's a strong reference to it somewhere.
[04:31] <jamesh> or if it is awaiting garbage collection
[04:31] <spiv> And if there's a strong reference, then probably it needs fixing.
[04:32] <spiv> True.  But also if it is still in use somewhere, afaict?
[04:32] <jamesh> yeah
[04:33] <spiv> I'm not sure that the circumstances of object expiry guarantee that it isn't still used.  (although I have a suspicion that those circumstances might not actually arise at all in our code, but that's pure guesswork)
[04:33] <jamesh> what do you think would be a good name for this function? flush_database_caches()?
[04:33] <spiv> sync_database_caches(), perhaps, although the similarity with flush_database_updates() is good to highlight.
[04:35] <spiv> Yeah, flush_database_caches() is fine with me.
[05:00] <jamesh> spiv: thanks.  It's working nicely now
[05:00] <spiv> jamesh: Excellent :)
[05:45] <kiko-zzz> jamesh, check out https://launchpad.net/malone/bugs/1564 and see if anything applies to that :-)
[05:47] <jamesh> kiko-zzz: I've got my script to commit() after processing each cluster of email addresses.  If I read the comments on that bug right, that should work for me.
[05:47] <kiko-zzz> great
[09:38] <SteveA> morning
[09:38] <Nafallo> morning SteveA :-)
[09:38] <SteveA> hi Nafallo 
[09:39] <Nafallo> good work on bzr btw, whoever it was :-)
[09:39] <Nafallo> kept me up all night :-P
[09:39] <SteveA> that'll be mpool and lifeless and others
[09:40] <SteveA> pop onto #bzr and express yourself!
[09:40] <Nafallo> I'm tired ;-)
[09:40] <SteveA> i'm sure they'll appreciate it
[09:40] <Nafallo> probably after I've slept :-)
[09:40] <Nafallo> he should I ask about kicking hct on gajim btw? :-)
[09:40] <SteveA> what is gajim?
[09:41] <Nafallo> our new favorite among the jabberclients :-)
[09:41] <Nafallo> it's simply awesome! :-)
[09:42] <SteveA> really?  i should try it out.  i'm using gossip, but unhappy with it
[09:42] <Nafallo> www.gajim.org
[09:42] <Nafallo> and it's on launchpad to :-)
[09:50] <Nafallo> SteveA: running breezy btw? :-)
[09:57] <SteveA> Nafallo: not yet.
[10:00] <Nafallo> SteveA: ah, gajim is in there :-)
[10:01] <SteveA> i'll be switching pretty soon, as will most other launchpad developers.
[10:04] <Nafallo> :-)
[10:05] <Nafallo> even my girlfriend switched already ;-)
[10:09] <sivang> morning all
[10:10] <Nafallo> morning sivang 
[10:10] <lifeless> SteveA: ping, python style question
[10:11] <sivang> Nafallo: what was it the kept you up all night? :)
[10:12] <Nafallo> sivang: bzr ;-)
[10:13] <Nafallo> and things in launchpad I didn't knew was there yet ;-)
[10:21] <SteveA> hello lifeless 
[10:21] <SteveA> reading email and listening to loud music --  the ping doesn't stand a chance
[10:22] <lifeless> PIGN
[10:22] <lifeless> :)
[10:22] <sivang> Nafallo: ah, new features added?
[10:22] <Nafallo> sivang: dunno :-). first time I tried it last night ;-)
[10:23] <Nafallo> sivang: but 0.0.7 or something like that got synced from debian yesterday :-).
[10:32] <sivang> Nafallo: cool
[10:53] <SteveA> Kinnison: so, python's sorted() and a list's .sort() method have a 'key' argument you can use
[10:53] <SteveA> you give this some function that is called with an object from the list, and it returns a (usually) simpler object that can be sorted with.
[10:54] <SteveA> this is more efficient than using __cmp__ because computing the sort key need be done only once per list element.
[10:54] <SteveA> the sort key is typically a number, a string, or a tuple of numbers, strings or tuples.
[10:55] <Kinnison> I see
[10:55] <SteveA> so, it makes sense to have certain database objects grow somedescription_sortkey() functions
[10:56] <Kinnison> I imagine this has to be an @staticmethod ?
[10:56] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Publisher fixes for reworked DB. Updated dominator, now working for entire ubuntu archive r=stevea (patch-2362: daniel.silverstone@canonical.com)
[10:56] <SteveA> Kinnison: a regular method, i think
[10:56] <SteveA> i shall give an example"
[10:57] <Kinnison> please
[10:57] <SteveA> >>> L = ['foo', 'bar', 'Baz'] 
[10:57] <SteveA> >>> sorted(L)
[10:57] <SteveA> ['Baz', 'bar', 'foo'] 
[10:57] <SteveA> >>> sorted(L, key=str.lower)
[10:57] <SteveA> ['bar', 'Baz', 'foo'] 
[10:57] <SteveA> >>>
[10:57] <Kinnison> Right, so you get the method out of the class
[10:57] <SteveA> yes
[10:57] <SteveA> kinda rude
[10:58] <SteveA> so, these sortkey things should probably go on the IContentSet utility for launchpad
[10:58] <SteveA> and look like
[10:58] <SteveA>   def version_sortkey(self, binary_package):
[10:58] <SteveA>       ...
[10:59] <SteveA> seeing as we don't actually use database classes directly in launchpad 
[10:59] <cprov> Kinnison: see http://docs.python.org/whatsnew/node12.html for documentation purposes
[10:59] <Kinnison> I thought we were trying to make me not need to 'if isSource:' ?
[10:59] <Kinnison> so I'd end up with something like: L.sort(key=L[0] .__class__.version_sortkey)
[11:00] <Kinnison> or am I going mad?
[11:00] <carlos> morning
[11:00] <SteveA> Kinnison: we'd end up with either a function or an interface for it, i think
[11:00] <SteveA> which are basically the same thing
[11:01] <SteveA> so, sorted(L, key=IVersionSortKey)
[11:01] <Kinnison> SteveA: I'm not quite following you, but I've not had any coffee yet this morning, so perhaps after a drink I'll be okay
[11:01] <SteveA> that would adapt each object to IVersionSortKey
[11:01] <SteveA> and we can define that appropriately for binary packages and source packages
[11:01] <Kinnison> aah right
[11:12] <Kamion> Hmm. So I merged one of my accounts (cjwatson) into the other (kamion).
[11:12] <Kamion> cjwatson was a member of two teams, though - techboard (deactivated) and communitycouncil (approved)
[11:13] <Kamion> and kamion doesn't now seem to be
[11:13] <Kamion> is there a bug in account merging there?
[11:14] <Kamion> also I don't seem to be able to rename kamion back to cjwatson (I really should've done the merge the other way round), because "This name is already in use"
[11:14] <Kamion> but /people/cjwatson shows nothing
[11:20] <cprov> Kamion: I'd suggest you to file a bug and salgado can have a look on this as soon as he start today, unfortuatelly in around 3 hours.
[11:20] <SteveA> Kamion: i'll mail what you wrote to the launchpad list for the attention of stu and salgado
[11:23] <SteveA> Kamion: is anything really bad going to happen if this isn't fixed until later this afternoon?
[11:41] <Kamion> SteveA: hell no, not urgent
[11:47] <Kamion> Ah, I see my bug is already filed as #1136.
[11:49] <Kinnison> OOI, why is it https://launchpad.net/ and not https://www.launchpad.net/ ?
[11:50] <SteveA> why do we need the 'www' part?
[11:50] <SteveA> the address works, and redirects
[11:50] <SteveA> so it is okay for business cards and other printed materials where people get confused by "http://" and understand the "www." part
[11:51] <SteveA> Tim B-L has publicly stated that he would have liked to remove the mandatory "//" in the HTTP url scheme, and other similar ones
[11:51] <SteveA> now, if only 'http' had been pronounceable...
[11:52] <SteveA> but, www:launchpad.net might have actually caught on in the same way as www.launchpad.net
[11:52] <SteveA> http:launchpad.net wouldn't have caught on, because of the ugliness and unpronounceableness of 'http'
[11:53] <lifeless> SteveA: hmm, the // indicates its a hierarchical scheme
[11:53] <lifeless> SteveA: some value in that
[11:54] <SteveA> "http" indicates a hierarchical scheme
[11:54] <SteveA> it is redundant
[11:55] <SteveA> basically, the committe doing the URL RFCs would have benefited from having some UI people there
[11:56] <SteveA> many people i know can't type in an address like 'launchpad.net' into their browser.  they insist on putting a 'www.' in front of urls, even if i tell them not to.
[11:56] <SteveA> rather than fight it, i think the right thing to do is to make sure that www.(thing) works, and redirects to (thing)
[11:57] <Kinnison> I like using the www. because it indicates that I want the host which does web services, not the host which is the domain
[11:57] <lifeless> I agree with steve
[11:57] <Kinnison> :-)
[11:57] <lifeless> Kinnison: do you like mailing to 'foo@mail.foo.com' ?
[11:57] <Kinnison> lifeless: Nope. I never said my preference was rational or consistent. It just *is* my preference
[11:59] <Znarl> It's making the assumption that the default use of the domain is a webserver.
[12:00] <Kinnison> Znarl: which, for launchpad, I guess is okay
[12:00] <Kinnison> I just hate bare domain names in URLs
[12:00] <Kinnison> s'personal
[12:01] <SteveA> ?
[12:01] <SteveA> i always thought that the point of ports was to allow a single domain name to be used for a variety of things.
[12:01] <Znarl> Something in the future may come along which is more useful then a webserver for exchanging information.  Then it will become confusing.
[12:01] <bob2> s/domain/host/
[12:01] <SteveA> i often visit ftp sites in my web browser ;-)
[12:01] <Kinnison> SteveA: host
[12:02] <bob2> :-)
[12:03] <Kinnison> Consider this: http://rafb.net/paste/results/27HeYq92.html
[12:03] <Kinnison> That's one domain (pepperfish.net)
[12:03] <Kinnison> three different addresses shown
[12:03] <Kinnison> because... they're seperate services which could be on separate machines
[12:03] <SteveA> sure
[12:04] <SteveA> that's tech person stuff
[12:04] <bob2> why do you have a chained CNAME?
[12:04] <Kinnison> bob2: long story
[12:04] <bob2> hah, I bet
[12:04] <Kinnison> SteveA: Consider this... if I use http://pepperfish.net/ then if the web host moves (which is likely soon) I'd be stuck having to move the A record for pepperfish.net too. Which will cock up my being able to ssh to pepperfish.net
[12:05] <SteveA> why are you sshing to pepperfish.net ?
[12:05] <SteveA> and not ssh.pepperfish.net ?
[12:05] <Kinnison> in actuality I use shell.pepperfish.net
[12:05] <Kinnison> but most of our customers use their domain name directly
[12:08] <Znarl> Kinnison : Another consideration is you can not use a CNAME for example, pepperfish.net.
[12:08] <Kinnison> znarl: there's that too
[12:08] <Kinnison> CNAMEs cannot co-exist with anything but CNAMEs
[12:35] <ivoks> hi
[01:02] <Kinnison> it has (in star-merge mode) decided I have four conflicts in files I've not touched
[01:02] <Kinnison> yay
[01:11] <lifeless> Kinnison: it may be diff3 that is the bug
[01:11] <lifeless> Kinnison: if you wnat, try with --two-way
[01:12] <Kinnison> lifeless: okay, I'll try that, thanks
[01:12] <Kinnison> lifeless: also, I have a local rocketfuel mirror on my laptop
[01:12] <Kinnison> lifeless: it used to be that baz would get updates from the datacentre if I was connected, and use the mirror otherwise
[01:12] <Kinnison> lifeless: but now it just seems to use the mirror
[01:13] <Kinnison> is this expected? Was the previous behaviour unexpected? I'm all confused :-(
[01:13] <lifeless> mmm, baz.
[01:17] <Kinnison> lifeless: Nup, --two-way causes 36 conflicts
[01:17] <Kinnison> \o/
[01:20] <lifeless> Kinnison: so you need wo way on the rest, and three way o thos files :|
[01:22] <Kinnison> see if this works...
[01:27] <Kinnison> Hmm, a halfway causes four conflicts still
[01:28] <lifeless> with --two-way, you will have rouble if you have been meshing
[01:29] <Kinnison> that wasn't two-way
[01:41] <bob2> doctest-mode is nice
[01:49] <Surak> Hello, it seems I'm doing something wrong at rosetta. Could someone give me some light?
[01:54] <Surak> My problem is that some strings just seem not to get in. I type all the strings in a page ( for instance, https://launchpad.net/distros/ubuntu/breezy/+sources/update-notifier/+pots/update-notifier/pt_BR/+translate?offset=20 ) , but SOME of those never get in even as suggestions. some of them are already there, because I retyped all the non-translated strings again several times.
[01:57] <Surak> And I don't know how to become an official translator for some "file", as rosetta calls. Wouldn't a better term something like "package"?
[01:58] <carlos> Surak, that's a know bug that is fixed but seems like it's not yet on production
[01:59] <carlos> Surak, the translations are stored, but not showed.
[01:59] <Surak> Oh, that's better.
[01:59] <Nafallo> Keybuk: hi! you're the one to talk to about kicking hct? :-)
[01:59] <Surak> It would be quite frustrating to translate several strings and some of them just vanish away.
[01:59] <Keybuk> "kicking" ?
[01:59] <lifeless> Nafallo: he is
[02:00] <carlos> Surak, yeah, I know
[02:00] <Nafallo> Keybuk: gajim last tried 17/7
[02:00] <Nafallo> lifeless: thanx :-)
[02:00] <carlos> I will try to move the patch that fixes that into production today or tomorrow
[02:01] <Keybuk> Nafallo: sorry, but "last tried" ?
[02:01] <Keybuk> I haven't a clue what you're talking about :-/
[02:01] <Nafallo> Date Last Sync Started:  2005-07-19
[02:02] <Keybuk> where are you reading that?
[02:02] <Nafallo> https://launchpad.net/products/gajim/+series/head
[02:02] <Keybuk> that's nothing to do with HCT, that's just revision control imports -- you want to talk to ddaa
[02:02] <Nafallo> hmm, oki :-P
[02:03] <Nafallo> and he's not here ;-)
[02:03] <Keybuk> he's almost certainly sitting next to lifeless ;)
[02:03] <lifeless> he is
[02:03] <Nafallo> ah :-)
[02:03] <lifeless> in the middle of a sprint, can you mail david@canonical.com :0
[02:03] <Nafallo> sure :-)
[02:06] <Nafallo> done
[02:06] <Keybuk> lifeless: so, I think I broke niemeyer yesterday \o/
[02:08] <lifeless> Keybuk: !!!
[02:09] <Keybuk> you know how I broke Martin when I explained how hct does branch management, and the sheer scale of project we're trying to create?
[02:10] <Keybuk> it was like that
[02:10] <lifeless> most peoples eyes glaze over
[02:10] <lifeless> and they choke a little. then go blue.
[02:11] <Surak> Carlos, thanks for your help.
[02:11] <lifeless> so I'm glad we're holding to that standard :0
[02:11] <Keybuk> it's nicely reassuring that what we're doing is so out there that most people can't take it ;P
[02:14] <sivang> Keybuk: It's quite comlpex, eh ?
[02:16] <sivang> If I may ask, how does LP track changes in upstream sources originating from different versioning systems?
[02:16] <Keybuk> by converting them into bazaar archives
[02:18] <sivang> Keybuk: ah :) I should have known. And how do you keep LP current with the latest changes on each respetive archive automatically? keeping every archive of the upstream sources and diffing it seperately?
[02:19] <Keybuk> various from system to system, but basically you know what you imported last, and you can see new changes, so you import them too
[02:19] <Keybuk> subversion, for example, you can just remember the revno of the archive
[02:20] <sivang> Keybuk: ah nice, so you don't even track diffs, only a reported variable.
[02:22] <Keybuk> again, varies
[02:22] <Keybuk> cvs is complicated, for example
[02:23] <Nafallo> can we have more than one admin/maintainer for gajim?
[02:23] <Keybuk> Nafallo: form a "Gajim Maintainers" team
[02:24] <Nafallo> Keybuk: ah, oki. thanx :-)
[02:37] <SteveA> salgado: hi.  is mpt there?
[02:37] <Nafallo> how do I tell launchpad that gajim exists in breezy? :-)
[02:37] <SteveA> salgado: also, do you need anything from me to do with shipit?
[02:38] <salgado> SteveA, no, he's not here.
[02:38] <SteveA> salgado: any idea when he's getting in?
[02:39] <salgado> not sure if he will, because today is a holiday here in Brazil
[02:39] <SteveA> oh
[02:39] <SteveA> okay then
[02:39] <SteveA> need anything from me for shipit?
[02:40] <salgado> I don't think so. I think everything is sorted out now. only need to get everything working
[02:41] <SteveA> okay
[02:42] <Nafallo> found it I think
[02:52] <kiko-zzz> I love holidays
[03:01] <kiko> hey reviewers
[03:01] <SteveA> calling all reviewers
[03:01] <kiko> jamesh, spiv, BjornT, salgado, SteveA 
[03:01] <BjornT> hi
[03:02] <kiko> how's it going
[03:02] <kiko> I'm officially on a holiday
[03:02] <spiv> My laptop rebooted just in time.
[03:02] <kiko> but I'm here to say hi and check if anybody has any issues to sort out that need my attention
[03:02] <jamesh> hi
[03:02] <kiko> great work on the reviews lately, jamesh 
[03:03] <kiko> somebody needs to help bjorn's threading patch
[03:03] <kiko> SteveA?
[03:03] <lifeless> kiko: what do you want me to review today ?
[03:03] <kiko> ah, lifeless, there's BjornT's threading of emails patch
[03:03] <SteveA> bjorn and i can work from the same office on friday, and get some stuff done in person then
[03:03] <SteveA> i have a full schedule of stuff to do before then
[03:03] <kiko> that's an option too
[03:03] <BjornT> sounds good to me
[03:04] <SteveA> okay
[03:04] <Kinnison> elmo: ping?
[03:04] <kiko> lifeless, if you want to look at it too, six eyes are better than four
[03:04] <SteveA> lifeless: i'd like to welcome you to the reviewers team.  can you add a section for yourself on PendingReviews?
[03:04] <kiko> anything else that requires my immediate attention?
[03:04] <kiko> welcome lifeless the reviewer
[03:05] <kiko> okay, thanks guys
[03:05] <lifeless> SteveA: done
[03:05] <lifeless> thanks :0
[03:06] <SteveA> any other review issues?
[03:06] <lifeless> kiko-afk: ok, I'll give it a once over this afternoon
[03:06] <BjornT> not from me
[03:07] <SteveA> BjornT: can you give me an instant review later today on some menus infrastrucutre?  i want to get it landed for mpt to use tomorrow
[03:07] <BjornT> SteveA: sure
[03:07] <SteveA> thanks
[03:07] <SteveA> okay, reviewers meeting over
[03:08] <SteveA> thanks folks
[03:08] <spiv> Painless :)
[03:09] <salgado> carlos, ping?
[03:12] <salgado> SteveA, there's one thing I forgot, re: ShipItNG. 
[03:13] <salgado> SteveA, the new logout doesn't work using that RewriteRules
[03:14] <salgado> SteveA, it redirects me to the port 8085 after logging me out
[03:15] <SteveA> salgado: same as before, get me a branch, and instructions to reproduce the problem.
[03:19] <lifeless> stevea is there anything I should do other than maaking that secton on the wiki ?
[03:25] <bradb> spiv: https://launchpad.net/malone/bugs/1555 needs your love.
[03:26] <bradb> It just bit me again, but the bump on my head is so big that I was able to move forward quickly this time.
[03:26] <spiv> bradb: Yeah, the changelog for the last sqlobject I synced to claimed it was fixed, but actually it was fixed later.
[03:27] <spiv> (after a bunch of infrastructure had changed, making a back port a bit painful)
[03:27] <bradb> ah, good to know that it's patched somewhere, at least
[03:27] <Nafallo> may someone upload the upstream pos for gajim?
[03:27] <Nafallo> people are translating already finished stuff :-P
[03:27] <bradb> spiv: How soon can it be integrated into our tree?
[03:30] <BjornT> hi bradb 
[03:31] <elmo> Kinnison: ?
[03:32] <SteveA> lifeless: are you subscribed to the reviews list?  are you subscribed to that page?
[03:32] <lifeless> SteveA: no and yes.
[03:32] <Nafallo> hmm, no answer? ;-)
[03:32] <Nafallo> would be dumb to redo all the work :-P
[03:32] <lifeless> Nafallo: what is the question ?
[03:33] <Nafallo> may someone upload the upstream pos for gajim?
[03:33] <Nafallo> people are translating already finished stuff :-P
[03:33] <lifeless> 'pos' ? 
[03:33] <lifeless> EPARSE
[03:33] <Nafallo> PO-files :-)
[03:33] <Nafallo> rosetta
[03:33] <Nafallo> :-)
[03:34] <lifeless> uhm thats up to the rosetta owner for that.
[03:34] <lifeless> rosetta should tell you who that is
[03:35] <Nafallo> ubuntu-l10n-*
[03:35] <Nafallo> *sigh*
[03:35] <BjornT> bradb: given that some malone specs are closely related, i thought that i would make sure that we don't conflict with each other (and that we're on the same track). while waiting an answer from mdz, i thought i would start by ripping out the advanced search, and turn our existing "bug lists" into pre-defined reports
[03:35] <BjornT> bradb: how does that sound?
[03:36] <lifeless> bradb: given that some malone specs are closely related, i thought that i would make sure that we don't conflict with each other (and that 
[03:36] <lifeless>                 we're on the same track). while waiting an answer from mdz, i thought i would start by ripping out the advanced search, and turn our existing 
[03:36] <lifeless>                 "bug lists" into pre-defined reports
[03:36] <lifeless> DOH
[03:36] <spiv> bradb: The quickest way is probably for me to just bite the bullet and back port it, even though the fix occured after upstream switched to the new "sqlmeta" stuff.
[03:36] <lifeless> isn't salgado doing that ?
[03:36] <Nafallo> lifeless: thanx anyway :-)
[03:37] <salgado> lifeless, doing what?
[03:37] <bradb> spiv: sounds good
[03:37] <carlos> salgado, pong
[03:37] <bradb> BjornT: hi
[03:38] <lifeless> salgado: backporting sqlobject fixen
[03:38] <salgado> carlos, about that rawpofilepublished. what we decided? /me completely forgot
[03:38] <bradb> BjornT: first, just curious, when's the last time you spoke with mdz about pre-defined reports?
[03:38] <salgado> lifeless, oh, no. I was porting only a small fix in the BoolValidator class
[03:39] <BjornT> bradb: some things came in the way, but i sent him a mail yesterday, and will ping him about it later today
[03:39] <carlos> salgado, hmm, I think stub said that we will have the current tristate behaviour
[03:40] <carlos> salgado, if rawfile is null, rawfilepublished is null
[03:40] <carlos> salgado, if it's not null, rawfilepublished is not null
[03:40] <salgado> carlos, ah, right. now I remember. just need to update the current data to make sure everything is sane
[03:40] <carlos> salgado, yeah
[03:41] <carlos> I need to review the code to be 100% sure we have that behaviour in our code
[03:41] <carlos> salgado, is that a problem with your sqlobject changes?
[03:42] <bradb> BjornT: other than pre-defined searches, what else was on your plate? in a few words, what are the other major things outstanding that you're waiting for reviews/merging?
[03:42] <salgado> carlos, no, it's a problem only if you have untested code. that sqlobject patch can break some stuff. although it's very unlikely, it could
[03:43] <carlos> salgado, ok
[03:44] <bradb> BjornT: e.g. I was thinking that I might suggest integrating the MaloneSearchResults into the other bug listings. That consistency between D, DR, P and SP listings might be a higher priority.
[03:44] <BjornT> bradb: i have nothing else outstanding for malone 1.0, so feel free to push over some things from your plate. other than that i'll work on fixing the email wrapping bug, and do some usability fixes to the email interface.
[03:45] <BjornT> bradb: i can do that
[03:45] <bradb> great, that'd be really helpful
[03:46] <BjornT> bradb: how's it going for you?
[03:46] <bradb> other than the URL stuff, it's going well ;)
[03:47] <bradb> I was going to ask you about what you and Steve had spec'd out there, after I'd submitted a couple of merges this morning (one just went out)
[03:47] <bradb> and the usual morning email
[03:48] <BjornT> sure, i'll probably work until quite late tonight
[03:48] <bradb> cool
[03:53] <bradb> kiko-afk: Any chance of getting my patch reviewed today?
[03:56] <Keybuk> so I've decided this code is like a delicate bomb
[03:56] <Keybuk> I've got to stare at it very carefully for hours and decide which wire to cut
[03:56] <Keybuk> hopefully I'll pick the right one
[03:57] <bob2> if only you had unit tests!
[03:57] <SteveA> you have revision control, so you could just choose a wire arbitrarily, continue for an hour or so, and see what happens
[03:57] <SteveA> if it goes "boom", just go back and try again
[03:57] <SteveA> it's like a "save game" feature in that james bond computer game
[03:58] <Keybuk> also it's a bomb with test cases
[03:58] <Kinnison> elmo: I need to sort out access to that the df buildd can talk to mawson to get at the archive
[03:59] <Kinnison> elmo: can we sort out a vserver and firewall access?
[04:00] <elmo> firewall access is already in place, AFAICR
[04:01] <elmo> vserver, sure, just tell me where to point at what hostname you want
[04:01] <elmo> well, tell me in a mail to rt@admin.canonical.com ;-)
[04:02] <elmo> ah, no firewall isn't, so pls mention that in the mail too
[04:02] <bradb> Any other reviewers interested in reviewing my assigned bugs report fix? It fixes a problem that causes a "Permission Denied" for some users when they trying viewing the list of bugs assigned to them right now, and seriously desuckifies the user experience from the point that you click that link on the Malone front page.
[04:04] <Kinnison> elmo: sent
[04:07] <bradb> BjornT: Are you willing to review this fix if I forward you the patch right now? It's about 400 lines, but it's pretty straightforward.
[04:13] <BjornT> bradb: sure
[04:15] <bradb> BjornT: Cool, I forwarded you the patch.
[04:29] <\sh> any rosetta specialist who has a couple of minutes?
[04:30] <nkour> hi
[04:31] <nkour> apparently if a ubuntu package exists you grab the POT and show it in rossetta?
[04:31] <\sh> hi nkour :) 
[04:33] <nkour> but you do not grab PO
[04:33] <nkour> so you assume that every package is not translated/
[04:33] <nkour> ?
[04:33] <\sh> ok..to summarize the problem...upstream has already working translations in the tarball (.po files) and this work should be thrown away...so is it possible to import those .po files and show them in rosetta?
[04:33] <nkour> the scenario I'm experincing is this. I have 11 po 100% and rossetta shows NONE
[04:33] <nkour> so I have 100% spanish, but one guy starting from 0%
[04:33] <nkour> becuase es po is not imported
[04:34] <nkour> someone care to explain logic of importing only the POT?
[04:35] <nkour> anyways next time fix that cause it's chaos
[04:35] <nkour> https://wiki.ubuntu.com/RosettaPendingImports is a request that po are added. I cannot stop more ppl from translating 0% when it is 100%
[04:38] <elmo> Kinnison: how far back do your pf.net mail logs go?
[04:38] <elmo> Kinnison: and pf.net's idea of sender verify is checking RCPT TO: works on the From right?
[04:40] <elmo> Kinnison: (believe it or not, this is actually LP related ;)
[04:41] <Kinnison> elmo: Hmm, I'll go look. I don't think we retain detailed logs past the usual logrotate
[04:42] <nkour> to upload my 11 pos I have to be a member in all those i18n teams
[04:42] <Kinnison> elmo: we use exim4's standard verify stuff
[04:42] <nkour> that is INSANSE
[04:42] <Kinnison> elmo: so we verify the envelope mostly
[04:43] <elmo> yeah, I can't tell from this log what pf.net though the envelop was
[04:43] <elmo> there's no From in the bounce
[04:43] <Kinnison> how long ago?
[04:43] <elmo> kinnison: https://rt.admin.canonical.com/Ticket/Display.html?id=18
[04:47] <Kinnison> I have back to aug 30
[04:49] <bradb> SteveA: ping
[04:52] <SteveA> bradb: hi.  i'm debugging an auth issue with salgado right now
[04:52] <bradb> SteveA: ok
[04:53] <\sh> ok..I'm lost...someone need to send me the launchpad translation documentation ;)
[04:53] <bradb> SteveA: When you're available, I was hoping to discussion a permission problem with views when using IBugTask as the context, but editing IBug attributes.
[04:53] <Kinnison> elmo: Would you like to see our exim4 configuration?
[04:53] <SteveA> bradb: okay
[04:53] <Kinnison> elmo: It's nothing clever though
[04:54] <Keybuk> lifeless: want to see some sexy API? :p
[04:55] <mpt> \sh: Where did you get lost?
[04:57] <lifeless> Keybuk: well, sexy isnt the word I'd usually apply to apis, but sure, why not :)
[04:57] <\sh> mpt: product gajim ... the pot file is included, but not the already 100% done .po files :)
[04:57] <\sh> mpt: and we're not able to upload .po files because of permission problems..how can we solve this?
[04:57] <\sh> mpt: nkour btw is upstream dev for this product and admin of the product on LP ...
[04:57] <Keybuk> lifeless: well, I guess it's not sexy, but it's a bit clever <g>
[04:59] <elmo> why can't I look at bugs assigned to kinnison in LP?
[04:59] <mpt> elmo: That's a long-standing bug, but bradb was fixing it yesterday
[04:59] <lifeless> are they private ?
[05:00] <\sh> mpt: the question is now, do we have to be members of a translation team, or can we upload the .po files, or merge them in any way to rosetta?
[05:00] <elmo> Kinnison: have you got any bugs in malone?
[05:00] <elmo> i want to send a comment and see if pf.net bounces it
[05:00] <mpt> nkour: So what's the URL of the page where you try to upload?
[05:01] <\sh> mpt: https://launchpad.net/distros/ubuntu/breezy/+sources/gajim/+pots/review-breezy-gajim-1
[05:01] <Kinnison> elmo: I have bugs in malone and have received mails from them
[05:01] <elmo> well, hum.  I don't understand this RT request then
[05:01] <Kinnison> Nor do I particularly. Unless it's something with fooishbar's config
[05:01] <elmo> Kinnison: assuming you have sender verify checking for your pf.net email?
[05:02] <Kinnison> elmo: It's part of the incoming routers. Happens before we see the RCPT TO: remember :-)
[05:02] <elmo> hang on
[05:02] <Kinnison> It verifies the moment it gets MAIL FROM:
[05:02] <mpt> \sh: Okay, that's https://launchpad.net/malone/bugs/1098
[05:03] <Kinnison> elmo: the only strange thing about daniel's config is that we forward it on to thom's box after processing it. That doesn't happen until delivery time so it can't be affecting the reception routers
[05:03] <mpt> \sh: Try nagging carlos about it :-)
[05:04] <\sh> mpt: is it possible to merge the .po by hand from anyone out of the LP team?
[05:04] (\sh/#launchpad) mpt: I will *eg*
[05:05] (Kinnison/#launchpad) elmo: also a quick test by telnetting to mx.pepperfish.net suggests it's happy with MAIL FROM: <1234@bugs.launchpad.net>
[05:05] (mpt/#launchpad) \sh: I don't know, sorry
[05:05] (carlos/#launchpad) \sh, mpt ?
[05:05] (elmo/#launchpad) Kinnison: yeah, my testing of sender verify said the same thing
[05:05] (mpt/#launchpad) carlos, https://launchpad.net/malone/bugs/1098
[05:05] (\sh/#launchpad) carlos: https://launchpad.net/malone/bugs/1098 <- we need to upload .po files
[05:05] (elmo/#launchpad) oh well I'll see if stub has a more recent example
[05:06] (Kinnison/#launchpad) elmo: okies
[05:06] <carlos> \sh, but what's the exact error you get?
[05:06] <carlos> because that bug is not related to .po uploads but .pot ones
[05:06] <carlos> well, maintainer ones
[05:06] <\sh> carlos: the same as in the bug report: you don't have the permission...and nkour as admin of the product as well get this message
[05:07] <carlos> oh, I thought it was related to gajim
[05:07] <bradb> mpt: Why are the links in the portlets on the +bugs page underlined again?
[05:07] <\sh> carlos: the .pot is uploaded by LP team...but we need to upload somehow or merge somehow 12 100% done translation files
[05:07] <bradb> mpt: i.e. Is that by intent?
[05:07] <mpt> bradb: Because links everywhere are underlined now
[05:08] <carlos> \sh, ok, please add a comment to that bug pointing to the product is gaving you problems
[05:08] <bradb> mpt: By intent or by accident? :)
[05:08] <mpt> carlos: Or update the description
[05:08] <mpt> bradb: by intent
[05:08] <bradb> hm, strange
[05:09] <\sh> carlos: done :)
[05:09] <carlos> \sh, thanks
[05:10] <bradb> BjornT: ping
[05:10] <BjornT> bradb: pong
[05:10] <bradb> hi, question about permissions, because SteveA seems to be pretty busy...
[05:11] <bradb> BjornT: to demonstrate the problem, take the +edit page as an example, for editing various IBug attributes...
[05:11] <bradb> since IBugTask is now the context, +edit is registered on IBugTask
[05:11] <bradb> the schema used to render the form is IBug
[05:11] <bradb> the permission is launchpad.Edit
[05:12] <bradb> the authorization checks occur against IBugTask though, not IBug :/ in your and SteveA's design, how am I supposed to work around this?
[05:12] <bradb> (without getting messy and complicated, that is :)
[05:13] <bradb> I could find no solution for this described in the spec.
[05:13] <BjornT> bradb: "All other pages that are registered off IBug would need their context adapted to IBug as well."
[05:14] <bradb> that's already happening
[05:14] <BjornT> bradb: that means that the view class should adapt its context to IBug, so the security check should be fine
[05:14] <bradb> it does that already
[05:15] <BjornT> ok, let me take a look then. but iirc, the view's context (which is adapted to IBug) is used, so it should work
[05:15] <bradb> class BugPortletView:
[05:15] <bradb>     def __init__(self, context, request):
[05:15] <bradb>         self.context = IBug(context)
[05:15] <bradb>         self.request = request
[05:15] <bradb>         self._nextURL = canonical_url(context)
[05:16] <bradb> I don't see why it should work, because it seems to me that it's already too late by that time, but maybe there's something you know that I don't.
[05:17] <bradb> (To me, that the view's __init__ even gets run at all before authorization is complete is a security bug, but that's a separate issue.)
[05:18] <BjornT> bradb: in order to check a view's permission, the view has been created: view = View(context, request)
[05:18] <BjornT> bradb: after that view.context is used when checking the permission
[05:19] <bradb> From my testing, the latter appears to be incorrect.
[05:19] <cprov> mpt: ping
[05:19] <bradb> but, i might have done something incorrectly
[05:21] <bradb> hm, i think i might need to make another view. /me tries.
[05:21] <mpt> cprov: pong
[05:22] <cprov> mpt: could you have a look at bug # 2103 ?
[05:22] <cprov> mpt: please ;)
[05:23] <cprov> mpt: and about builddUI branch, did you get any help on formatters ?
[05:23] <mpt> cprov: hmmm, I thought I fixed that
[05:24] <cprov> mpt: I vaguely remember something like that, wierd ... will you accept it or should I ?
[05:24] <mpt> I've taken it
[05:25] <bradb> BjornT: Hm, I think I may have an idea of why it's breaking:
[05:25] <bradb> class BugEditView(BugView, SQLObjectEditView):
[05:25] <bradb>     """The view for the edit bug page"""
[05:25] <bradb>     def __init__(self, context, request):
[05:25] <bradb>         BugView.__init__(self, context, request)
[05:25] <bradb>         SQLObjectEditView.__init__(self, context, request)
[05:25] <bradb> BugView does the adaptation but, in this case, SQLObjectEditView.__init__ undoes it, I think.
[05:25] <cprov> mpt: great, thank you, about formatters help ?
[05:26] <bradb> I can reorder them, of course, but the effects seem a bit unpredictable.
[05:26] <mpt> cprov: As for the formatter, I've tried but it's beyond me unless I have someone showing me what to do, sorry
[05:26] <mpt> I think you'll need to get a real programmer to do it :-)
[05:26] <bradb> I may have to adapt right in BugEditView
[05:27] <BjornT> bradb: yeah, so you need to pass in the adapted context to SQLObjectEditView's __init__. reordering won't help (it will cause other problems)
[05:27] <cprov> mpt: fair enough, it's just a matter to decide who will do it ASAP 
[05:27] <mpt> cprov: Have you been able to fix any of the other XXXs?
[05:28] <bradb> BjornT: I figured as much. Passing an already-adapted context to those __init__'s seems to have fixed the problem. Thanks.
[05:29] <BjornT> cool
[05:29] <cprov> mpt: I'm not working on it atm (probably until go back to home), we have other buildd tasks to sort out urgently
[05:29] <bradb> BjornT: doesn't this mean that I lose contextualization on those pages though?
[05:30] <bradb> BjornT: e.g. I want to continue to have context-sensitive menus so that you can still jump to filing a bug from the add attachment screen, etc.
[05:33] <BjornT> bradb: shouldn't that be a menu on product/distribution/etc?
[05:34] <Kinnison> I'm upgrading dogfood...
[05:34] <BjornT> bradb: anyway, if you need the bugtask, you can put it on the view
[05:34] <bradb> BjornT: indeed...that's exactly what BugInContext is :)
[05:35] <BjornT> bradb: yeah, but the other way around :)
[05:38] <bradb> BjornT: the other way around? in IBugInContext, context/ is an IBug, with a context/bugtask attribute.
[05:38] <bradb> the only difference is that no magic adaptation trickery is needed, and the bug views can actually be registered on IBug, instead of IBugTask.
[05:39] <bradb> in any case, i know that BiC was rejected, but it ends up being exactly the same API, only much less magic coding and confusing ZCML registrations required, IMHO
[05:40] <BjornT> well, not quite the otherway around, but the solutions are quite similar.
[05:52] <bradb> BjornT: can i run this idea across you to get your opinion of what you think of it, in terms of if this seems sane, maintainable, etc?
[05:53] <cprov> spiv: ping 
[05:53] <lifeless> win 18
[05:53] <spiv> cprov: pong
[05:53] <spiv> (although I'm about to snooze)
[05:55] <cprov> spiv: the scoring isn't in soyuz critical path, so it will be delayed for the end of the week, then I'll be able to address all you comments, instead of commiting buggy code, ok ?
[05:55] <spiv> cprov: I don't mind when you merge, I'm just the reviewer ;)
[05:55] <spiv> That's fine with me.
[05:56] <cprov> spiv: ok
[05:57] <BjornT> bradb: sure
[05:58] <bradb> BjornT: ok, so, there are several bug-related portlets on the bug page, as you know, but for this example, i'll just use the bug actions portlet as an example...
[05:59] <bradb> so, the bug actions portlet gets registered on IBugTask...
[05:59] <bradb> it has a view that adapts its context to IBug behind the scenes (so that it doesn't break on the assumption of its context being an IBug)...
[06:00] <bradb> now, you click "Edit Description" to go to the edit bug details page...
[06:00] <bradb> edit bug details is registered on IBugTask
[06:00] <bradb> so, again, same thing happens, magic context adaptation to IBug...
[06:00] <bradb> the actions portlet needs to be shown on that page still, of course.
[06:01] <bradb> but the bug actions portlet is registered on IBugTask, not IBug.
[06:01] <bradb> so, you set the attribute .bugtask in the view...
[06:01] <bradb> and, in the specific +edit page, registered on an IBugTask, but whose context in behind the scenes was magically adapted to an IBug, you do "structure context/bugtask/@@+porltet-actions"
[06:02] <bradb> does that sound about right?
[06:03] <bradb> context/bugtask/@@+portlet-actions would, as you might expect, give you the bug actions portlet.
[06:03] <bradb> or, do you double-register the bug portlets on both IBug and IBugTask. or, do you do something else?
[06:05] <bradb> sorry, that would be view/bugtask/... etc, not context/bugtask/...
[06:05] <SteveA> you register the portlets for IBug and IBugTask, and adapt the view's context to IBug in either case.
[06:06] <bradb> right, so double-registry, ok, just checking
[06:08] <BjornT> bradb: review mail sent
[06:08] <bradb> SteveA: is it confusing that the interface expected by a view is not the interface named in the for="" attribute, or is it common that the interface expected by the view is not the (context) interface named in the for="..." for that view?
[06:08] <bradb> BjornT: awesome, thanks
[06:08] <SteveA> what does "interface expected by a view" mean?
[06:09] <bradb> SteveA: the context's API that you expect when writing the ZPT code. is it common that the interface be something other than what is named in the for="..." attribute of the registration of that view?
[06:10] <Kinnison> dogfood is back up
[06:10] <Kinnison> cprov: ^^'
[06:10] <SteveA> bradb: it is not all that common.  You certainly find it when you have a view that implements a more complex than normal dispatch.
[06:10] <SteveA> there are examples in the zope3 codebase.
[06:11] <cprov> Kinnison: ok, then "fogo na bomba"
[06:11] <bradb> SteveA: ok
[06:11] <SteveA> spiv: """[1]  SQLObject's default is default=NoDefault."""  that is almost as bad as """diff --nodiff"""
[06:12] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  Update launchpad-buildd package to v3, fixing a patch generation bug in postinst (patch-2364: daniel.silverstone@canonical.com)
[06:14] <Kinnison> oooh go me
[06:14] <Kinnison> That's meant to be 'path generation' not 'patch generation'
[06:14] <Kinnison> where does one obtain new fingers?
[06:14] <elmo> Kinnison: from other people
[06:15] <spiv> SteveA: I put that in a footnote for a reason :)
[06:17] <spiv> SteveA: The worst part is we needed to add canonical.database.constants.DEFAULT so that we could say default=DEFAULT ;)
[06:21] <sladen> there doesn't seem to be a link anywhere to file a bug /on malone/
[06:21] <mpt> hrmmm
[06:21] <mpt> sladen: Same way you report a bug about any other product
[06:22] <mpt> but we seem to have a problem in that humans aren't recognizing Malone and Rosetta as "products"
[06:22] <sladen> there is no mention of 'products' except in the URL
[06:22] <sladen> lots of mentions of packages
[06:23] <mpt> https://launchpad.net/products/malone
[06:23] <sladen> yup, guessed that from my URL history, wondering if I can do it ''with the mouse''
[06:24] <mpt> hmmm, not really, Launchpad still needs a front page that lets you navigate to products/people/projects/distros
[06:27] <sladen> oh, I can.  /malone -> (link at bottom = Locate) -> /malone/products -> (link at side = List All) -> /products/+all -> Malone ([View] ) -> /products/malone -> (Click Bugs) -> /products/malone/+bugs?... -> (Report a bug) -> /products/malone/+filebug
[06:27] <bradb> BjornT: Just curious: in what way does it improve the clarity or function of the code to move the redirect into a method in this case?
[06:29] <mpt> sladen: wow, you're good
[06:29] <mpt> Why does that exist, bradb? It's exactly the same as /products
[06:30] <bradb> mpt: I'll give you five seconds to figure out who wrote that.
[06:30] <BjornT> bradb: well, it's quite common for pages to share a view class. also, if you have it in a method, you don't need to check if the user is not None, since the page is protected by launchpad.AnyPerson
[06:30] <bradb> mpt: But, no, seriously, I'd be happy to get rid of it if I weren't doing a bunch of other stuff right now.
[06:30] <mpt> bradb: Dude, you know baz annotate takes *considerably* longer than five seconds
[06:31] <bradb> mpt: You've managed to get it to complete?
[06:31] <lifeless> mpt: its a trick question.
[06:31] <mpt> bradb: I wasn't saying "get rid of it right now", I was just wondering if there was a reason for it
[06:31] <mpt> I'll report a bug
[06:32] <salgado> BjornT, on chinstrap, I guess?
[06:32] <bradb> mpt: I was being a bit harsh on it; it's possible that it might be of some use.../products isn't Malone-specific, for example
[06:32] <bradb> mpt: It seems to me that upstream drilldown in a Malone context can make sense
[06:32] <BjornT> salgado: nope, on my computer. using hard-links though
[06:33] <bradb> mpt: the only immediate things that would concern me are if there's code duplication happening there, and I haven't looked much at that code to know one way or the other
[06:36] <bradb> BjornT: so I'd have to create a page template that just calls that method i guess, eh?
[06:36] <BjornT> bradb: no, no page template. you use attribute instead
[06:37] <BjornT> <browser:page ... attribute="redirect_method" />
[06:37] <bradb> BjornT: I wouldn't have guessed that in a million years. ;)
[06:37] <BjornT> bradb: yeah, i don't like the name either :)
[06:37] <bradb> Why did they call it "attribute" and not, say, "zebra"?
[06:38] <mpt> cprov: oh, I think the CoC console portlet is fixed in mpt@canonical.com/launchpad--deactionizing--0508 but kiko-afk hasn't reviewed it yet
[06:38] <mpt> That's why I thought I'd fixed it already
[06:39] <sladen> mpt: do bug forms take wiki markup?
[06:39] <mpt> sladen: no
[06:39] <cprov> mpt: fine 
[06:39] <mpt> sladen: Is there any bug tracker which does?
[06:39] <sladen> mpt: I can probably restart dilys, she's running on one of my machines
[06:39] <sladen> mpt: ...or as
[06:39] <sladen> mpt: ...or was
[06:40] <mpt> sladen: I think the problem is that dilys is still expecting mail from launchpad.ubuntu.com, rather than any hung state
[06:41] <bradb> attribute="" is sweet
[06:44] <carlos> wow, our first bounty!
[06:44] <carlos> https://launchpad.net/bounties/gstreamer-midi
[06:45] <sladen> mpt: dunno, it was just flowing together text that was on multiple lines (like a wiki would do)
[06:45] <mpt> ah
[07:00] <Kinnison> elmo: I've sent one more (simple) rt request off
[07:00] <Kinnison> elmo: for dogfood buildds
[07:09] <sabdfl> mpt: is kiko close by?
[07:15] <Kinnison> elmo: did you see me say I'd sent another RT request?
[07:16] <elmo> yeah, it hasn't appeared
[07:28] <Kinnison> elmo: arse. I need 9080/TCP from molodezhnaya to mawson
[07:28] <Kinnison> elmo: I wonder why it hasn't got there yet
[07:28] <elmo> can you see it going out of your mail queue?
[07:28] <elmo> what's 9080 for?
[07:29] <Kinnison> librarian
[07:29] <cprov> elmo: librarian download
[07:29] <Kinnison> (read access)
[07:29] <Kinnison> elmo: left my laptop for pike at 18:01
[07:29] <elmo> msg id?
[07:30] <Kinnison> Message-Id: <1126112448.10494.11.camel@stupor.i.digital-scurf.org>
[07:31] <Kinnison> found it
[07:31] <Kinnison> 2005-09-07 18:00:23 1ED3Hb-0002o6-2j no immediate delivery: load average 6.36
[07:31] <Kinnison> bloody clever exim4
[07:31] <Kinnison> too clever for its own damned good
[07:34] <Kinnison> delivered :-)
[07:36] <elmo> Kinnison: sorry, not being funny - can't/shouldn't the buildd use the http wrapped version of the librarian on dogfood?
[07:36] <elmo> if it's read only
[07:37] <elmo> it should already be able to do that through librarian.dogfood.ubuntu.com, unless I'm mistaken
[07:38] <bradb> BjornT: http("GET %s HTTP/1.1" % url) != http("\nGET %s HTTP/1.1\n" % url) apparently :/ The former returns a 302 for the url, the later returns a 303.
[07:38] <bradb> s/later/latter/
[07:40] <bradb> (Pdb) str(http("GET %s HTTP/1.1\n" % url))
[07:40] <bradb> 'HTTP/1.1 303 See Other\nContent-Length: 0\nContent-Type: text/plain;charset=utf-8\nLocation: http://localhost:9000/malone/assigned/+login\n'
[07:40] <bradb> (Pdb) str(http("GET %s HTTP/1.1" % url))
[07:40] <bradb> 'HTTP/1. 302 Moved Temporarily\nContent-Length: 0\nContent-Type: text/plain;charset=utf-8\nLocation: http://localhost:9000/malone/assigned/+login\n'
[07:40] <bradb> SteveA: Do you know why that is, offhand?
[07:40] <SteveA> i expect that is because the latter doesn't look like a valid HTTP/1.1 request
[07:41] <SteveA> to the zope machinery that is invoked via the http() call
[07:41] <bradb> Strange, because all our page tests use that style of \n%s\n
[07:41] <lifeless> bradb: http/1. <- where is teh 1? and the trailing \n ?
[07:41] <SteveA> the 303 response is only defined for http 1.1
[07:42] <bradb> lifeless: oh, right, weird.
[07:42] <bradb> you'd have to ask zope, i'm afraid
[07:44] <bradb> SteveA: Does this mean that it may be that our page tests are using invalid HTTP/1.1 requests?
[07:45] <SteveA> maybe.  it only matters for redirects.
[07:45] <lifeless> a http/1.1 MUST have a host: header. they are both invalid requests.
[07:46] <bradb> lifeless: it's not impossible that http() does magical things to the headers, but i wouldn't be able to say for sure.
[07:48] <bradb> SteveA: so, here's the problem then (i.e. the reason i stumbled onto this in the first place). in a page test with the perhaps invalid request, it checks for a 303, but in xx-notfound-traversals it checks for a 302 on the same page. both tests pass. should i just leave it that way?
[07:49] <SteveA> you should always get a 303
[07:49] <SteveA> we shouldn't be expecting 302s
[07:49] <elmo> lifeless: I'm pretty sure your variant doesn't come off
[07:49] <lifeless> elmo ?
[07:51] <sabdfl> kiko-afk: ping
[07:51] <sabdfl> jamesh: ping
[07:54] <bradb> SteveA: ok, just to be clear then, to make this work right, our GETs should read "GET $url HTTP/1.1\n"?
[07:55] <SteveA> bradb: yes
[07:55] <bradb> (i also noticed that we're using 1.0 in xx-notfound-traversals; dunno why)
[07:55] <bradb> ok, thanks
[07:56] <mpt> sabdfl: Sorry, I was at lunch. kiko hasn't been in today, and apparently today's some sort of public holiday so he might not be coming in at all.
[07:58] <SteveA> kiko was in briefly earlier, for the reviewers meeting
[08:01] <sabdfl> mpt: thanks. is salgado around?
[08:01] <sabdfl> salgado: ping
[08:01] <mpt> he's right next to me, aren't you salgado
[08:02] <salgado> hi sabdfl 
[08:02] <sabdfl> salgado: we're hoping you are working on a branch that doesn't include new RF since you landed shipit? so if we need to, we can continue rolling out daily code just from you this week?
[08:04] <SteveA> elmo: ping
[08:05] <SteveA> elmo: can we get an apache setup to test shipit on staging in an similar virtual hosting environment to what we'll use in production?  there are two special rewrite rules needed.
[08:05] <salgado> sabdfl, I was doing periodic merges from rocketfuel, to see if I had something conflicting with the changes there. but I just realized I commited one of these merges when I shouldn't. 
[08:06] <salgado> sabdfl, I think I can either "replay --reverse" it in my branch or "replay" my changesets in another branch, though
[08:07] <salgado> sabdfl, either way I'll make sure my changes are cherrypickable before merging them into rocketfuel
[08:07] <sabdfl> salgado: good man
[08:11] <elmo> SteveA: it's going to proxypass to the normal staging LP tho right?
[08:11] <SteveA> to the normal launchpad server on whatever unpriv port it runs on
[08:12] <bradb> BjornT: review response sent. can you have a look to confirm that i can go ahead and merge?
[08:13] <BjornT> bradb: sure
[08:13] <bradb> thanks
[08:17] <Kinnison> elmo: It needs to use the download URL provided in the launchpad configuration currently
[08:18] <Kinnison> elmo: I suppose we can organise a rewriting of the URL in the build master
[08:18] <Kinnison> elmo: we'll discuss it tomorrow
[08:18] <Kinnison> okay?
[08:18] <elmo> sure
[08:18] <Kinnison> thanks
[08:18] <Kinnison> see you in the office tomorrow
[08:25] <bradb> BjornT: so, does it look good?
[08:25] <mpt> dangit, I'm sure I've asked this question before, but forgotten the answer
[08:27] <mpt> Does anyone know why ul-main-template.pt is in Launchpad?
[08:28] <SteveA> mpt: it was for when the "forgotten password" pages were available at an ubuntu.com domain
[08:28] <mpt> ah
[08:28] <mpt> Can I nuke it?
[08:29] <SteveA> yes
[08:30] <patrikjj> Hey, are there any collaboration between "ubuntu translators" and translators from example the gnome translation project or the Translation project?
[08:34] <SteveA> mpt: hello
[08:34] <carlos> kiko-afk, did you merge your poimport fixes?
[08:35] <carlos> kiko-afk, I'm seeing errors that I think you fixed already...
[08:36] <Lovechild> !request
[08:50] <salgado> lifeless, around?
[08:51] <lifeless> salgado: leaving *now*
[08:52] <salgado> lifeless, when you (or stuart) cherrypick something into production, you guys update all other dependencies, like sqlobject too?
[08:52] <lifeless> salgado: whats up ?
[08:52] <lifeless> salgado: not unless we are told or remember. we treat those as part of the production rollout.
[08:53] <salgado> lifeless, okay, I'll remember to ask stuart to update sqlobject when cherrypicking the branch I'm working on right now
[09:16] <sabdfl> lifeless: ping
[09:17] <sabdfl> SteveA: maybe you can help
[09:17] <SteveA> i have 5 mins before leaving
[09:17] <sabdfl> hat's the best way to parse and extract data from an xml file?
[09:17] <sabdfl> very simple structure
[09:18] <sabdfl> s/hat/what/
[09:19] <carlos> see you
[09:19] <SteveA> simplest is probably using minidom in the standard python library
[09:19] <SteveA> elementtree is nice, but not standard
[09:19] <SteveA> you read the xml into minidom, and then use python methods to get information from it
[09:27] <sabdfl> ok, thanks
[09:27] <SteveA> for more complex things, libxml2 with its python bindings is better.  but, that's quite a step up in complexity.
[09:32] <bradb> 15:28 < tseng> bradb: the launchpad frontpage is currently totally useless, i think
[09:32] <bradb> that's interesting
[09:32] <bradb> tseng got very lost trying to go from the lp front page to searching all ubuntu bugs
[09:32] <bradb> mpt: in what way did you say you wanted to improve the front page?
[09:36] <bradb> mpt: this is interesting too: https://launchpad.net/distros/ubuntu/breezy/i386 -- an extremely portlet busy page that leaves the user (tseng, in this case) fully perplexed as to how to achieve his goal of searching all bugs in Ubuntu
[09:37] <bradb> 15:35 < tseng> it all *looks* like im in malone though
[09:41] <mpt> bradb: wow, there's *nothing* malone-specific on that page except the "Bugs" tab
[09:42] <mpt> Maybe if Malone is the first part of Launchpad you see, you think 1px-blue-borders == Malone
[09:42] <bradb> mpt: yep, but that doesn't help you much if you're malone user, i think. i don't think most users can be bothered to try and construct the software architecture of lp in their heads
[09:43] <bradb> as we both know, users report FOAF bugs to me, doap bugs, soyuz bugs, all the time, and to them, they think they're talking about malone.
[09:43] <bradb> i can't say i'm that surprised either
[09:44] <mpt> I'd like more about the Pillars on the front page (though not using the word "pillars", of course!)
[09:44] <mpt> That was Mark's original vision
[09:44] <mpt> iirc
[09:44] <mpt> two columns, four blocks, People, Products, Projects, Distributions
[09:45] <bradb> mpt: I don't think a little writeup on the front page will help much, IMHO.
[09:45] <mpt> So you're encouraged to find the object you're interested in first, *then* go to the facet
[09:46] <mpt> Not writeups, but search forms and lists of most active/recent
[09:48] <bradb> maybe the placement of the tabs makes them too hard to find.
[09:59] <bradb> that might not be the real issue here. from what tseng is saying, it seems like it's important to be able to find the yellow brick road somewhere in the body of the page, rather than on the edges.
[10:03] <mpt> Well, yes, portlets look like AdSense ads, so it's not surprising they get ignored
[11:06] <jordi> hey guys
[11:06] <jordi> sorry for not being around today as I intended
[11:06] <jordi> I'm not feeling well at all, will catch up tomorrow
[11:10] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: [r=BjornT]  fix the assigned bugs report so that clicking on 'Assigned Bug Reports' takes you to +assignedbugs in FOAF. make /malone/assigned redirect to the right place. (patch-2365: brad.bollenbach@canonical.com)
[11:30] <salgado> please, SteveA. tell me you're still here?
[11:50] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: [r=spiv]  launchpad support tracker (patch-2366: mark.shuttleworth@canonical.com, stuart.bishop@canonical.com)