/srv/irclogs.ubuntu.com/2004/10/04/#launchpad.txt

=== spiv [~andrew@fuchsia.puzzling.org] has joined #launchpad
=== lalo [~lalo@200.96.105.209] has joined #launchpad
=== stub [~stub@dsl-246.248.240.220.dsl.comindico.com.au] has joined #launchpad
=== lal1 [~lalo@200.203.19.41] has joined #launchpad
=== lal1 is now known as lalo
=== lalo [~lalo@200.96.125.71] has joined #launchpad
=== kiko [~kiko@200-206-134-238.async.com.br] has joined #launchpad
=== stub [~stub@dsl-246.248.240.220.dsl.comindico.com.au] has joined #launchpad
=== lalo [~lalo@200.96.125.71] has joined #launchpad
=== lalo [~lalo@200.96.125.71] has joined #launchpad
=== stu1 [~stub@dsl-246.248.240.220.dsl.comindico.com.au] has joined #launchpad
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
=== stub [~stub@dsl-246.248.240.220.dsl.comindico.com.au] has joined #launchpad
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
=== sabdfl [~mark@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
=== lalo [~lalo@200.96.125.71] has joined #launchpad
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
lalohahahahahahaha... I think I broke my gentoo in a way that's going to be interesting to repair :-P11:27
kikoyou use that word?11:29
kikonormally I say "disgraceful"!11:29
lalointeresting is the right word here11:29
laloI, hmm, broke my gcc :-P so I can't install another gcc because, you see, I have no gcc... it's kind of like breaking dpkg in debian11:30
laloyou can get around a broken dpkg with "ar" and "tar"... and equivalently I'm pretty sure there is a way to get out of this situation... just have to think about it for 10 minutes11:30
kikohow broken, and how did you break it?11:31
lalooh, I was trying to downgrade from 3.4 to 3.3; then I found that I had both installed (using slots), and just removed 3.4. But /usr/bin/gcc seemingly was part of the 3.4 package... so I have all the bits and pieces, except the thing that puts them together11:32
kikolalo, just copy the gcc-3.4 binary from somewhere else11:33
lalothat's the plan11:33
laloah11:51
laloas I expected, much simpler than that11:51
lalojust had to edit a config file to point to the right version11:51
laloand now to compile directfb :-)11:52
lalofunny, where is everyone? we have a meeting in a few minutes11:52
kikolalo, what timezone are you in?! the meeting is in 1:30h11:56
lalo1:30? I thought it was 11:3011:57
laloand rosetta's is 45m earlier, whatever time is the launchpad one11:57
kikoit *is* at 11:30, which is.. oh. 11:58
kikowell, I'm here (no sleep last night though :)11:58
laloah, you said "in" 1:30, I read "at" 1:30 :-) we're talking the same thing11:59
=== carlos [~carlos@171.Red-83-32-196.pooles.rima-tde.net] has joined #launchpad
lalocarlos: good morning12:07
carlosmorning12:07
=== kiko is now known as kiko-afk
SteveAaren't we ten minutes into a rosetta meeting now?12:39
laloSteveA: just what I was thinking. Looks like something happened with daf 12:40
carlosSteveA: in 5 minutes12:40
dafmorning all12:40
carlosdaf: morning12:41
SteveAwhat happened?12:42
dafthe meeting is scheduled for 10:4512:43
dafshall we start?12:44
lalook12:45
carlosdaf: sure12:46
daflet's start off by discussing the Alpha release12:46
dafthen what work we've done since the last meeting12:46
dafthen what we're going to do for the rest of today12:47
carlosok12:47
dafI think we're more or less ready for Alpha12:48
dafthe two things I know I need to do are:12:48
daf- disable the advanced search page, since it doesn't work12:49
daf- send out the announcement email12:49
dafnow's the time to list anything else that needs doing12:49
carlosdaf: perhaps improve the message about the plural forms with a mailto: link 12:50
carlosso they know they should send use the information12:50
carlosso they could translate into that language?12:50
dafgood idea12:50
dafwhere should they send it to?12:50
dafme? the Rosetta Testers list?12:51
carloshmmm12:51
carlosperhaps to the list12:51
SteveAdaf: rosetta.ubuntulinux.org goes to the launchpad front page.  this has links to soyuz and malone on it.12:51
carlosso anyone could add it?12:51
SteveAmaybe the virtual hosting should be changed so that it goes to the rosetta front page only12:52
dafSteveA: good idea12:52
SteveAwe can then use the package overrides system to put the special ubuntu front page as the default page for that rosetta12:52
dafI think it would be a good idea to hide away Malone andd Soyuz12:52
SteveAso, we can use an override for that12:52
dafcan you either do that, or explain to one of us how to do it?12:53
SteveAthat is, a file in override-includes that redefines the default page for the root object, and for the rosetta front page12:53
lulucan the link to launchpad be launchpad.ubuntulinux.org, rosetta = rosetta. ubuntulinux.org etc...12:53
dafSteveA: so it's a normal ZCML file?12:53
SteveAwhat do you mean "link to launchpad", lulu ?12:53
SteveAdaf: yes, it is a normal zcml file.  Its directives override those already in the system.12:54
luluso we have the 3 tools in launchpad.ubuntulinux.org instead of rosetta - isolate links12:54
SteveAfor the rosetta alpha, we want just rosetta to appear at rosetta.ubuntulinux.org12:54
luluyes agreed12:55
SteveAI don't see any reason to have a launchpad.ubuntulinux.org at this time12:55
lulufine - but how can I publicly access all 3?12:55
SteveAyou can't, because we're releasing only rosetta12:56
daflulu: you can still acccess the development server12:56
luluthrough rosetta.ubuntulinux.org?12:56
SteveAwe're talking about a specific "override" for the rosetta.ubuntulinux.org site.  This is the site that uses the "alpha" database.12:56
dafthrough rosetta.warthogs.hbd.com12:56
carloslulu: no, old url rosetta.warthogs...12:56
SteveAThere's still rosetta.warthogs.hbd.com, that has all of launchpad on it12:57
SteveAand does not use the "alpha" database12:57
SteveAthis is our "development server"12:57
SteveAand, it will not have any overrides in it12:57
luluSteveA: currently when I type in https://rosetta.ubuntulinux.org/ I gte the 3 launchpad tools12:57
SteveAyes, we are discussing that you should not do so, and how to fix it12:58
daflulu: right, and we're going to change that12:58
luludaf: cool - that's why I suggested that to be launchpad.ubuntulinux.org.... - no worries12:58
dafso we have two extra tasks before the alpa12:59
daf- put an email address in the plural form error message01:00
SteveAis the "ubuntu linux package list" page finished?01:00
daf- hide/remove Malone and Soyuz from the alpha server01:00
SteveAwhat about the "ubuntu list of packages" front page?01:01
dafSteveA: we don't have a separate page for it01:01
SteveAI thought that was the plan01:01
dafright, for the Alpha it was decided that we have a very small number of packages01:02
carlosSteveA: we have only two packages for the alpha01:02
daffrom discussions with Mark and from the practical didfficulty of importing many packages01:02
carlosSteveA: we are going to improve and expand that list before the beta01:03
SteveAok01:03
dafthe bug should have been updated with this information01:03
carlosdaf: my fault01:04
dafcarlos: mine also01:04
=== carlos adds to the todo list after the meeting
dafSteveA: bug #1915 is still marked as depending on #1907 and #1908, which are assigned to you01:04
dafSteveA: I don't think they block the release, but it would be nice to have them closed01:05
SteveAok, noted01:05
dafthanks01:05
dafanother thing:01:06
SteveAI propose for the alpha server, we make the front page of launchpad a redirect to /rosetta.  This will serve until the virtual hosting configuration is updated.   But, if the virtual hosting stuff can be updated now, there's no need to change the front page.01:06
SteveAbecause the front page will not be visible01:06
=== cprov [~cprov@200.158.100.251] has joined #launchpad
daf- I shuold apply Carlos' DB changes to the Alpha DB01:06
daf(sorry for typos, link is slow)01:07
carlosdaf: not yet, I'm doing more testing today01:07
dafcarlos: ok01:07
carlosand they could be added at any time01:07
carloslater01:07
dafcarlos: I'd like to do it before the GNOME Panel import01:07
carlosI'm getting bad numbers today01:07
carlosand I need to understand why, I will know it after the meeting, my laptop is working now on it01:08
dafok, perhaps I should make a task to test the changes on the development server01:08
carlosthat will be good01:08
dafok01:09
dafanything else that needs to be done?01:09
dafif not, let's discuss our tasks01:09
carlosnothing from here01:10
daf(we are scheduled to finish in 10 minutes)01:10
dafok01:10
daftasks done since yesterday's meeting?01:10
daflalo: care to go first?01:10
lalook01:11
laloI fixed #2022 in the few minutes after the meeting, or was it right before?01:11
=== carlos is happy to see that the numbers are again good with the indexes (VACUUM ANALYZE is needed)
lalothen I slept :-) when I woke up, I sanity-checked the fix and committed it01:12
dafgreat01:12
dafcarlos?01:12
carloslalo: I will test it after this meeting to confirm the fix01:12
lalocarlos: thanks01:12
carlosdaf: I was working on more testing, I have almost finished the report SteveA asked yesterday01:13
dafgreat01:13
=== kiko-afk is now known as kiko-fud
carlosdaf: and answer your questions to the mailing list about the indexes01:13
carloshmm, I think that's all01:13
dafok01:13
dafI fixed #2023 last night01:13
dafand replaced the placeholder "About Rosetta" text with something useful01:14
daf(with input from Lu and Mark on that)01:14
dafok, and very quickly -- what are we going to work on today?01:15
carlosI will work finishing the report, and will start doing more improvements to the queries01:16
carlosand use your profile information to try to improve it more01:16
dafI will work on completing the Alpha tasks01:16
dafcarlos: do you need information from me about how I profiled it?01:16
laloif no greater priorities arise, I'm going to work on 1944 (the dreaded import/export tests)01:16
carlosdaf: not now, let me read your report and I will be back to you if I see I need it01:17
dafcarlos: ok01:17
daflalo: that's fine by me01:17
dafany other business?01:17
carlosdaf: I suppose I will not have enough time01:18
lalodo you think 1944 has greater priority than 2021?01:18
carlosbut If I'm able to finish my tasks, I want to start with the scripts we were talking last week01:18
carloswith steve01:18
daflalo: actually, I think it would be nice to get #2021 fixed first01:19
lalook01:19
dafcarlos: ok01:19
laloI'm happier that way too :-)01:19
dafgreat :)01:19
dafright, I declare End Of Meeting01:19
dafthanks, it was a good one01:19
dafeven if we ran a little over01:20
carlos:-)01:20
=== daf goes to grab breakfast before the Launchpad meeting
lalome too01:21
stubSomeone ping me for the meeting - I havn't got an alarm on this thing yet01:22
SteveAcan you get to http://rince.africaninspace.com/mailman/listinfo/activity ?01:22
kiko-fudme201:24
stubNo, but my network has been shitting me all night01:27
SteveAit's okay, mark screwed up a server upgrade.  mail archives are off until it is sorted out.01:29
SteveAit is 14:3001:30
SteveAstub, kiko-fud: time for the meeting!01:30
kiko-fuddo you know where your children are?01:30
=== kiko-fud is now known as kiko
SteveAor even what timezone they're in01:30
=== debonzi [~debonzi@200.158.100.251] has joined #launchpad
kikobehold the great debonzi has entered the room01:30
debonzikiko, lol01:31
kikosoyuz is here01:31
stubYo01:31
SteveAkiko, debonzi, spiv, cprov: all here?01:32
kiko[x]  yes01:32
stubAnd Malone, on his lonesome :-)01:32
debonzi[x]  yes01:32
SteveAstub, justdave: ?01:32
spivYep.01:32
SteveAwe're starting a little early for justdave's timezone01:32
SteveAI'll catch up with him later01:33
kikohe pulled an all-nighter afaik01:33
kikojust like me01:33
justdaveI'm here01:33
SteveAoh, hi!01:33
SteveAdaf, carlos, lalo?01:33
carlosSteveA: I'm here01:33
=== lalo is here
SteveAlimi will be traveling back to Norway from Vienna today01:34
spivdaf is in the middle of breakfast; he'll be here very shortly.01:34
SteveAlulu: ?01:34
=== daf returns
SteveAlet's start01:34
SteveAsoyuz01:34
SteveAWhat's happened since last week?01:35
kikoyes01:35
kikowe've filed half a million bugs01:35
kikofixed about half of them01:35
cprovkiko: aha01:35
kikopestered people on the mailing list about the tough issues01:35
luluSteveA: her :o)01:35
kikohad rosetta and malone integration meetings01:35
luluhere!01:35
kikodid QA and polished the UI of bits missing01:35
SteveAI'll be looking at the bugs you mailed me about during today01:36
kikostarted sorting out the pickles that we got some traction on01:36
SteveAhow did the integration meetings go?01:36
kikowhich are the person identifying issue and some bits of package info that were missing01:36
SteveAwhat is the decision on the person identifying issue?01:37
kikothe integration meetings went well, stub was killer and let us file bugs on portlets that we need01:37
kikostub is the man to answer that I suspect :)01:37
stubI'm just easy01:37
kikowe add a shortname/nick whatever to the database01:38
kikostub and soyuz agree on that, I can't remember if we are waiting for approval of the gods before hitting the database01:38
kikodo you stub?01:38
stubOutcome of the Malone/Soyuz integration meeting was I make the relevant portlets in Malone and stick them into the relevant Soyuz pages. Three seperate portlets are needed.01:38
SteveAI think the nickname thing may have an implication on the plone websites / xml-rpc authserver01:39
stubYes - I think we need a Person.name - unique, lowercase01:39
SteveAok, so we integrate between launchpad applications at the portlet level.01:39
SteveAmalone makes portlets available to soyuz01:39
kikoSteveA, at least between malone and soyuz.01:39
kikoSteveA, we don't know about rosetta well because the issues are a bit different01:40
stubSteveA: We don't have to use it for auth if we don't want to. That is a different use case for the same info01:40
kikostub, is there an eta for the portlets01:40
kikostub, yes, exactly what I was going to say01:40
stubTwo days ago01:40
SteveAstub: sure, we don't need to use it for auth. but, is it an essential field?  will it need to be requested when people sign up with the ubuntu site?01:40
kikoSteveA, IMO it is essential and it is silly to skimper around this issue01:41
kikoSteveA, nobody wants to traverse on email or a number01:41
stubSteveA: We can generate one if we want to avoid that and we don't want to ask the question01:41
kikoso this is really the only solution. we can suggest one if we like01:41
kikoso kiko@async.com.br -> kiko for nick01:42
SteveAok, so we can keep the plone stuff and xml-rpc stuff that is now deployed the same01:42
SteveAkiko1 if kiko is taken already?01:42
cprovI agree on automatic (safety) generation of a unique name 01:42
stubI have code lying around somewhere that can safely generate unique names from an email address.01:42
kikoor kiko_async or kiko_x or some options but yes01:42
cprovSteveA: whatever :)01:43
SteveAwe need to decide on this before we make the change that we depend on this nick.01:43
SteveAlet's not decide now, though01:43
stubOh... sorry. It is givenname/surname/email so isn't appropriate01:43
luluSteveA: Authentication - we're having problems with email from Zope/Plone01:43
SteveAbut, someone must take responsibility for the issue01:44
SteveAany volunteers?01:44
SteveAlulu: we'll talk about the website/launchpad stuff in a bit01:44
stubI'll add the field to the table :-)01:44
kikoSteveA, well, if it's just adding a field, it's stub01:44
kikoSteveA, I have no idea where users are created or authenticated in this launchpad creature.01:44
kikodoes anyone?01:44
SteveAthat's ok.  but if it is adding a field and a constraint, then we need to decide how we are coming up with these nicknames01:45
SteveAthe launchpad does not register users at present01:45
kikowe can just add the constraint later, can't we?01:45
stubThe adduser script needs to do the username address validation though (and I don't know this either).01:45
SteveAstub: will you take on getting the nickname stuff sorted out thoroughly?01:46
carloskiko: we have a script to create the users at rosetta/scripts/createuser.py01:46
SteveA(hmm, maybe it should be someone who will be at the soyuz sprint)01:46
stubkiko: It would be painful doing that.01:46
SteveAwhat I'm looking for is a library function to create suitable nicks, if none is given01:47
kikooh.01:47
SteveAsomeone needs to decide on the policy for this, as in how it works, and then write it01:47
SteveAwe'll all use the same function01:47
kikoI suspect mark will want to have input on this?01:48
SteveAalso, who will check with mark that he is okay with the nickname thing?01:48
stubSteveA: It is a simple algorithm - take the bit before '@' from the email, remove any ugly characters, and add a number on the end until there are no conficts when you insert.01:48
SteveAI think a message to the launchpad list would be good01:48
kikoI can do that and pester sabdfl on irc01:48
SteveAI don't know that this is *urgent*.  so, a mail to the list should be sufficient.01:49
SteveAthanks kiko01:49
SteveAI think that wraps up nicknames, for now01:49
kikoyes01:49
SteveAdo you think we should have another soyuz walkthrough this week, before the sprint?01:50
SteveAmaybe tomorrow?01:50
kikonah, not really.01:50
kikowe travel saturday.01:50
SteveAok01:50
SteveAso, we can have one at the start of the sprint01:50
SteveAin person01:50
kikoyes, that would be perfect.01:50
spivI think that's a better idea.01:50
SteveAok.  are all travel arrangements to the sprint okay?01:51
kiko[x]  soyuz 01:51
SteveAany other issues?01:51
kikouhm, let me try and recall01:52
kikocprov, is there anything open?01:52
SteveAI still need to get you a zodb01:52
kikoyes, that's bugged on you IIRC01:52
SteveAit is at the top of my list01:53
cprovkiko: yep the complicated issues on person/team add action ...but I preffer to talk on sprint, I think01:53
kikookay. 01:53
SteveAok, let's move on to the plone<-->launchpad sites01:53
kikodebonzi, cprov, packaging issues perhaps?01:53
=== SteveA waits a little longs
SteveAlonger01:53
cprovI'll commit some changes today and would apreciatte SteveA and Spiv revision on that, ok ?01:53
SteveAcprov: send an email?01:54
kikookay, cool.01:54
spivcprov: sure; email or poke me on irc.01:54
cprovSteveA: of course01:54
SteveAok01:54
SteveAok, let's move on to the plone<-->launchpad integration01:54
SteveAlulu: you said there is an email problem01:55
cprovspiv: I think I need a private help after meeting (10 min, again) ? 01:55
spivcprov: Sure.01:55
luluyes - Roche is not getting plone emails01:55
cprovspiv: great01:55
SteveAwhat do you mean by "plone mails" ?01:55
SteveAmails sent out from plone?01:55
kikookay, I'm on standby then01:55
luluyes - once a user is registered, he is not getting the email 01:55
lulusaying welcome - but I did.01:56
luluelmo says Gentoo is set up fine01:56
SteveAyou got one to you @canonical.com address?01:56
SteveAit is conceivable that mail to @canonical.com addresses works while other addresses do not.01:56
luluyes....01:57
SteveAdo you know how the mail service on plone is configured?01:57
cprovspiv: if we have finished here, please join #soyuz. kiko you are suposed to be there too01:57
SteveAthat is, which machine it uses to send email?01:57
SteveAok, let's talk about this in detail after the meeting01:57
luluhave asked elmo to join in01:58
SteveAis there anything else amiss with the launchpad<-->plone site?01:58
kikocprov, I am01:58
kiko?01:58
luluRoche couldn't test last night as a result01:58
SteveAok, we'll get this diagnosed properly after this meeting.  anything else we need to do on the plone sites?01:59
luluso we have to do extensive testing today to get it up01:59
lulupermissions are not great - but the plone workflow limits what we can do01:59
lului need Limi to do some work02:00
luluotherwise - after testing we can assess what still needs to be done02:00
SteveAok.02:00
SteveAcan we move on to malone?02:00
SteveAstub: anything new with malone since the last meeting?02:01
stubI'm now on a new machine and started belting Malone back into shape after the changes made when I was away (schema changes and auth system).02:01
SteveAyou know that andrew v. won't be working on it?02:01
stubI now need to know about the auth stuff since the next lot of exceptions to fix are all Unauthorized errors02:01
stubYes - Andrew emailed me when I was in Japan02:02
SteveAok, why don't you and I talk about auth stuff tomorrow morning my time?02:02
elmohmm?  is andrew no longer contracting with us?02:02
SteveAelmo: yes02:02
stubYour at UTC+4? Sure.02:02
=== ddaa [~david@nemesis.xlii.org] has joined #launchpad
SteveAUTC+302:03
stubelmo: Possibly short gigs. He is in the unfortunate position of having a new child and work coming out of his ears :-)02:03
SteveAI can manage 6am UTC onwards02:04
stubSteveA: Ok. I'll look out for you online.02:04
SteveAok02:04
SteveAanything else other than auth?02:04
stubI don't think so02:05
stubOh - anyone got an intelligent 'select a sourcepackage' widget written yet?02:06
SteveAlet's talk tomorrow also about moving malone along the route to using it for bugtracking launchpad and then the warty team02:06
stubSomething like the typeahead textbox in Bugzilla02:06
kikostub, no, nothing like that at all.02:06
kikostub, we want a package browser (with sections) but so far nothing.02:07
SteveAfile a bug on limi02:07
stubAnd sabdfl is happy with the assignee stuff I mentioned back in London, and the schema mods are in.02:07
=== stub is done
SteveAso, when will assignee be working?02:08
stubThe screen I have to update to do it (assignee is mandatory - it will default to the package/product owner) is one of the ones raising an Unauthorized error :-)02:09
SteveAok, let's do that tomorrow02:09
SteveAnext, rosetta02:09
stubI want to have the malone basic functionality and the soyuz portlets done by my Monday.02:10
SteveAgreat.02:10
kikostub, that would fit in nicely with the beginning of our sprint02:10
SteveAdo you have bugs in bugzilla for "malone basic functionality" ?02:10
stub(although the soyuz portlets might get reprioritized since they are not essential)02:11
SteveAhave you a clear idea on how the portlets will work with soyuz?02:11
stubSteveA: The use cases on the wiki - nothing formal in Bugzilla02:11
SteveAwe can talk about portlets tomorrow too02:11
SteveArosetta02:12
SteveAdaf: progress of rosetta02:12
stubSteveA: Yes. I'm doing something similar in Malone already. The major problem is generating URLS - I don't want to use absolute URL's since it will screw up virtual malones down the road, so they are context sensitive.02:12
dafsince the last meeting, we've mostly been working on improving the importer02:13
SteveAstub: we should make absolute url work with virtual malones02:13
dafwe found some problems with it in the run up to the Alpha release02:13
stub(erm... I mean they can only be used on a single screen - not any page you feel like)02:13
dafwe've fixed several bugs in it since then02:13
SteveAstub: but, I also talked with people about this at the sprint02:13
SteveAdaf: what bugs remain before getting the alpha used by people?02:13
stubSteveA: Yes - we need IAbsoluteURL functioning to do that02:14
dafSteveA: in terms of bugs against Rosetta itself, none02:14
SteveAin terms of issues blocking rosetta alpha02:14
dafin terms of issues02:15
daf#2025 -- add option to user creation script to email the new user with account details02:15
dafwe also need to make some changes to hide Soyuz and Malone on the Alpha Launchpad instance02:16
SteveAthat's mainly a virtual hosting change.  can you mail elmo about it?02:16
dafI can02:16
SteveAok02:16
dafbut I think we can work around it if the virtual host is not changed02:17
SteveAwho is doing the addition to the user creation script, and when?02:17
dafI'm working on that now02:17
SteveAwhen will it be done?02:17
dafI'm estimating about 20 minutes of work02:17
SteveAok02:18
=== daf marks 2025 as assigned to him
SteveAanything else on rosetta?02:18
SteveAI know there's been some work on profiling the database to add indexes02:18
dafthere's a minor change outstanding to one page02:18
dafright02:18
SteveAwhat's the minor change?02:19
carlosdaf: I could do it now, so we speed up the launch02:19
dafadding an email address to an error message02:19
SteveAok02:19
dafcarlos: you're going to do that?02:19
carlosdaf: yes02:19
dafcarlos: thanks02:19
dafindexes:02:19
dafin the run up to the Alpha, we discovered performance problems02:19
dafwe've spent some time trying to analyze the problem02:20
dafand we have some ideas on how to improve things02:20
SteveAdoes it look like these are in the database itself, or in the launchpad application, or a mixture?02:20
dafmost of the discussion is on #197302:20
dafI think that part of it is the database itself02:20
dafand part of it is in the way the database is being used02:20
dafso part of it is that the queries are running slowly02:21
dafand part of it is that the queries could be improved02:21
SteveAwe could run some specialized queries that do a lot of work at once 02:21
SteveAwhere we need to02:21
dafI think we understand the problem much better than we did a week ago, and we've learned things that will be useful in tackling future performance problems02:22
dafSteveA: right, that's definitely something we should look into02:22
SteveAUI issues on rosetta...02:22
SteveAthere's still the "development legend" at the bottom of screens02:22
SteveAwe can probably lose that with an override, but maybe it isn't still needed02:22
dafI don't consider that a problem, but it can be remvoed02:22
luluand link to dashboards?02:23
dafyes, it might actually be redundant02:23
SteveAthere are still tabs for soyuz and malone02:23
daflulu: we have links to the dashboards in the top right-hand corner02:23
dafSteveA: yes, those are going to be removed02:23
SteveAdo we want a "project maintainer dashboard" for rosetta?02:23
SteveAfor the alpha02:23
SteveAare there bugs filed on tidying up the UI in this way for the alpha?02:24
dafno, there aren't02:24
daflet's do that02:24
SteveAthere's site map and legal too, with no content02:24
SteveAI suggest to add a sober explanation of what should go there, or remove them02:25
SteveAor implement them properly02:25
dafagreed02:25
luluI suggest all redundant links be reoved - site map and legal are covered in the ubuntu site02:26
luluremoved!02:26
SteveAwhen I search, a search with 1 or 2 characters gets a system error02:26
dafhttps://bugzilla.warthogs.hbd.com/bugzilla/show_bug.cgi?id=202602:27
SteveAok, thanks02:27
SteveAdaf, let's you and I have a chat in a few hours, to see how things are going02:28
daflet's02:28
luluSteveA: why is it conceivable for non- canonical emails not to be working?02:28
SteveAI'm concerned that we keep thinking we're almost ready to do the alpha, and then finding other things that need to be done.02:28
carlosshould we create accounts for lulu to do also as alphatester?02:28
SteveAwe need to spend a little time carefully going over everything we need to do.02:29
dafSteveA: you're right02:29
lulucarlos: yes please....02:29
SteveAlulu: want to translate into afrikaans?02:29
carlosand any other Canonical person?02:29
lulumark should be on there too02:29
carlosok02:29
dafcarlos: I don't want to see code like this:02:29
daf email = RosettaEmailAddress(person=person, email=options.email, status=1)02:29
SteveAok, that's it02:30
carlosdaf: to simplify things I will add them to the alphatesters list02:30
daf1 is a constant that should be imported from the dbschema module02:30
SteveAend of meeting?02:30
SteveAany other business?02:30
SteveA502:30
SteveA402:30
dafcarlos: Mark already has an account02:30
SteveA302:30
SteveA202:30
carlosSteveA: it's ok for me02:30
SteveA102:30
carlosdaf: hmmm, I'm not completely sure how to use the python schema02:30
SteveAok, done.  Thanks for coming.  we managed it in 1 hour this time02:30
spivWe can all sit down now ;)02:30
carlosdaf: but without password02:30
dafcarlos: ok, that's a special case, I think02:31
carlosspiv: upps, I forgot that :-P02:31
dafcarlos: perhaps we need a script to change passwords02:31
SteveAlulu: I'll take a short break, and then we can look into why the email isn't working.  I note that elmo sent a test message to me at a non-@canonical address 02:31
carlosSteveA: should we handle the case when the password is NULL?02:31
SteveAcarlos: is it defined what the meaning of password == NULL is?02:32
carlosSteveA: seems like rince mail is broken now02:32
stubspiv: More like stand up! I think I've been welded to the couch for two days :-)02:32
luluSteveA: yes it appears to be fine our side - we need to change the webmaster address to be coming from webmaster@ubuntulinux.org rather than canonicla.com02:32
SteveAcarlos: I think that means it is being fixed ;-)02:32
carlosSteveA: it's only because old sample data did not have a password02:32
carlosall accounts created with our script will have always a password02:32
SteveAmaybe password as NULL means that there is no password that can work02:32
carlosand there is no way to reset it to null from the UI02:32
SteveAas in, the account it "locked"02:32
spivWell, we will have that for people we "import", rather than people who sign up.02:33
carlosspiv: the script creates automatically a password02:33
carlosand will send an email02:33
carloswith it02:33
stubSome accounts will be created without passwords (such as when Malone gets an email from an unknown address it will create one). The NULL password flags this.02:33
carlosusing pwgen02:33
spiv(e.g. package maintainers for debian packages.)02:34
carloshmm, so we want to have a "disabled" account, ok02:34
dafcarlos: from canonical.lp.dbschema import EmailAddressStatus02:34
dafcarlos: int(EmailAddressStatus.NEW)02:35
carlosdaf: ok02:35
SteveAjustdave: please reply to my email about the top 100 bugzillas02:35
spivWe don't really want to send an email to every debian package maintainer, spamming them with a password for an account they might not care about at all, or have even heard of :)02:35
carlosspiv: ok02:36
justdaveSteveA: will do02:36
carlosSteveA: mail lists seem to be alive again02:36
lalo"here's your password for Rosetta, a fabulous, completely free i18n system. You can also use this password to download photos of beautiful young women..."02:36
carlosdaf: I will write an option to the createuser.py script to change the password so we can set it as admins02:37
carloslalo: Sabrina!!!02:37
carlos:-P02:37
dafcarlos: I think I'd prefer a new script02:37
carlosdaf: ok02:37
dafcarlos: changing a password is different to creating a user02:37
dafit might be useful to have an option to unset the password02:38
dafeffectively locking the account02:38
sabdflSteveA: lists back up i believe. blush02:38
carlosdaf: ok02:38
SteveAsabdfl: works for me now, thanks02:42
SteveAlulu: from recent email, it looks like there is no problem with how the mail services are set up, but that there is some problem with how plone is using them.02:45
SteveAroche seems to be on the case.  thanks to elmo to checking into it.02:46
luluyup - Roche is investigating now - please could you also impress on him that we HAVE to have this working today. 02:46
luluElmo has doen all his testing - fine our side02:47
SteveAin these situations, looking for a problem that shouldn't be there, extra pressure tends to make programmers work less well.  I'll offer roche a second pair of eyes if he wants them.  I'll ask him about a contingency plan if the usual plone mail just won't work in a resonable time.02:49
SteveAcan I get an admin account on the plone server, so I can take a look around?02:50
=== SteveA phones roche for a chat
carlosgrr, my merge request were ignored because my mail server does not accept my mails from outside my home...03:00
=== debonzi [~debonzi@200.158.100.251] has joined #launchpad
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
carlosdaf: The .po export takes also too long, perhaps we should think on some way to cache it03:07
dafcarlos: file a bug :03:09
dafs/:/:)/03:09
carlosdaf: I'm on it03:09
carlos:-D03:09
SteveAdaf, carlos: I'll be turning the zodb on soon, so we can use that to cache these things.03:11
SteveAthe important thing is to work out what the cache key should be03:11
SteveAthat is, the things that, if they change, we need to re-generate the data03:11
=== SteveA goes afk for a while
carlosok03:12
carloslalo: did you changed your bugzilla id?03:13
lalocarlos: yes03:14
carlosok, I see it now03:14
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
carlosdaf: I sent the merge request to add the mailing information for the missing plural form data03:26
carloslalo: which one is the code for the "other" language you know to translate?03:26
carloslalo: I don't remember it, and I'm going to add its plural form information03:26
lalohmm03:26
dafcarlos: thanks03:26
laloI don't remember either :-P let me check03:27
carloslalo: the name is enough03:27
carlos:-)03:27
carloslalo: it was "n = 0" right?03:27
lalohere's the whole sql statement I used: update language set pluralforms = 1, pluralexpression = '0' where englishname='Lojban';03:27
lalodamn, it doesn't have the code :-/03:28
lalojbo03:28
carloslalo: don't worry03:28
carlosare you sure 0 is correct?03:29
laloyes03:29
carlosperhaps n >= 003:29
carlos:-)03:29
lalono, it's not a bool03:29
lalothe pluralexpression is not supposed to result a bool, but an int03:29
lalo(the index of the plural form you want)03:29
daflalo: but C boolean expressions evaluaate to ints03:29
laloyes03:30
laloand a lot of pluralexpressions abuse this by returning a bool when there are only 2 forms :-)03:30
carloslalo: the Spanish one is n !=103:30
lalocarlos: as I just said :-) the correct would be something like "n != 1 ? 1 : 0" but this is silly in C03:31
carloshmm, we don't have the information for pt_BR, could you give me it ?03:31
carloslalo: ok03:31
carloslalo: the code is 'jbo'03:32
lalopt_BR is the same as Spanish although there is some controversy :-)03:32
carloslalo: you said it's different 03:33
carlosSpanish == to portuguese03:33
carlosas pt03:33
lalothe fact is that we never say either "0 foo" or "0 foos", we say "no foo"03:33
carlosok03:33
carloslalo: for Lojban. npluralforms = 1 expression = 003:34
carloslunch time, we will continue later03:34
laloso a translator who wants to be really strict would create a third plural form for the 0 and use "nenhum" for that case... but that's rare03:34
lalocarlos: (lojban) yes03:34
carloslalo: so, should I use the same or not for pt_BR?03:35
carlosyou decide :-)03:35
=== lal1 [~lalo@201.3.156.164] has joined #launchpad
=== lal1 is now known as lalo
=== debonzi [~debonzi@200.158.100.251] has joined #launchpad
spivcarlos: Have you been crossing the streams or something?  You keep showing up in the PQM merge logs :)03:57
kikospiv, carlos is the master, he hacks on all trees.04:04
lalothe problem seems to be that your tla doesn't think you have the patches... I ran sync-tree and it stopped appearing for me04:06
laloIIRC something like tla sync-tree carlos.perello@canonical.com--2004/launchpad--devel--004:06
=== lalo goes make mate
luluspiv:ping04:43
spivlulu: pong04:44
luluspiv: hi hon. Authentication  - I just sent u an email on password changing and forget your password functionality in launchpad - please could u get back to me on this urgently. tx04:45
spivOk.04:46
luluspiv: cheers.04:48
spivI haven't got it yet -- which address did you send it to?04:50
spivlulu: ^04:51
carlosspiv: I had some problems with my smtp server and some merge requests were droped, I suppose it's that04:53
luluspiv: my mistake - there now.04:54
spivcarlos: Ah, right... you merged rocketfuel into your archive before waiting for merge request finished?04:54
carlosspiv: technically, yes, I did not saw that my postfix was sending my merge requests to /dev/null until this morning04:55
spivlulu: quick answer: Rroche is correct.  I'm mailing a full answer.04:59
SteveAspiv: can you extend the xml-rpc api to allow changes of password?05:05
SteveAthis can be an optional arg in editUser05:05
kikospiv's on the launchpad today, did you see cprov?05:06
kikotrying to catch a rockettail05:06
=== kiko is now known as kiko-fud
=== dilys [daf@muse.19inch.net] has joined #launchpad
spivSteveA: Heh, just sent mail.05:09
spivSteveA: We have no editUser method.05:09
spivI just proposed a changePassword method, but I'd be equally happy to implement it as an editUser method, that takes (login_id, current_ssha_digested_password) as positional arguments, and the new password (and potentially other fields) as keyword arguments.05:10
SteveAwhat about adding a changePassword(user_id, current_password, new_password)05:10
spivThat's what I proposed in email :)05:11
spivBut I think editUser is a little more forward-looking.05:11
luluguys -  is it better for us to do it or for Roche to extend the API?05:11
luluwhat is the long term fix and most robust?05:11
spivlulu: he can't extend the API of the authserver, we have to do that.05:11
spivSteveA: anyway, I'll start work on the guts of it right now, then, and worry about the interface later ;)05:12
luluspiv: ok - let me read your mail :o)05:12
SteveAI'm on the phone to roche05:12
SteveAhe is looking at what is needed on his end05:13
luluthanks guys :o)05:13
SteveAspiv: roche can work with your api, so please make the change, and get it put on macquarie05:18
SteveAand on the test server too05:18
spivOk.05:18
SteveAroche will be testing the change password functionality on the test server, and then deploying it05:21
SteveAhe asked when the new api would be on the test server, and I said you were expecting 1 hour05:21
spivOk.05:22
SteveAare you able to install it on macquarie, or does elmo need to do that?05:23
spivI can do that.05:24
spivI asked elmo to leave my access on there for a week or so, in case of problems :)05:25
SteveAgreat05:25
dilysBug 2025 resolved: add option to user creation script to email the new user with account details05:33
SteveAdaf: we are using the ++vh+ stuff on rosetta.ubuntulinux.org aren't we?05:34
=== SteveA is confused by daf's request to admins
dafok, perhaps I worded it badly05:34
dafcarlos: you are inserting tabs into things :)05:45
carlosdaf: really?05:45
carlosdaf: hmm05:46
dafyeah, the translation template was the last one05:46
carlosshit, I need to change the gvim mode for .pt05:46
carlosdaf: true, it's done by gvim automatically :-(05:46
carlosI forgot it05:46
spivWe should add style guide, complete with vimrc settings, for .pt to the wiki...05:47
carlosdaf: I have autocmd BufNewFile,BufRead *.py set tw=78 ts=4 sts=4 sw=4 expandtab for python05:48
dafspiv: s/We should/Who will/ :)05:48
carlosI suppose that the same with *.pt should be enough, right?05:48
dafcarlos: I have something similar05:48
dafcarlos: and I think the same for .pt, yes05:48
carlosok05:48
carlosand the same for .zml05:49
dafby the way, the rosetta-testers list has been renamed to rosetta-users05:49
carloszcml05:49
dafI'm changing the references in Rosetta05:49
carlosok05:49
carlosdaf: then, will you fix the tab?05:49
dafyep05:51
carlosok05:51
SteveAdaf: bookmarks are still enabled on the alpha server05:53
dafbookmarks?05:53
SteveAduh... I meant breadcrumbs05:53
dafoh, right05:53
dafwell spotted05:53
=== carlos starts with #1973
SteveAbut I see that rosetta.ubuntulinux.org now points at rosetta05:54
dafgosh, so it does05:54
SteveAnothing like sending a unified diff to motivate a sysadmin :-)05:54
daf:)05:54
dafthat's something to bear in mind05:55
=== debonzi goes to lunch (happy time :) )
dafSteveA: ok, I think I've stripped off everything that needs to go for the alpha05:57
dafSteveA: did I miss anything that you can see?05:58
SteveAwhere should I look?05:58
SteveAdevel server, or alpha server?05:59
dafalpha server06:01
dafI've been making the changes locally for now06:01
dafI've been considering the possibility of having a launchpad--rosetta-alpha--0 branch06:01
dilysBug 2027 resolved: Default header comments for new pofiles created with Rosetta are wrong06:02
SteveAhttps://rosetta.ubuntulinux.org/rosetta/translator doesn't work06:02
SteveAhttps://rosetta.ubuntulinux.org/rosetta/prefs doesn't work06:02
SteveAI'm not logged in06:02
dafhmm, those links are wrong06:02
SteveAthe link in the tab to "rosetta" doesn't work06:02
dafthe /rosetta shouldn't be there06:02
SteveAthe title for the "about rosetta" link shows an odd character / spaces06:03
SteveAin its tooltip06:03
SteveAhttps://rosetta.ubuntulinux.org/projects/gnome/gnome-panel doesn't work06:03
SteveAhttps://rosetta.ubuntulinux.org/projects/gnome/gnome-applets works, but appears to be entirely unstyled06:04
carlosdilys: lalo?06:04
SteveAhmm, because the base href is wrong06:04
SteveAhref="https://rosetta.ubuntulinux.org/rosetta/projects/gnome/gnome-applets/index"06:04
lalocarlos: hm?06:04
dilyscarlos: I'm not lalo06:05
carlosdilys: did you fixed that bug?06:05
=== carlos is confused
lalodilys seems to be a bot of daf's06:05
SteveAand all manner of links are wrong06:06
SteveAok, there's major breakage with the virtual hosting, and I'll need to find out why that is06:06
carloslalo: I see it? as comming from daf's machine06:06
carlosand I'm still confused :-D06:06
dafSteveA: there's lots of hardcoding of "/rosetta/..." in the main template06:06
SteveAfor now, I think we need to use the backup plan of asking the sysadmins to revert the change in the vhosting configuration, and adding a redirect on the front page...06:07
lalowhich is why I suppose it's a bot :-)06:07
SteveAunless fixing the main template will help06:07
dafSteveA: I've made some changes -- is anything still broken?06:07
SteveAah...06:07
lalodilys: hello06:07
SteveAI think the vhosting directive is wrong06:07
dilyslalo: hola!06:07
carlosdaf: your boot is not utf-8 friendly :-)06:08
SteveAI'm sure it is wrong06:08
dafcarlos: yeah, that's weird06:08
dilysdaf: donde estas?06:08
=== daf shrugs
=== daf -> workrave
carlosdaf: about our rosetta alpha release... I forgot to mention in the meeting that we need a bts for our alpha testers...06:11
SteveAdaf: the rosetta part needs to be inside the virtual hosting thing06:12
SteveAhttp://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/Zope3Book/virtualhosting.html06:12
SteveASo, I think it should be http://localhost:9010/++vh++https:rosetta.ubuntulinux.org:443/rosetta/++/06:14
SteveAand not  http://localhost:9010/++vh++https:rosetta.ubuntulinux.org:443/++/rosetta/06:14
SteveAthen the base hrefs will be correct06:14
dafok06:15
dafso should I revert the changes I made to the main template, or leave them?06:15
SteveAdepends what changes you made06:15
dafand will you send a diff to the admins, or shall I? :)06:15
SteveAthere should be no hardcoded /rosetta/06:15
sabdflis there a test account for rosetta.ubuntulinux.org?06:16
SteveAyou can test this on rosetta running on your machine06:16
dafthere's not only hardcoded /rosetta, there's hardcoded /soyuz and /malone also06:16
dafSteveA: who can test what?06:16
SteveAgive rosetta a URL with the VH stuff in it, and then look at the source -- see if the base href is okay06:16
dafah, right06:16
dafsabdfl: yes, there is06:16
sabdfltest@ and test?06:16
SteveAdaf: why is there hardcoded /soyuz etc. in the main template for rosetta?06:17
sabdflit no work06:17
dafsabdfl: foo.bar@canonical.com :)06:17
dafSteveA: presumably because the person who wrote it didn't know better06:18
dafSteveA: what's the correct solution?06:18
SteveAbut I mean, where is it linking to?06:18
SteveAwe don't want the tabs etc. in the rosetta alpha06:18
dafwe don't, and I've removed them06:18
SteveAso, where is the hardoded soyuz ?06:19
dafit's not there on rosetta.ul.o06:19
SteveAthen that is okay06:19
dafright06:19
dafwhat I meant was that the locations of Rosetta, Soyuz and Malone are hardcoded relative to /06:20
SteveAwhat does proxypassreverse do?06:20
dafno idea06:20
dilysNew bug 2029 for Launchpad/Rosetta: Languages with country codes are not working06:21
=== carlos leaves for a while
carlosdilys: sshh, it's a secret06:21
carlos:-P06:21
carlosdaf: is it the mozilla boot?06:21
dilyscarlos: you shouldn't have filed a bug, then :)06:21
dafcarlos: "boot"?06:22
carlosbot06:22
carlos:-P06:22
dafno, it's something I hacked up myself06:22
SteveAdaf: are you happy with checking that the VH things work on your machine?06:23
dafSteveA: yep, about to do that06:23
dafSteveA: no, it doesn't seem to be working06:25
SteveAcan you be more specific06:27
dafI can, and I will :)06:27
dafhttp://localhost:8085/++vh++http:localhost:8085/rosetta/++/ takes me to the Launchpad! page06:28
SteveAok, try it with the /rosetta/ before06:28
SteveAas in, 06:28
dafbefore what?06:28
SteveA  http://localhost:8085/rosetta/++vh++http:localhost:8085/++06:28
dafyes, that works06:29
SteveAhow have you tested that it works?06:29
dafI loaded it in my browser and it took me to the correct page06:29
SteveAit goes to the rosetta front page.  have you checked whether there is a base href given?06:29
dafchecking...06:30
SteveAfor example, on the rosetta alpha site, https://rosetta.ubuntulinux.org/projects/gnome/gnome-applets has a stray "rosetta" in the base href06:32
dafwhere is the base href found?06:32
SteveAin the source06:32
SteveAjust after <head>06:32
dafno, there isn't one06:32
SteveAhttps://rosetta.ubuntulinux.org/projects/gnome/gnome-applets/index looks fine06:33
SteveAhttps://rosetta.ubuntulinux.org/projects/gnome/gnome-applets doesn't06:33
daf<base href="http://localhost:8085/projects/gnome/evolution/index" />06:34
SteveAwhat was the URL ?06:34
daffor a GET of http://localhost:8085/rosetta/++vh++http:localhost:8085/++/projects/gnome/evolution06:34
SteveAcan you try this GET:06:34
SteveA  http://localhost:8085/rosetta/++vh++http:localhost:9999/++/projects/gnome/evolution06:35
SteveAthis should give you a base with :9999 in it06:35
daf<base href="http://localhost:9999/projects/gnome/evolution/index" />06:35
SteveAok, great06:35
dafis the trailing "index" supposed to be there?06:35
SteveAso, you can send another diff to the admins, and this stuff should work06:36
SteveAyes, that's meant to be there06:36
SteveAthat's the default page06:36
dafok06:36
daf"signalizes"?!06:37
daf(from the VH doc)06:37
SteveAit is written by someone whose native language is german06:38
dafwith contributions from Marius :)06:39
SteveAyes, marius implemented the virtual hosting, along with albert and vika iirc06:40
dafok, I've sent another request06:43
SteveAspiv: can you delete my account from launchpad that I registered with the email address steve@cat-box.net ?  (if that's the done thing to do, I mean)06:45
spivSteveA: ok.06:49
SteveAdaf: might want to ping elmo too, to let him know to expect another udiff in the mail06:50
spivSteveA: done.06:51
SteveAthanks06:51
dafSteveA: elmo *is* here, by the way :)06:56
SteveAhere is where?  on this channel you mean?  06:56
dafyes06:57
SteveAI like the bootstrapping kind of thing where suggesting to ping someone actually pings them.06:57
dafelmo: ping?06:59
SteveAdaf: do you want rosetta.ubuntulinux.org to be linked to as a tab from the UL website?07:11
SteveAdo you want this during the alpha?07:11
daflulu: did you say Limi was returning today?07:11
dafSteveA: I don't care much either way07:11
!lilo:*! Hi all. Again I will mention that we are still behind on verifying group contact forms you've submitted, and that we've instituted a "squeaky wheel" policy to try to improve response time....if you want to get your service expedited, just message me and I'll try to up your priority. Thanks!07:11
SteveAwill random people be able to get value from rosetta.  is it clear that they need to apply to be a tester at this stage? 07:12
SteveAis it clear that there are a different set of logins?07:12
SteveAlimi should be around tomorrow07:12
dafit is a matter of policy that people are approached for testerhood07:12
ddaaspiv: I need some help to get started with the twisted-in-pyarch problem.07:13
spivddaa: Ok07:13
spivWhat can I do for you?07:13
ddaahelp clarify my ideas07:13
=== kiko-fud is now known as kiko
ddaaroughly, pyarch uses synchronous interfaces07:14
ddaaproblem has been found to occur even when the reactor is not running07:14
ddaaalthough that is probably only a concern in test cases07:14
spivThat's intriguing.  That means it's not related to the signal handlers.07:15
ddaaSo, internal twisted support needs to be enable only when the reactor is running or some magic variable is set to mean "we are running a test case in a process which uses twisted"07:15
spivI can't think of any other global-state influencing things Twisted does, though.07:15
SteveAdaf: ok, but consider youself someone who saw an article in LWN, or slashdot, then came to ubuntulinux.org, and sees a "rosetta" tab07:15
ddaaspiv: that's the problem you tried to work around at Oxford.07:16
SteveAdaf: if this person clicks there, will they be given something useful, if they're not a tester?07:16
ddaaThe problem test cases did not use twisted themselves, that's why it was possible to segregate them.07:16
spivSo, the problem here is that we don't know what part of Twisted is interfering.07:16
SteveAif yes, then we should have a tab linking to rosetta07:16
SteveAif no, we should not07:16
spivSo we don't know how to test for its presence.07:16
ddaaspiv: that's the root of the problem yes07:17
spivThere's always the crude "if 'twisted' in sys.modules: ..." approach.07:17
ddaabut I'm looking for a low-risk solution that I can implement before saturday evening.07:17
ddaatwisted does magic things at module import?07:17
spivNope.07:18
spivWell, there's minor magic for the import of twisted.internet.reactor, but otherwise, no.07:18
spiv(and I doubt that magic is the problem)07:18
ddaaSo, a reasonable solution seems to test for reactor.running (real world) and some magic flag internal to pyarh (test cases)07:18
spivBut I don't know of any other meaningful way to test for the presence of Twisted, if reactor.running is apparently not enough.07:19
ddaaI'm going to brain dump random thoughts now. Do not try to make sense of them at first.07:19
spivOk :)07:20
ddaaOne problem is that the pyarch code is essentially synchronous.07:20
ddaaSo I will have to wrap the async twisted interfaces into a synchronous interface.07:20
ddaaYes that's evil.07:21
ddaaSince it is synchrounous, it might be a reasonably assumption that if a reactor is running, the pyarch stuff is running in a thread.07:21
dafSteveA: oh!07:21
dafSteveA: no, there shouldn't be a Rosetta tab07:21
ddaaAlso, I need my test cases to run in a running reactor.07:22
dafSteveA: the alpha is not going to be announced to the public07:22
ddaaYet they essentially have nothing async to them.07:22
ddaaThe running reactor is going to be needed for two things at least.07:22
ddaaTo set the reactor.running flag so pyrach internal will know to use twisted.07:23
spiv(test cases involving Twisted rarely need to run the reactor; iterating it manually usually enough)07:23
spiv(and there are utility functions like deferredResult to help with this)07:23
SteveAdaf: ok, then no need for links from the UL site at this time.07:23
dafSteveA: right07:23
ddaaAnother relateh problem is the wrap-in-sync problem.07:24
=== daf will be going out within the next 30 minutes
SteveAdaf: I think it would be good to send a mail to the LP list clearly pointing this out 07:24
ddaaOne major idiom in pyrach is the use of iterators over tla stdout.07:24
SteveAotherwise, the enthusiastic UL website team might link to you, or add a tab07:25
ddaaRight now I can see two ways which might me able to do it.07:25
dafSteveA: good idea07:25
ddaa1. assuming we are in a thread, and the reactor push the output in a syncqueue which is used in the iterator.07:25
ddaa2. manipulate the process by hand, that might be possible if processes provide a nice deffered interface07:26
spiv1. sounds reasonable to me.07:26
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
ddaa3. use reactor.iterate, but that might not be possible if the reactor is already running somewhere else.07:27
spivI'm not sure what you mean in 2 by "manipulate the process by hand", but it doesn't sound good :)07:27
spivAnd 3 definitely sounds wrong.07:27
spivI think 1 is the right approach here.07:27
spivYou u07:27
ddaaspiv: can you work with a process with an interface which is based only on deferreds?07:28
dafSteveA: ok, looks like r.ul.o's vhosting is working now07:28
SteveAdaf: cool -- elmo made the change to VH.  rosetta pages now look correct.07:28
spivddaa: I think the answer is yes, but I'm not convinced the question makes sense ;)07:28
dafSteveA: ok, do you think #2026 can be closed?07:28
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad []
ddaaWhat I want to do barely make any sense to start with...07:28
ddaaI am thinking about using the twisted process handling code w/o involving the reactor at all.07:29
spivOh, I see.07:29
ddaaSince the code that need to work with process is synchronous to start with.07:29
SteveAdaf: looks like all those things are done07:29
spivNo, the twistd process handling code very much depends on the reactor.07:30
spivs/twistd/twisted/07:30
=== SteveA wonders if there is a twisted.meltdown
spivSteveA: There is an IReactorCore :)07:30
spiv(which has a .crash method, even)07:30
ddaaThen, what if pyarch code is invoked from the reactor thread?07:31
spivWell, it shouldn't be.  Just like blocking socket reads shouldn't be :)07:31
ddaaCan you think of any way that will not cause a deadlock?07:31
dilysBug 2026 resolved: clean up UI for Rosetta alpha07:32
spivI don't see what's wrong with option 1 -- pyarch is in its own happy thread, and twisted's event loop is in its own happy thread, and they communication via the usual inter-thread methods.07:32
ddaaBecause, according to murphy's law, you can be pretty sure there is some code somewhere in production which calls pyrach from the reactor thread.07:32
spivWell, that code is almost certainly buggy :)07:32
ddaaIt's not buggy according to the current contract, which is "pyarch does not fuck around with reactors"07:33
spivRight, the bug wouldn't lie in pyarch.07:33
spivOr in twisted... it would be in the code that is incorrectly integrating them.07:34
spivYou can't stop people writing buggy software with your library ;)07:34
ddaasee, my goal is get production importd up and running as fast as possible, not to uncover new design flaw that will manifest themselves by random deadlocks...07:34
spivRight.  So I don't see where the deadlocks are yet.07:35
ddaaAre you familiar with importd?07:35
spivWhat makes you think deadlocks are a problem?07:35
spivSomewhat.07:35
ddaaI have no specific idea.07:35
spivOk, so, forget about the reactor for a moment :)07:35
ddaaJust that currently, nothing prevents from calling pyarch from the reactor thread.07:36
ddaaSo it's almost certainly done somewhere.07:36
ddaaSomewhere = in the canonical code07:36
spivThat's not too hard to fix.07:36
spivgive me a sec07:37
ddaaOkay. Forget about reactors. I think you have a pretty clear idea of the problem,07:37
ddaaWhat's your take on the problem?07:37
spivOk, twisted.python.threadable.isInIOThread() will tell you if you're in the reactor's thread.07:38
ddaakewl07:38
spivAnd should be safe to call even if the reactor isn't running.07:38
ddaaOkay. That's solving it.07:38
spiv(it probably should be a method on the reactor, but oh well...)07:39
ddaawait a min...07:39
ddaagotta meditate a bit about it. ..07:39
spivSure :)07:40
spivUnfortunately, I'll have to go in a few minutes (same time as daf).07:40
ddaaWhen are you back?07:41
spivAfter dinner, we're going out to a thai restaurant.07:41
spivI'm not sure precisely how long it will be, sorry :(07:42
ddaamore like 4h than 8h07:42
spivI hope to be sleeping 8h from now :)07:43
ddaaas you might guess, I'm not planning to go bed before that's fixed or I am unable to think...07:43
spivAh, right.07:43
ddaa(lightbulb)07:45
ddaaas a quick hack, I can degrade to "non-incremental" if reactor is running...07:46
ddaai.e. just slurps the stdout07:46
SteveAspiv: roche has a question07:46
ddaathen I can build on top of that later07:47
ddaaspiv: is the reactor code reentrant?07:48
ddaano... that would probably not make sense...07:51
=== carlos [~carlos@204.Red-83-32-196.pooles.rima-tde.net] has joined #launchpad
carlosspiv: are you here?08:50
carlosfunny09:48
carlosSteveA: ping?09:48
kikospiv, is the auth bustage landed yours?10:00
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
=== kiko is now known as kiko-afk
=== spiv is back
=== daf too
SteveAcarlos: hey10:45
SteveAI'm about to go to sleep10:45
SteveAI read your email about authentication10:51
SteveAI'll look into it tomorrow morning, if no-one else has tracked it down by then10:51
dafcarlos: which server are you having trouble with?10:53
dafcarlos: or is it both?10:54
carlosSteveA: ok11:04
carlosdaf: with my local server11:04
carlosand with warthogs one11:04
carlosrosetta.warthogs.hbd.com11:05
carlosSteveA: night11:05
carlosspiv: I'm using alternateID instead of normal selectBy methods11:06
carlosspiv: I suppose it should improve the SQLObject use, right?11:07
carlosspiv: should I add it to the Wiki?11:07
SteveAcarlos: can you file a bug on the authentication problems you're seeing?11:07
carlosSteveA: sure11:07
SteveAthat way, it will be plain whether I need to look into it tomorrow, and what others have found out11:07
carlosok11:08
spivcarlos: Yes, please.  I forgot about that feature!11:08
carlosspiv: also, I don't see a way to "map" a INNER JOIN inside SQLObject queries11:08
carlosspiv: do you know if it exists?11:09
dafcarlos: what query do you want to do?11:09
spivBecause you want to return columns from multiple tables at once?11:09
spivddaa: No, the reactor is definitely not re-entrant!11:10
carlosresults = RosettaPOMessageSet.select('''11:11
carlos            pofile = %d AND11:11
carlos            primemsgid = %d11:11
carlos            ''' % (self.id, msgid.id))11:11
carlosthat query11:11
carloswith normal selects could be improved with INNER JOIN11:11
carloshmmm11:11
carloswait, bad example11:12
carlosseqzero = RosettaPOMessageSet.select('''11:12
carlos            poSet.pofile = %d AND11:12
carlos            poSet.primemsgid = potset.primemsgid AND11:12
carlos            poSet.potemplate = potset.potemplate AND11:12
carlos            potSet.pofile IS NULL AND11:12
carlos            poSet.sequence <> 0 AND11:12
carlos            potSet.sequence = 0''' % self.id,11:12
carlos            clauseTables = [11:12
dafgrrrrrrrrr!11:12
carlos                'POMsgSet poSet',11:12
carlos                'POMsgSet potSet',11:12
carlos                ] )11:12
carlosthis one is better11:12
=== daf loathes the destructive behaviour of .sort()
dafI can't wait for .sorted()11:13
carlosspiv: it's only to improve the queries, instead of a FROM with a list of tables11:13
carlosdaf: what's the problem?11:13
dafcarlos: I have to do11:13
dafsomelist = blah.blarg()11:14
dafsomelist.sort()11:14
dafreturn somelist11:14
dafinstead of:11:14
dafreturn blah.blarg().sorted()11:14
dafthis is one thing Ruby has right: .sort for non-destructive sorting, .sort! for destructive sorting11:15
spivdaf: return (lambda l=somelist: l.sort() or l)()   ;)11:15
dafspiv: :D11:16
ddaaspiv: yeah... I was high on crack...11:16
spiv(yes, that's unnecessarily compless :)11:16
spiver, complex11:16
ddaaYou know twisted is heavy crack ;-)11:16
dafI don't think Steve would approve :)11:17
dafwhat's the simpler version?11:17
spivreturn somelist.sort() or somelist11:17
dafewww11:17
dafthat's still smelly11:17
spivWell, yes :)11:18
carlos:-P11:18
spivsorted = lambda l: l.sort() or l; return sorted(l)  is slightly better, but no longer one statement.11:18
ddaasomelist.sort() or return somelist11:18
spivddaa: return is statement, not an operator.11:18
ddaaright....11:19
spivOh, I get your point.  Yuck :P11:19
ddaaWhat about just using two statement?11:19
dafddaa: that's what I'm doing :)11:20
dafddaa: I'm just saying I don't like it :)11:20
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
dafbah!11:20
dafForbiddenAttribute: ('sort', ...11:20
ddaadaf: I'm pretty there are for python programmers with weird fetishes, like ternary operators and sort return values :11:21
ddaa* there are clubs11:21
dafan aversion to destrcutivity is not a weird fetish :)11:21
dafPython does have a ternary operator -- it looks like this: [value1, value2] [condition] 11:23
dilysNew bug 2030 for Launchpad/Launchpad: After authenticate, launchpad fails with a system error11:23
dafcarlos: you say running on port 8089 doesn't work?11:25
carlosdaf: it works11:25
carlosdaf: but as anonymous11:25
dafor rather, it doesn't produce an error11:25
carlosso you cannot debug the problem11:25
dafhrm11:25
carlossame problem with ++skin++Debug11:26
dafI know why ++skin++Debug is a problem, but not the PDB11:26
carlosdaf: you can try it, rosetta.warthogs.hbd.com has the same problem11:26
carloshmm11:26
carloswell, I did not check the pdb with the rosetta server because I don't see a way to test it :-)11:27
dafof course :)11:27
carlosbut I assume that as it has the same bug, you will get the same problem11:27
carlos:-)11:27
dafI do get the same problem11:28
carlosperfect, I thought I broke anything with my sqlobject changes11:28
dafone techique I use is to switch the ports around11:28
elmoeww, ternary operator's in python?  please tell me you guys aren't using that11:28
ddaaThere is a widthdrawn pep about that.11:28
dafelmo: not really11:29
=== ddaa [~david@nemesis.xlii.org] has joined #launchpad
dafelmo: but ['foo', 'bar'] [True]  == 'bar' and ['foo', 'bar'] [False]  == 'foo'11:29
dafelmo: so you can emulate it11:29
ddaaGuido said "as people are unable to come to an agreement about ternary operators, I'll just reject the proposal"11:30
ddaaOr something just as smooth to the same effect.11:30
dafI didn't like any of the proposals11:31
dafthey were all a bit ugly11:31
ddaadaf, btw methink that's a case for using a tuple instead of a list...11:32
dafspiv: any word on DISTINCT support in SQLObject?11:32
spivdaf: None yet... is it a performance problem yet?11:33
dafddaa: yeah, a tuple would work, but is there any practical difference?11:33
dafspiv: no, merely annoying :)11:33
ddaadaf: no practical difference, but it's not intended to be mutable, so it should be a tuple. That's the most appropriate type for the use.11:33
dafneed to do list(Set(Foo.select(...)))11:33
dafddaa: agreed11:34
spivcarlos: Hmm, I think there's a better way to write that example without needing to change SQLObject.11:35
dafspiv: launchpad/lib/sqlobject/dbconnection.py(510)iterSelect(): TypeError: iteration over non-sequence11:35
dafspiv: this is the error behind #2030, I think11:35
spivdaf: Ok, I'll take ae look at that... I've got a workaround for that, but I want to think about it first :)11:36
dafspiv: actually, I might have got the location wrong -- this traceback is confusing11:36
carlosspiv: which one? Do you have it ? or where could I read about it?11:36
spivcarlos: Just a sec11:36
carlossure11:37
spivcarlos: RosettaPOMessageSet.select('''11:37
spiv            POMsgSet.pofile = %d AND11:37
spiv            POMsgSet.iscomplete=TRUE AND11:37
spiv            POMsgSet.primemsgid = potset.primemsgid AND11:37
spiv            POMsgSet.potemplate = potset.potemplate AND11:37
spiv            potSet.pofile IS NULL AND11:37
spiv            potSet.sequence <> 0''' % self.id,11:37
spiv            clauseTables = [11:37
spiv                'POMsgSet potSet',11:37
spiv                ] )11:37
spivEXPLAIN expects that to be twice as fast... I don't know if that's really the case or not :)11:38
carloshmm, that change will speed the query?11:38
spivIt's also not as clear :(11:38
carlosspiv: interesting11:39
spivWell, EXPLAIN in psql thinks so.  I'd appreciate testing :)11:39
spiv(In fact, I suspect the previous query might be outright buggy...)11:40
dafspiv: buggy?11:40
carlosspiv: no, it looks correct11:41
carlosbut If it improves the speed... the postgres parser is really bad :-)11:41
carlosunder my point of view, of course11:42
spivcarlos: No, it's SQLObject's fault...11:42
spivIf I'm correct, the currently generated query is:11:42
spivselect * from POMsgSet, POMsgSet poSet, POMsgSet potSet WHERE poSet.pofile = 1 AND poSet.primemsgid = potset.primemsgid AND poSet.potemplate = potset.potemplate AND potSet.pofile IS NULL AND poSet.sequence <> 0 AND potSet.sequence = 0;11:42
spivvs.11:42
spivselect poSet.* from POMsgSet poSet, POMsgSet potSet WHERE poSet.pofile = 1 AND poSet.primemsgid = potset.primemsgid AND poSet.potemplate = potset.potemplate AND potSet.pofile IS NULL AND poSet.sequence <> 0 AND potSet.sequence = 0;11:43
carlosoohh, I see11:43
=== daf bursts into tears
spiv(actually, my proposed change will generate a slightly different, but equivalent, query to the last one, I'm just too lazy to retype it ;)11:43
carlosspiv: I see your point11:44
spivI admit to being mildly concerned that the origial query returns twice as many columns!11:44
carlosspiv: I'm looking at the logs now11:45
carlosspiv: to check for it11:45
dafspiv: oh, ouch11:45
spivcarlos: The reason I was initially confused is that it's my understanding that INNER JOIN is the default behaviour when you say "SELECT * FROM TableA WHERE TableA.b = TableB.id;"11:45
dafspiv: can you tell we're SQL amateurs? :)11:45
spivI could be wrong, of course :)11:45
spivdaf: Well, the problem here is that SQLObject provides no nice way to do this, so it's easy to get confused :(11:46
carlosspiv: well, it's the same thing, but postgres manual says that it's faster with INNER JOIN11:46
spivcarlos: Ooh, where does it say that? :)11:46
spivNow it's my turn to bitch about it's parser ;)11:46
carlosThis is the query that sqlobject generates:11:47
carlosSELECT POMsgSet.id, POMsgSet.potemplate, POMsgSet.pofile, POMsgSet.primemsgid, POMsgSet.sequence, POMsgSet.iscomplete, POMsgSet.fuzzy, POMsgSet.obsolete, POMsgSet.commenttext, POMsgSet.filereferences, POMsgSet.sourcecomment, POMsgSet.flagscomment FROM POMsgSet poSet, POMsgSet potSet, POMsgSet WHERE11:47
carlos                    poSet.pofile = 2 AND11:47
carlos                    poSet.primemsgid = potset.primemsgid AND11:47
carlos                    poSet.potemplate = potset.potemplate AND11:47
carlos                    potSet.pofile IS NULL AND11:47
carlos                    poSet.sequence <> 0 AND11:47
carlos                    potSet.sequence = 011:47
carlosspiv: so you are right we get a lot of extra rows11:47
dafs/rows/columns/11:47
daf?11:47
spivcarlos: Extra rows, too?  Ouch.  I don't have the sampledata to test with, so I merely noticed extra columns.11:47
spiv(I'm not surprised, though...)11:47
carlosI think so11:49
carloslet me check it11:49
dafyeah, PDB claims the error is at11:49
daf509             return iter(list(Iteration(self, self._connection,11:49
daf510  ->                               select, keepConnection=True)))11:49
dafwhich looks vaguely familiar :)11:50
carloshmmm, seems like I was wrong and we only get extra columns11:50
carlosI don't know why but I saw a way to get extra rows... but that's an offtopic now :-)11:51
carlosspiv: http://www.postgresql.org/docs/7.4/static/tutorial-join.html11:51
carlosspiv: a "normal" INNER JOIN is the same thing than a list of tables at FROM 11:52
carlosbut you can handle it in a better way with INNER JOIN so the query is faster11:52
carloswith LEFT/RIGHT options11:53
carlosso you can select which table will be the pivot11:53
dafI thought LEFT and RIGHT are for OUTER joins only11:53
=== carlos is not sure that pivot is the right word there
carlosdaf: we have lots of those queries11:54
carlosabout msgid and translations 11:54
carlosI should look at it closer11:54
spivExcept the SELECT * FROM TableA WHERE TableA.b = Tableb.value; case is a different case to SELECT * FROM TableA, TableB WHERE TableA.b = Tableb.value;11:55
dafhumph -- even list.sort is a Forbidden value :(11:57
carlosspiv: From where do you get the Tableb for the first query?11:57
carlosdaf: zope error?11:57
dafcarlos: yeah :(11:57
spivcarlos: Nowhere -- I'm not selecting values from tableB.11:57
spivcarlos: I'm selecting rows on tableA by joining with tableB...11:58
carlosdaf: you could try to wrap it inside a browser.py method11:58
spivI think it's a dodgy shorthand, but it's a convenient one ;)11:58
dafcarlos: this is inside browser.py :)11:58
carlosspiv: hmm, so you have that concrete value for Tableb before the query, right?11:59
carlosdaf: then I don't understand why are you getting it :-)11:59
spivcarlos: Nope.11:59
dafcarlos: browser.py runs under the same security restrictions as the page templates themselves11:59
spivcarlos: I believe it's equivalent to SELECT * FROM TableA INNER JOIN TableB ON (TableA.b = TableB.value);12:00
carlosspiv: are you telling me that if I execute that query from psql it will work?12:00
spivcarlos: Absolutely:12:00

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!