[01:43] <kiko> evening
[02:45] <carlos> night!!
[03:23] <kiko> hello stub
[03:24] <stub> Morning
[05:43] <kiko> stub, are we on for 11am UTC? 
[05:44] <stub> kiko: Sure
[05:45] <kiko> great.
[05:45] <kiko> though that's not so great because it means I can't sleep. :)
[05:46] <stub> I can do later if you want
[05:46] <stub> Now is awkward
[05:47] <stub> Or tomorrow
[05:48] <kiko> no, 11am UTC is the time because cprov and debonzi are on for it too. my damage.
[01:14] <carlos> "morning"
[01:41] <cprov> stubish: morning, do we have a meet today ?
[01:44] <kiko> morning
[01:45] <kiko> hey cprov, stubish?
[01:45] <kiko> am I late enough?
[01:47] <cprov> kiko: 
[01:48] <kiko> cprov, is stubish around?
[01:50] <cprov> kiko: nop, I arrived and stub gots timed out but stubish looks like idle .
[02:01] <kiko> argh.
[02:02] <cprov> kiko: yep, we all were late !
[02:03] <cprov> stub: morning 
[02:03] <stub> Morning. 
[02:04] <stub> Just realized my IRC client wasn't running :-(
[02:05] <cprov> stub: nop, do you have time for a brief talk about malone portlet/console on Soyuz ?
[02:05] <kiko> ah.
[02:05] <stub> Sure
[02:06] <kiko> okay, give me a minute.
[02:07] <cprov> stub: nice, we are thinking about how to have a set of minimal/needed information about Bugs from Malone in Soyuz
[02:07] <cprov> kiko: ok
[02:21] <kiko> okay.
[02:22] <kiko> stubish, cprov: I'm good to go.
[02:22] <kiko> so the idea is
[02:22] <kiko> we want to display part of malone data in soyuz.
[02:22] <kiko> part of the question is: what makes sense to display?
[02:22] <kiko> I think we could have:
[02:22] <kiko>  - for distro and release general statistics
[02:23] <kiko>   - for source packages (and bin packages?) more detailed bug counts
[02:23] <kiko>   - for packages in particular it would be good to be able to link to malone queries easily
[02:23] <kiko> I'm not sure what sort of summarizing facilities malone has available we could use however
[02:24] <kiko> cprov, can you paste in some of the pages on rosetta.wh for stub to see part of what we want?
[02:24] <stubish> At the moment, you either have to interrogate the database or the SQLObject instances directly
[02:25] <cprov> kiko: yes
[02:25] <stubish> There are some existing reports that can be linked to (all bugs for a given sourcepackage).
[02:26] <cprov> stub: the first one is https://rosetta.warthogs.hbd.com/soyuz/distros/ubuntu
[02:26] <kiko> stubish, what about all _open bugs for a given package?
[02:27] <cprov> stub: distribituion bugs ( how to retrieve bugs for a distro ? ) 
[02:28] <stubish> kiko: For that what you want is a simple select on the SourcepackageBugAssignment
[02:29] <kiko> stubish, is there any hope you or justdave could cook up some interfaces we could use instead of bitscrubbing ourselves?
[02:29] <stubish> cprov: Bugs are assigned to a sourcepackage, and possibly a binary package (or a product, but that doesn't affect you). I don't know how to get from distribution to sourcepackage
[02:30] <kiko> stubish, consider a distribution to be a "collection" of sourcepackagereleases.
[02:30] <kiko> stubish, also, it's important to note that there is a distinction -- sourcepackage and sourcepackagerelease -- where both are relevant.
[02:31] <stubish> Then sure, we could list all bugs for a distribution (although that is probably a bit silly - probably just want counts for a whole distribution?)
[02:31] <cprov> stubish: yes, counter should be nice 
[02:31] <kiko> yes, we just want statistics for them, but maybe we want the top priority bugs for that distro?
[02:32] <kiko> so a distro manager can tell if people are focusing on the right thing.
[02:32] <stubish> re: Me or Dave writing the interfaces - sure, we just need to specify what you need (result of this meeting maybe).
[02:33] <kiko> wow, that would be awesome.
[02:33] <stubish> kiko: That is a good idea, and I think it was one of the original reports speced for Malone. Do you really want that in soyuz?
[02:34] <stubish> (top bugs sort of thing, although what that actually means is still a little vague)
[02:34] <kiko> stubish, a quick list of the top 10 priority bugs in a distro are interesting as part of the distro view, I would think. what do you think?
[02:34] <kiko> do you have priorities and severities in malone?
[02:34] <kiko> what about issue type?
[02:35] <cprov> stubish: please look into https://rosetta.warthogs.hbd.com/soyuz/distros/ubuntu/releases/warty
[02:35] <stubish> We have priorities and severities, but there are few values so if you are dealing with a distribution you won't get a very good report (if there are 50 critical severity bugs, it is tricky to list the top 10 :-) )
[02:36] <kiko> maybe joining severity and priority may help there.
[02:37] <stubish> kiko: That might work. We will have some way of listing 'top bugs' though however that is calculated :-)
[02:38] <kiko> aha.
[02:38] <cprov> stubish: nice 
[02:38] <kiko> stubish, did you get a chance to look at the links cprov posted?
[02:39] <stubish> cprov: So you need functions to return those three counts for a distribution? Or is that page still being worked on.
[02:39] <cprov> stubish: it's an idea :-)
[02:40] <kiko> stubish, don't worry, we will file bugs on what we need, as soon as we've agreed it's possible.
[02:40] <cprov> stubish: for sure we need better ones
[02:40] <kiko> cprov, (missing link on "Mark Shuttleworth" to the personal page?)
[02:40] <stubish> Ok. So I'll put together a small portlet to stick on the distribution page, clicking on which jumps to the relevant full report in malone (action point #1)
[02:41] <kiko> that's perfect
[02:41] <cprov> kiko: what is missed and where ?
[02:42] <kiko> cprov, the link from release owner to the owner's personal page.
[02:42] <kiko> fun.
[02:43] <kiko> cprov, give stubish a link to gwyd maybe?
[02:43] <cprov> kiko: please verify if gwyddion.gwyddion.com:8085 is working ?
[02:44] <kiko> worksforme
[02:45] <cprov> stubish: can you try that ?
[02:45] <stubish> gwyddion.com ?
[02:46] <kiko> http://gwyddion.gwyddion.com:8085/soyuz/distros/ubuntu
[02:46] <daf> cprov: Gwyddion is a Welsh name, isn't it?
[02:46] <cprov> daf: yes :)
[02:46] <daf> cprov: cool :)
[02:47] <daf> cprov: why did you pick that?
[02:47] <stubish> Can you give me the IP address of gwyddion.gwyddion.com - it isn't resolving from here (new network connection - dunno)
[02:47] <debonzi> stubish, 200.158.100.251
[02:48] <cprov> daf: tks, from Celtic culture descritption ... 
[02:48] <cprov> daf: I found some nice details that I like 
[02:49] <stubish> ok...
[02:50] <stubish> no bugs on that page - is that the issue?
[02:51] <kiko> hah
[02:54] <stubish> One suggestion has been that if you clicked on the 'Malone' tab at the top, it would retain context and show you the bug report for the ubuntu distribution (which would avoid the need to put bug information on many pages, but is less intuitive)
[02:54] <kiko> stubish, I don't know if I like that too much -- it's too non-obvious, don't you feel?
[02:56] <stubish> I think so - it might be implemented in the future for advanced users if the context is similar enough between apps (which might not be the case - Malone knows nothing about SourcepackageRelease's for instance)
[02:56] <stubish> But we won't worry about it for a release or three.
[02:58] <kiko> okay
[03:00] <stubish> Ok... and another portlet on http://200.158.100.251:8085/soyuz/distros/ubuntu/src/warty/mozilla-firefox (The soyuz sourcepackage details page?)
[03:02] <stubish> And on http://200.158.100.251:8085/soyuz/distros/ubuntu/src/warty/mozilla-firefox/0.9.0-8 (The soyuz binarypackage details page?)
[03:02] <cprov> stubish: there we want to list sourcepackage bugs, maybe the high priority or severity ones 
[03:03] <stubish> Yup. So that is three portlets identified.
[03:03] <cprov> stubish: there is also the person one
[03:04] <cprov> stubish: /soyuz/people/1
[03:05] <stubish> Hmm... seems soyuz is ending up with pages I had assumed would be in some central location. This is going to affect the Malone use cases (such as they are...). Where does somebody go if they want to look at their bugs - Soyuz? Malone? or somewhere else?
[03:06] <cprov> stubish: it isn't clean enough to me, but I think the right place to see extended bug info is Malone
[03:07] <cprov> stubish: we just want to show something like compiled/brief info on Soyuz
[03:08] <cprov> stubish: as we might do with rosetta info 
[03:09] <stubish> Ok - so the portlet on the people page is similar to the distro one - summaries that link to the full reports in Malone.
[03:09] <cprov> stubish: are we misunderstand some concept or use case
[03:09] <stubish> cprov: No - its more that I'm clarifying things in my own mind :-)
[03:09] <cprov> stubish: yes, via 'more bugs" link 
[03:10] <cprov> stubish: yes, so do I 
[03:13] <cprov> stubish: then I think we have 4 different portlets and we should work on their definition up to now: which info is wanted, how to encapsulated them and so 
[03:14] <stubish> I think the way this should be implemented is that I create the views in lib/canonical/malone, and attach them to the relevant soyuz objects. The soyuz page template can then simply do a <div tal:content="context/whatever/maloneportletname" /> to include the info.
[03:14] <stubish> The portlets should stay in Malone, as they will need to be kept in sync with Malone work.
[03:14] <cprov> stubish: looks great for me !
[03:14] <stubish> The portlets only link to Malone, so even if the soyuz URL's are changed it won't affect them.
[03:15] <stubish> And it is only those four screens at the moment? Distribution, person, sourcepackage and binarypackage?
[03:16] <cprov> stubish: yes, I think so, at least til our Sprint (alpha maybe :) ) 
[03:17] <stubish> I'd be grateful if someone adds them as four seperate bugs in Bugzilla (assign them to me, and they are Malone bugs -- not Soyuz)
[03:17] <kiko> we'll do that.
[03:18] <cprov> stubish: thank you very much for your help :)
[03:18] <stubish> I'll replace the portlets next week with ones that load from Malone. They probably will just contain dummy data or remain blank though, as there is other Malone work that will need to be done first.
[03:18] <cprov> kiko: should I report the bugs ?
[03:19] <kiko> stubish, you're the man.
[03:19] <cprov> stubish: no problem, since we have already defined the details, take your time.
[03:20] <kiko> cprov, let's privchat and see what needs to be done
[03:20] <stubish> This is good, as it means I don't have to worry too much about Malone search pages -- instead, people can navigate in Soyuz and jump across to Malone as required.
[03:20] <kiko> stubish, about soyuz centralizing things, I have two comments.
[03:21] <kiko> first that it's kind of normal, since soyuz is the "distribution" view of the world, and ubuntu/canonical/... is about distributions.
[03:21] <kiko> we're distribution-centric.
[03:22] <kiko> second is that, specifically regarding the *people* side of soyuz, I am somewhat uncomfortable with it living inside soyuz and would pledge to move stuff into a separate, shared application.
[03:22] <kiko> that could handle userdata, authentication and the user portal
[03:23] <kiko> however, I haven't seen any push towards this and we're not letting it stop soyuz :)
[03:24] <stubish> Malone had a registration screen at one stage -- I think a central area for stuff is required, and we need another
[03:24] <stubish> tab for it since it shouldn't live under 'Ubuntu'
[03:24] <kiko> "people" worksforme, but mark's the boss.
[03:26] <stubish> Anyway - I think that is enough for now (leave it before I get more work ;) )
[03:26] <kiko> right. 
[03:26] <stubish> Thanks for waiting for me - sorry about getting here late.
[03:27] <kiko> it was really convenient.
[03:28] <debonzi> stubish, thank you for your help
[03:29] <stubish> You are here! :-)
[03:29] <kiko> debonzi the silent one <tm>
[03:33] <debonzi> debonzi, :)
[03:42] <kiko> debonzi, I have a question.
[03:42] <kiko> http://gwyddion.gwyddion.com:8085/soyuz/distros/ubuntu/bin/warty/kiwi
[03:42] <kiko> Current: is empty -- what does that mean? we should have text there explaining if empty is a "normal" situation.
[03:44] <cprov> kiko:  there is no bin for kiwi
[03:44] <kiko> cprov, okay, but then we should say "There are no binary package releases currently generated for this package"?
[03:45] <cprov> kiko: I agree :)
[03:45] <kiko> okay, I'll bug bonanza
[03:45] <cprov> kiko: yep :)
[03:46] <debonzi> kiko, I will do that
[03:59] <carlos> daf: here?
[04:00] <daf> here
[04:00] <carlos> ok
[04:01] <daf> I've just submitted a merge with the real principal->person adapter
[04:02] <carlos> perfect
[04:02] <carlos> so, we are ready to publish the alpha as soon as the 1978 is close
[04:02] <carlos> nice
[04:03] <daf> and we've imported the data
[04:03] <carlos> daf: well, that's a matter of server time
[04:04] <daf> once you've star-merged my latest patch, can you test #1930?
[04:04] <carlos> sure
[04:04] <carlos> is the merge confirmed?
[04:05] <daf> not yet
[04:05] <carlos> ok
[04:06] <daf> I think #1969 is done
[04:06] <daf> oh, no, wait
[04:07] <daf> still the maintainer dashboard and the PO edit form are not restricted
[04:11] <daf> carlos: ok, merge success
[04:11] <carlos> daf: ok
[04:14] <daf> hmm, we have no plural form information for Catalan
[04:14] <carlos> daf: I think it's the same on than Spanish, let me ask Jordi
[04:16] <daf> s/same one than/same one as/ :)
[04:17] <daf> than/from/as are confusing
[04:17] <daf> greater than, different from, same as
[04:17] <daf> ...
[04:17] <carlos> daf: well, my main problem is that last time I was learning english was about 9 years ago
[04:18] <carlos> I need to retake my English studies
[04:18] <daf> nonsense, I think you have been learning English since about May :)
[04:18] <carlos> X-)
[04:18] <carlos> I mean "study" it
[04:18] <daf> I know :)
[04:19] <daf> ok, so what's our plan for the rest of today?
[04:20] <carlos> hmm, I'm testing it, but my database seems to be broken :-?
[04:20] <carlos> it == your patch
[04:20] <carlos> daf: we have two options:
[04:20] <daf> I had a problem with Epiphany
[04:20] <daf> it was remembering form values
[04:21] <carlos> 1.- Try to debug and fix the 1978 you and me
[04:21] <daf> I had to resort to Firefox
[04:21] <carlos> 2.- Start implementing the scripts we were talking about with Steve to import data
[04:21] <daf> yeah, I guess those are our options :-/
[04:21] <carlos> daf: I don't think it's the same problem I'm having, seems like I don't see the evolution sample data 
[04:22] <carlos> daf: any way to talk with lalo?
[04:22] <daf> oh, it's saying "No recently translated templates."?
[04:22] <carlos> yes
[04:22] <carlos> that's my problem
[04:22] <carlos> reloading the database
[04:23] <carlos> hmmm
[04:23] <carlos> perhaps it's because I'm not logged
[04:24] <carlos> and thus I don't have any language...
[04:24] <carlos> yes, that was the problem
[04:25] <daf> you should have to be logged in to see it
[04:25] <carlos> daf: perfect, you patch works
[04:25] <carlos> I added a new translation to evolution
[04:26] <carlos> and it appears in my dashboard
[04:26] <daf> woo, a bug to close!
[04:26] <carlos> daf: btw, we should show the resource list to anonymous people, and asking for a login if they click on translate it
[04:27] <daf> I agree
[04:27] <daf> I think that's what we're currently doing, isn't it?
[04:27] <carlos> daf: are you using labels for the dashboard thing?
[04:27] <daf> no
[04:27] <carlos> daf: not really, anonymous don't have a language list so the list is empty
[04:27] <daf> person.translatedTemplates()
[04:28] <daf> oh, I see
[04:28] <daf> yes, there's a bug open for that
[04:28] <carlos> daf: ok
[04:28] <carlos> so, next step?
[04:29] <carlos> if we cannot talk with lalo, I think we should work on fixing the bug, IMHO it should be closed today
[04:30] <daf> closing bugs is a nice feeling :)
[04:30] <carlos> :-D
[04:30] <carlos> daf: you forgot to remove some debug prints about the translation form:
[04:31] <carlos> >>> msgid found (es, evolution addressbook)
[04:31] <carlos> >>> old_translations:
[04:31] <carlos> [u'libreta de direcciones de Evolution'] 
[04:31] <carlos> >>> msgid found (es, current addressbook folder)
[04:31] <carlos> >>> old_translations:
[04:31] <carlos> [u'carpeta de libretas de direcciones actual'] 
[04:31] <carlos> >>> msgid found (es, have )
[04:31] <carlos> >>> old_translations:
[04:31] <carlos> [u'tiene'] 
[04:31] <daf> yeah, they need to go :)
[04:31] <daf> and you forgot a space in u'tiene ' :)
[04:32] <carlos> no, I don't
[04:32] <carlos> that string comes from the sample data
[04:33] <carlos> :-D
[04:33] <daf> oh, right, that's the old one :)
[04:33] <carlos> hmm
[04:34] <carlos> now that you said that..
[04:34] <carlos> is there any way (with javascript) so we show the user the same "icons" for the return char and the spaces inside the edit input?
[04:34] <daf> no idea
[04:35] <daf> also, we should get rid of the information shown when the form is submitted
[04:35] <carlos> that way the UI will be improved ..
[04:35] <carlos> yes
[04:35] <carlos> we should ask limi post-alpha
[04:37] <daf> carlos: we still have .encode('utf-8') in sql.py
[04:37] <daf> several times
[04:38] <carlos> we can nuke them 
[04:38] <carlos> or we should :-P
[04:38] <daf> we should
[04:39] <carlos> ok. I'm going to do a review of all import code
[04:39] <carlos> looking for the bug
[04:39] <daf> ok
[04:39] <carlos> could you take care of the encode calls?
[04:39] <daf> a test case would be good :(
[04:39] <carlos> ok
[04:39] <daf> for 1978, I mean
[04:40] <carlos> I will review then the current test case
[04:40] <carlos> because they should detect the bug
[04:40] <carlos> and they are not doing it
[04:40] <carlos> so we have a bug with our bug detector :-P
[04:41] <daf> do you think it would be reasonable to add "assert isinstance(foo, unicode)" to sql.py in places where it's calling ".encode('utf-8')"?
[04:41] <daf> in order to make sure nothing is passing strings in
[04:42] <carlos> hmm, don't know
[04:42] <stub> daf: Sounds good to me.
[04:43] <carlos> daf: with your changes to the auth code, could you close any of the Steve's bugs?
[04:43] <daf> stub: groovy
[04:44] <daf> carlos: perhaps, I'll check
[04:44] <carlos> ok
[04:44] <daf> hmm
[04:45] <daf> well, I think #1908 is probably closable
[04:45] <daf> but strictly speaking, the bug is that Steve should check it
[04:45] <daf> so I won't close it
[04:45] <carlos> daf: then punt it to post-alpha
[04:45] <daf> similarly for #1907
[04:46] <daf> I'll wait to see if Steve turns up today, I think
[04:46] <daf> but I will punt if we're waiting on them alone
[04:47] <carlos> ok
[04:49] <daf> that means we only have #1907, #1908 and #1978
[04:49] <carlos> right
[04:49] <daf> 3 open bugs in the list, 3 open bugs
[04:50] <daf> merge a patch, mark it fixed
[04:50] <daf> 2 open bugs in the list
[04:50] <daf> o/~
[04:50] <carlos> :-)
[05:06] <carlos> daf: the functional tests fails checking the sql interface about efforts (I think it fails because the DB is empty...)
[05:06] <daf> I think you're right
[05:07] <carlos> any way to fix it until we start using it?
[05:08] <daf> you can remove them temporarily
[05:08] <daf> or comment them out
[05:08] <carlos> ok
[05:08] <daf> that would be better
[05:09] <carlos> ok, done
[05:09] <carlos> now I get an error with the poimport test
[05:10] <carlos> Traceback (most recent call last):
[05:10] <carlos>   File "/home/carlos/Work/dists/launchpad/lib/canonical/rosetta/ftests/test_poimport.py", line 28, in setUp
[05:10] <carlos>     canonical.lp.initZopeless()
[05:10] <carlos> NameError: global name 'canonical' is not defined
[05:10] <carlos> should I export the PYTHONPATH for the unittest?
[05:10] <spiv> At a guess, "import canonical.lp "?
[05:11] <daf> hmm, it should be doing that
[05:11] <carlos> spiv: bingo
[05:11] <kiko> hey spiv
[05:11] <daf> spiv: perhaps the test generator is buggy, then
[05:11] <spiv> kiko: Hey, how's it going?
[05:11] <daf> s/spiv/carlos/
[05:11] <carlos> daf: no, that's from a manual test (the test_poimport.py) it's not about the interface test
[05:12] <daf> oh, right
[05:13] <kiko> spiv, quite well. had a *great* talk with stub this morning, he rocks.
[05:19] <spiv> kiko: Great :)
[05:19] <spiv> kiko: My email is down, but you (or someone) will be sending a summary to the list?  Or perhaps you have already?
[05:20] <daf> carlos: did you get a reply from jblack about the PQM wedginess?
[05:20] <daf> spiv: again? :(
[05:20] <spiv> daf: Yeah.
[05:21] <carlos> daf: no
[05:21] <carlos> daf: he said that will ask lifeless
[05:21] <daf> carlos: right
[05:24] <daf> well, it's not an urgent problem right now
[05:27] <carlos> now
[05:27] <carlos> I should "break" them again
[05:27] <carlos> so they detect the bug 
[05:27] <carlos> 1978
[05:27] <kiko> spiv, I can get you pasteback.
[05:29] <kiko> carlos, is justdave currently the only bugzilla admin we have?
[05:30] <carlos> kiko: hmm, I'm not completely sure
[05:30] <carlos> but I think so
[05:30] <kiko> thanks.
[05:32] <spiv> kiko: Thanks!
[05:32] <kiko> spiver!
[05:33] <kiko> spiv, cprov and I got together today too and we think we're mature enough now to start using bugs to track work
[05:33] <kiko> spiv, how do you feel about that?
[05:33] <kiko> we're finding it hard to keep track with wiki lists at this point
[05:33] <spiv> Sounds good to me.
[05:33] <kiko> (they grow long)
[05:33] <spiv> I've just started doing that myself, and it's working well for me so far.
[05:33] <kiko> spiv, so I'm going to kill 30 minutes today moving stuff from the wiki into bugzilla, as soon as justdave clears my privs.
[05:34] <spiv> Go for it.
[05:36] <daf> kiko: come and join us in bug-oriented task management land :)
[05:38] <kiko> daf, remember, I'm a Bugzilla maintainer :)
[05:38] <daf> I didn't know that!
[05:38] <daf> https://bugzilla.warthogs.hbd.com/bugzilla/chart.cgi?category=-All-&subcategory=-All-&name=181&select0=1&label0=open+Rosetta+bugs&line0=184&datefrom=&dateto=&action-wrap=Chart+This+List
[05:41] <kiko> erhm
[05:41] <kiko> oh.
[05:41] <kiko> I am being very very silly.
[05:42] <daf> what have you done now? :)
[05:42] <kiko> requested privs on bugzilla.no-name-yet.com. 
[05:43] <daf> silly kiko
[05:43] <kiko> maybe I should take a one-week holiday.
[05:43] <carlos> daf: sorry, one more bug for the alpha (but could be punted)
[05:43] <daf> carlos: no worries
[05:43] <kiko> london sounds like a nice destination
[05:43] <carlos> kiko: :-P
[05:43] <carlos> kiko: spain is hotter
[05:43] <daf> kiko: yes, it's er, nice at this time of year
[05:44] <kiko> just make sure nobody insists on me working for that week
[05:45] <daf> carlos: do you think you can fix it?
[05:45] <daf> carlos: or would you like me to try?
[05:47] <carlos> daf: it's too easy
[05:47] <daf> :D
[05:47] <carlos> we need to append a white space
[05:47] <carlos> when exporting translators comments
[05:47] <carlos> that's all
[05:47] <carlos> well, prepend
[05:47] <daf> does it work with multi-line comments?
[05:48] <daf> i.e. the space could affect wrapping
[05:48] <carlos> no idea
[05:48] <carlos> we are talking about comments from a .po file
[05:48] <spiv> Gah, I don't have email... which makes merge requests annoying.
[05:48] <carlos> so if they where right inside the .po file
[05:48] <carlos> they should be also correct with our exported .po file
[05:48] <daf> spiv: would you like me to make a request on your behalf?
[05:49] <spiv> daf: Well, I can do it, it just takes a bit of mucking around :)
[05:49] <daf> spiv: ok
[05:49] <spiv> This merge isn't urgent, so I'll do some more work then worry about it.
[05:51] <kiko> guys
[05:51] <kiko> have you been seeing weird PQM commit messages for merges? it's including now changes made by others.. is that correct?
[05:51] <carlos> kiko: know bug
[05:51] <kiko> that changed around this week, AFAIK
[05:51] <carlos> I'm the master
[05:51] <carlos> and I affect all your commits
[05:51] <carlos> I'm the king!!!!
[05:51] <carlos> :-D
[05:52] <kiko> carlos, I always knew you were the master!
[05:52] <spiv> Not recently, but then I haven't gotten any email today...
[05:52] <carlos> kiko: I reported it already to arch team
[05:52] <carlos> kiko: it's the second time it happens
[05:52] <kiko> that's freaking me out
[05:52] <spiv> I thought that symptom was a result of the "crossing the streams" issue?
[05:52] <carlos> so they should know how to fix it
[05:52] <carlos> spiv: it's possible, I had my archive broken yesterday
[05:53] <spiv> carlos: Oh well, I presume the arch team will sort it out :)
[05:54] <kiko> in arch we trust?
[05:55] <carlos> kiko: it's our god and we should trust always it
[05:55] <spiv> kiko: Basically, yes :)
[05:55] <carlos> :-D
[05:56] <spiv> :)
[05:56] <carlos> kiko: if you are bored... you could help us with the #1978 O:-)
[05:56] <kiko> BORED?!
[05:57] <kiko> I need some Xanax. Cheap Prescription Drugs keep you awake all night long.
[05:57] <daf> carlos: you don't need to hide -- you are the king!
[05:57] <carlos> daf: true!!!!
[05:58] <carlos> :-D
[05:58] <carlos> kiko: sugar, you only need sugar :-)
[05:58] <daf> kiko: yeah, if you can't get sleep, try substituting food
[05:58] <carlos> kiko: I was able to be awake 36 hours only with that :-D
[06:00] <kiko> spiv, bug 1956 is solved, even without the sample data (debonzi added it manually).
[06:00] <kiko> spiv, are you happy if I break the dependency, add a note to 1956, and reassign and resolve it?
[06:04] <spiv> kiko: Well, part of the point of that bug is to import not just real data, but a realistic quantity of it.
[06:04] <spiv> So I guess as a start I should update the bug to make that fact obvious ;)
[06:04] <kiko> I'm sorry.
[06:04] <spiv> But you're right that it no longer blocks 1955.
[06:04] <kiko> I'm talking about 1955. 
[06:04] <kiko> right
[06:04] <kiko> so the answer is yes?
[06:04] <spiv> Ok :)
[06:04] <spiv> Yes
[06:05] <kiko> cool.
[06:07] <carlos> kiko: hey!!
[06:08] <daf> kiko: it's no longer automatically updating
[06:08] <daf> kiko: mea culpa
[06:08] <kiko> and it's also currently broken. nice. :)
[06:09] <daf> kiko: works for me
[06:10] <kiko> https://rosetta.warthogs.hbd.com/soyuz/distros
[06:11] <daf> oh
[06:11] <daf> that's Soyuz broken, then :)
[06:12] <daf> fix0red
[06:12] <carlos> see you later
[06:13] <daf> carlos: that's the best thing about this job
[06:13] <kiko> naked coding?
[06:13] <daf> kiko: YES!
[06:13] <carlos> daf: well, I have the same thing since wednesday night...
[06:13] <carlos> kiko: X-)
[06:13] <kiko> carlos, WE ARE NOT INTERESTED IN THE DETAILS
[06:14] <carlos> kiko: :-P
[06:15] <carlos> perfect and my server is down now
[06:15] <carlos> ggrrrr
[06:17] <kiko> dude, the canonical bugzilla is really hidden
[06:25] <cprov> kiko: err try to do all the work by yourself ?
[06:26] <kiko> eh?
[06:26] <spiv> I just looked at this window, and the first two things I saw were about a "magix fix0rating wand" and "naked coding".
[06:26] <kiko> you missed Xanax and Cheap Prescription Drugs?
[06:27] <cprov> spiv: hi, guy, how is it going with soyuz ? any news ?
[06:27] <spiv> Thankfully, yes.
[06:27] <spiv> cprov: Well my email is down :(
[06:27] <kiko> cprov, that's like saying how is it going with life? :)
[06:27] <spiv> So if there's any news, I haven't heard it ;)
[06:28] <daf> spiv: so much to do, so little sleep...
[06:29] <spiv> Yeah
[06:33] <cprov> spiv: I'm just implementing People with no differences between Person and Team, quite simple and easy.
[06:34] <kiko> though I am unhappy with that :-/
[06:36] <cprov> kiko: why ? look in DB there is no Team, I mean Team is a Person anyway :-|
[06:37] <kiko> yeah.
[06:37] <kiko> I think the pages should be different, but..
[06:37] <kiko> (avoiding ifs)
[06:38] <cprov> kiko: yeah, the page will have just few differences in "private info" just it 
[06:39] <cprov> kiko: you still can assign a bug to a Team
[06:39] <kiko> i guess.
[06:39] <cprov> kiko: or have a Team email
[06:39] <kiko> yeah, teams need email.
[06:39] <cprov> kiko: or have a Team as maintainer for a pkg
[06:40] <cprov> kiko:  so, everything you can do to a person :)
[06:40] <kiko> heh
[06:45] <daf> debonzi: ?
[06:48] <cprov> kiko: please, just have a look on gwyddion.gwyddion.com/soyuz/people
[06:48] <cprov> kiko: hurry up, I have a test in 10 min :)
[06:49] <debonzi> daf, yep
[06:49] <daf> both of you have an exam?
[06:49] <debonzi> daf, yep.. the same
[06:50] <daf> good luck!
[06:50] <debonzi> daf, Thanks.. Ill need :)
[06:50] <daf> what's the test on?
[06:50] <debonzi> Eletromagnetism (ARRRGGHHH) :)
[06:50] <cprov> kiko: ping
[06:50] <daf> urg :-/
[06:53] <kiko> pong
[06:53] <kiko> eeeeeleectriiicittyyyyyy
[06:54] <cprov> kiko: the link, quick look, 2 min
[06:54] <kiko> looking
[06:54] <cprov> kiko: search or see the entire list
[06:55] <kiko> yes, I've noticed
[06:55] <cprov> kiko: we have person and teams on same level :)
[06:55] <cprov> kiko: do you think it works for us ?
[06:56] <kiko> Iam confused only by one thing: Email: Mark Shuttleworth?
[06:56] <cprov> kiko: +edit and real roles soon
[06:56] <cprov> kiko: owner ... try again :)
[06:56] <kiko> and the case-sensitivity problem? 
[06:57] <kiko> hmm
[06:57] <kiko> is that team lead or something?
[06:57] <cprov> kiko: yes soon too :)
[06:57] <cprov> kiko: teamowner to be precise !
[06:59] <cprov> kiko: time is over ... see you in one hour 
[06:59] <kiko> do it!
[07:50] <carlos> daf: ping
[07:51] <carlos> nothing, sorry
[07:53] <daf> silly carlos :)
[07:53] <carlos> :-P
[08:16] <daf> spiv: any idea how I would go about setting up a dummy adapter for use in a unit test?
[08:17] <spiv> You probably want to use the PlacelessSetup mixin.
[08:18] <spiv> (e.g. lib/canonical/lp/placelessauth/tests/test_authutility.py does this)
[08:18] <spiv> That file also has an example of registering an adapter: "ztapi.provideAdapter(IHTTPCredentials, ILoginPassword, BasicAuthAdapter)"
[08:19] <daf> stonking!
[08:19] <daf> looks just like what I need, thanks
[08:19] <spiv> Basically, model your unit test after TestPlacelessAuth in that file :)
[08:19] <daf> right
[08:19] <daf> I already have a test
[08:19] <daf> but it broke after a code change I just made
[08:20] <spiv> From #ubuntu... <psi> how would I send in a translation of the Computer menu? many entries there are not translated to swedish
[08:20] <daf> I wish I could say "go to Rosetta" :)
[08:20] <spiv> It'll be good when rosetta is done :)
[08:29] <carlos> daf: could you look at #1985 ?
[08:31] <daf> carlos: what's the problem?
[08:32] <carlos> daf: reread it, please, I added a comment
[08:32] <carlos> we could punt it post alpha, but I don't agree
[08:33] <daf> ok, I see your comment now
[08:33] <carlos> I mean that I don't agree on the current behaviour
[08:33] <carlos> I did changed it to post alpha
[08:42] <daf> carlos: I've commented
[08:42] <carlos> reading
[08:54] <carlos> well, to all pomsgsets :-P
[09:42] <kiko> cprov, I'll need to get to the bugs tonight, I have other problems to handle.
[09:56] <cprov> kiko: ok
[10:44] <carlos> daf: I think I found the problem
[10:47] <daf> yeah?
[10:47] <carlos> daf: yes
[10:47] <carlos> all msgids are inserted as plural forms
[10:48] <carlos> seems like "" is taken as a valid string
[10:48] <carlos> instead as a "we don't have a message here"
[10:49] <carlos> I'm tracing the code until I get the exact point where the checks fails
[10:53] <carlos> hmm
[10:54] <carlos> daf: could you look at pofile_adapters.py?
[10:54] <carlos> line #293
[10:54] <daf> I see it
[10:55] <carlos> daf: is that correct?
[10:56] <carlos> it always fills the plural form??
[10:56] <daf>                 raise POInvalidInputError('PO template has msgstrs', 0)
[10:56] <daf> that is my line #293
[10:57] <carlos> -> proxy.msgidPlural = kw.get('msgidPlural', '')
[10:57] <carlos> > /home/carlos/Work/dists/launchpad/lib/canonical/rosetta/pofile_adapters.py(173)_set_msgidPlural()
[10:57] <carlos> -> if old_plural is not None:
[10:57] <carlos> (Pdb) n
[10:57] <carlos> > /home/carlos/Work/dists/launchpad/lib/canonical/rosetta/pofile_adapters.py(176)_set_msgidPlural()
[10:57] <carlos> -> self._msgset.makeMessageIDSighting(value, 1, update=True)
[10:57] <carlos>      try:
[10:57] <carlos>             proxy.msgidPlural = kw.get('msgidPlural', '')
[10:57] <carlos>             if kw.get('msgstr'):
[10:57] <carlos>                 raise POInvalidInputError('PO template has msgstrs', 0)
[10:57] <carlos>             proxy.commentText = kw.get('commentText', '')
[10:57] <carlos>             proxy.sourceComment = kw.get('sourceComment', '')
[10:57] <carlos>             proxy.fileReferences = kw.get('fileReferences', '').strip()
[10:57] <carlos>             proxy.flags = kw.get('flags', ())
[10:57] <carlos>             plurals = [] 
[10:58] <carlos>             for inp_plural in kw.get('msgstrPlurals', ()):
[10:58] <carlos>                 if inp_plural:
[10:58] <carlos>                     raise POInvalidInputError('PO template has msgstrs', 0)
[10:58] <carlos>                 plurals.append(inp_plural)
[10:58] <carlos>             proxy.msgstrPlurals = plurals
[10:58] <carlos>             proxy.obsolete = kw.get('obsolete', False)
[10:58] <carlos>             proxy.flush()
[10:58] <carlos> mine is the try:
[10:59] <carlos> What I don't understand is if there is a kw.get... why the trace executes the set_msgidPlural
[11:00] <daf> hmmmm
[11:00] <carlos> the error is at this point, I'm sure, because is where the "" string is created into the database and it does not comes from the .pot
[11:01] <daf> I think this code needs more comments
[11:02] <carlos> daf: agree
[11:14] <carlos> yes, that's exactly the problem
[11:14] <carlos> the plural form is always inserted althought it's ''
[11:15] <daf> why is the parameter there at all?
[11:15] <carlos> no idea
[11:15] <carlos> but 
[11:15] <carlos> proxy.msgidPlural = kw.get('msgidPlural', '')
[11:15] <carlos> is what is fucking all 
[11:16] <daf> ouch
[11:16] <carlos> the proxy.msgidPlural executes the set_msgidPlural
[11:16] <carlos> and then the plural form is inserted into the database
[11:16] <carlos> as ''
[11:16] <carlos> always
[11:17] <carlos> daf: but I don't have a idea about how to fix it
[11:17] <carlos> because I don't understand that code
[11:17] <daf> I think it should be something like
[11:18] <daf> if kw.get('msgidPlural', '') != '':
[11:18] <daf>     proxy.msgidPlural = kw.get('msgidPlural')
[11:18] <carlos> makes sense
[11:18] <carlos> I will try it now
[11:18] <carlos> as soon as I finish with the bug comment
[11:22] <carlos> daf: I don't understand why kw.get('msgidPlural'...) returns '' if the msgidPlural field does not exists...
[11:22] <carlos> or I think it should not exists...
[11:23] <daf> that's what .get does for dictionaries
[11:23] <daf> perhaps this would be better:
[11:23] <daf> if 'msgidPlural' in kw and kw['msgidPlural']  != '':
[11:23] <daf>     ...
[11:24] <carlos> daf: works!!!
[11:24] <carlos> but we still have a bug, the msgid is marked as non current
[11:25] <carlos> launchpad_test=# SELECT * from pomsgidsighting where pomsgset=24;
[11:25] <carlos>  id | pomsgset | pomsgid |       datefirstseen        |        datelastseen    | inlastrevision | pluralform
[11:25] <carlos> ----+----------+---------+----------------------------+----------------------------+----------------+------------
[11:25] <carlos>  28 |       24 |      98 | 2004-09-17 23:24:38.720409 | 2004-09-17 23:24:38.720409 | f              |          0
[11:25] <carlos> (1 row)
[11:25] <daf> hmmmmm
[11:25] <carlos> It comes because at sql.py it's created with it set to false
[11:25] <carlos> we need to change it into true at any point
[11:31] <daf> when you set one to true, you also need to set all the others to false
[11:31] <daf> correct?
[11:32] <carlos> right
[11:32] <carlos> seems like current code
[11:32] <carlos> does that only with plural forms
[11:33] <carlos> but the singular string for that plural form is never updated
[11:33] <carlos> ok
[11:34] <carlos> I think I see a way to fix it
[11:34] <carlos> but we need lalo's review to be sure the changes will work
[11:34] <carlos> I mean, will not break anything else
[11:37] <carlos> daf: could you look at makeMessageIDSighting method from sql.py?
[11:38] <carlos> I think it has also a bug
[11:38] <carlos> it only marks as "inLastRevision" the plural form part
[11:38] <carlos> but not the main msgid
[11:42] <carlos> jesus, this is a madness
[11:43] <daf> I'm looking at makeMessageIDSighting
[11:44] <daf> if pluralForm == 0, doesn't messageID 0 get updated?
[11:46] <carlos> daf: yes, sorry about that. That function is correct
[11:46] <carlos> I misunderstood it 
[11:46] <carlos> daf: so here is the situation
[11:46] <carlos> 1.- We insert a pomsgid with inLastRevision=False (by default is that value)
[11:47] <carlos> 2.- If there is any plural form, we insert it and then change its inLastRevision = True
[11:47] <carlos> I think we should add a call to makeMessageIDSighting for the pomsgid here:
[11:48] <carlos> try:
[11:48] <carlos>             msgset = self.potemplate.messageSet(msgid)
[11:48] <carlos>         except KeyError:
[11:48] <carlos>             msgset = self.potemplate.createMessageSetFromText(msgid)
[11:48] <carlos>         else:
[11:48] <carlos>             try:
[11:48] <carlos>                 msgset.getMessageIDSighting(0, allowOld=True).dateLastSeen = "NOW"
[11:48] <carlos>             except KeyError:
[11:48] <carlos>                 # If we don't have any MessageIDSighting, we shouldn't fail.
[11:48] <carlos>                 pass
[11:48] <daf> where does step 1 happen?
[11:48] <carlos> after that code
[11:48] <carlos> the code I pasted 
[11:48] <carlos> line #282
[11:49] <daf> pofile_adapters?
[11:49] <carlos> yes
[11:49] <carlos> it looks for that msgid, if it does not exists it's created
[11:50] <carlos> but I don't understand the else clause for that try
[11:50] <daf> nrrg
[11:51] <daf> you mean the except claue?
[11:51] <cprov> spiv: ping
[11:51] <carlos> the except KeyError is ok for me 
[11:51] <carlos> but the else:
[11:51] <cprov> daf: you ..ahah brief help with sqlobject ?
[11:51] <carlos> I don't understand it
[11:52] <daf> cprov: what's the problem?
[11:52] <daf> carlos: oh, the outer try:
[11:52] <carlos> msgset will not have any value if we get a exception, right?
[11:52] <cprov> daf: TeamParticipation.selectBy(teamID=self.id) 
[11:52] <carlos> daf: yes
[11:53] <cprov> daf:  I want to join the person table too and select just results with teamoner not NULL
[11:53] <carlos> cprov: do you know the MultipleJoin option?
[11:54] <cprov> daf: ie. I want just the team not the persons
[11:54] <spiv> cprov: pong.
[11:54] <carlos> well, method :-P
[11:54] <cprov> daf:  not used to it !
[11:54] <cprov> spiv: help using MultipleJoin()
[11:54] <daf> carlos: I'm having a hard time understanding the code also
[11:54] <carlos> daf: ok, I will fix it as I think it should work
[11:55] <carlos> and we will care about it later...
[11:55] <spiv> cprov: To do a join in a select, you need .select, not .selectBy, unfortunately.
[11:56] <spiv> cprov: TeamParticipation.select("team = %d AND Person.id = TeamParticipation.person AND Person.teamowner IS NULL")
[11:56] <cprov> spiv: I suspect, did you undestant my aim ?
[11:56] <spiv> Er, I meant IS NOT NULL :)
[11:56] <cprov> spiv: you are the man !
[11:56] <spiv> (plus, you can't test for NULL/NOT NULL with selectBy either :( )
[11:57] <daf> carlos: I'd love to see more comments in this code
[11:57] <spiv> Oh, and you'd need to do '% self.id' after that string, of course :)
[11:57] <carlos> daf: me too, but lalo is not available now
[11:57] <daf> carlos: right
[11:57] <daf> carlos: we might be able to add some ourselves
[11:58] <daf> I think lalo's code is a bit cryptic sometimes
[11:58] <carlos> spiv: could they use the MultipleJoin method to do a Join against the same table?
[11:58] <spiv> carlos: That's an interesting thought.
[11:59] <cprov> spiv: just have a quick look on gwyddion.gwyddion.com:8085/soyuz/people, please :)
[11:59] <carlos> daf: I will check if I'm right and I will try to add the comments I'm sure are right :-)
[12:00] <carlos> spiv: what does it means? that it's possible or that you are not sure? :-P