=== 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 | ||
lalo | hahahahahahaha... I think I broke my gentoo in a way that's going to be interesting to repair :-P | 11:27 |
---|---|---|
kiko | you use that word? | 11:29 |
kiko | normally I say "disgraceful"! | 11:29 |
lalo | interesting is the right word here | 11:29 |
lalo | I, 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 debian | 11:30 |
lalo | you 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 minutes | 11:30 |
kiko | how broken, and how did you break it? | 11:31 |
lalo | oh, 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 together | 11:32 |
kiko | lalo, just copy the gcc-3.4 binary from somewhere else | 11:33 |
lalo | that's the plan | 11:33 |
lalo | ah | 11:51 |
lalo | as I expected, much simpler than that | 11:51 |
lalo | just had to edit a config file to point to the right version | 11:51 |
lalo | and now to compile directfb :-) | 11:52 |
lalo | funny, where is everyone? we have a meeting in a few minutes | 11:52 |
kiko | lalo, what timezone are you in?! the meeting is in 1:30h | 11:56 |
lalo | 1:30? I thought it was 11:30 | 11:57 |
lalo | and rosetta's is 45m earlier, whatever time is the launchpad one | 11:57 |
kiko | it *is* at 11:30, which is.. oh. | 11:58 |
kiko | well, I'm here (no sleep last night though :) | 11:58 |
lalo | ah, you said "in" 1:30, I read "at" 1:30 :-) we're talking the same thing | 11:59 |
=== carlos [~carlos@171.Red-83-32-196.pooles.rima-tde.net] has joined #launchpad | ||
lalo | carlos: good morning | 12:07 |
carlos | morning | 12:07 |
=== kiko is now known as kiko-afk | ||
SteveA | aren't we ten minutes into a rosetta meeting now? | 12:39 |
lalo | SteveA: just what I was thinking. Looks like something happened with daf | 12:40 |
carlos | SteveA: in 5 minutes | 12:40 |
daf | morning all | 12:40 |
carlos | daf: morning | 12:41 |
SteveA | what happened? | 12:42 |
daf | the meeting is scheduled for 10:45 | 12:43 |
daf | shall we start? | 12:44 |
lalo | ok | 12:45 |
carlos | daf: sure | 12:46 |
daf | let's start off by discussing the Alpha release | 12:46 |
daf | then what work we've done since the last meeting | 12:46 |
daf | then what we're going to do for the rest of today | 12:47 |
carlos | ok | 12:47 |
daf | I think we're more or less ready for Alpha | 12:48 |
daf | the two things I know I need to do are: | 12:48 |
daf | - disable the advanced search page, since it doesn't work | 12:49 |
daf | - send out the announcement email | 12:49 |
daf | now's the time to list anything else that needs doing | 12:49 |
carlos | daf: perhaps improve the message about the plural forms with a mailto: link | 12:50 |
carlos | so they know they should send use the information | 12:50 |
carlos | so they could translate into that language? | 12:50 |
daf | good idea | 12:50 |
daf | where should they send it to? | 12:50 |
daf | me? the Rosetta Testers list? | 12:51 |
carlos | hmmm | 12:51 |
carlos | perhaps to the list | 12:51 |
SteveA | daf: rosetta.ubuntulinux.org goes to the launchpad front page. this has links to soyuz and malone on it. | 12:51 |
carlos | so anyone could add it? | 12:51 |
SteveA | maybe the virtual hosting should be changed so that it goes to the rosetta front page only | 12:52 |
daf | SteveA: good idea | 12:52 |
SteveA | we can then use the package overrides system to put the special ubuntu front page as the default page for that rosetta | 12:52 |
daf | I think it would be a good idea to hide away Malone andd Soyuz | 12:52 |
SteveA | so, we can use an override for that | 12:52 |
daf | can you either do that, or explain to one of us how to do it? | 12:53 |
SteveA | that is, a file in override-includes that redefines the default page for the root object, and for the rosetta front page | 12:53 |
lulu | can the link to launchpad be launchpad.ubuntulinux.org, rosetta = rosetta. ubuntulinux.org etc... | 12:53 |
daf | SteveA: so it's a normal ZCML file? | 12:53 |
SteveA | what do you mean "link to launchpad", lulu ? | 12:53 |
SteveA | daf: yes, it is a normal zcml file. Its directives override those already in the system. | 12:54 |
lulu | so we have the 3 tools in launchpad.ubuntulinux.org instead of rosetta - isolate links | 12:54 |
SteveA | for the rosetta alpha, we want just rosetta to appear at rosetta.ubuntulinux.org | 12:54 |
lulu | yes agreed | 12:55 |
SteveA | I don't see any reason to have a launchpad.ubuntulinux.org at this time | 12:55 |
lulu | fine - but how can I publicly access all 3? | 12:55 |
SteveA | you can't, because we're releasing only rosetta | 12:56 |
daf | lulu: you can still acccess the development server | 12:56 |
lulu | through rosetta.ubuntulinux.org? | 12:56 |
SteveA | we're talking about a specific "override" for the rosetta.ubuntulinux.org site. This is the site that uses the "alpha" database. | 12:56 |
daf | through rosetta.warthogs.hbd.com | 12:56 |
carlos | lulu: no, old url rosetta.warthogs... | 12:56 |
SteveA | There's still rosetta.warthogs.hbd.com, that has all of launchpad on it | 12:57 |
SteveA | and does not use the "alpha" database | 12:57 |
SteveA | this is our "development server" | 12:57 |
SteveA | and, it will not have any overrides in it | 12:57 |
lulu | SteveA: currently when I type in https://rosetta.ubuntulinux.org/ I gte the 3 launchpad tools | 12:57 |
SteveA | yes, we are discussing that you should not do so, and how to fix it | 12:58 |
daf | lulu: right, and we're going to change that | 12:58 |
lulu | daf: cool - that's why I suggested that to be launchpad.ubuntulinux.org.... - no worries | 12:58 |
daf | so we have two extra tasks before the alpa | 12:59 |
daf | - put an email address in the plural form error message | 01:00 |
SteveA | is the "ubuntu linux package list" page finished? | 01:00 |
daf | - hide/remove Malone and Soyuz from the alpha server | 01:00 |
SteveA | what about the "ubuntu list of packages" front page? | 01:01 |
daf | SteveA: we don't have a separate page for it | 01:01 |
SteveA | I thought that was the plan | 01:01 |
daf | right, for the Alpha it was decided that we have a very small number of packages | 01:02 |
carlos | SteveA: we have only two packages for the alpha | 01:02 |
daf | from discussions with Mark and from the practical didfficulty of importing many packages | 01:02 |
carlos | SteveA: we are going to improve and expand that list before the beta | 01:03 |
SteveA | ok | 01:03 |
daf | the bug should have been updated with this information | 01:03 |
carlos | daf: my fault | 01:04 |
daf | carlos: mine also | 01:04 |
=== carlos adds to the todo list after the meeting | ||
daf | SteveA: bug #1915 is still marked as depending on #1907 and #1908, which are assigned to you | 01:04 |
daf | SteveA: I don't think they block the release, but it would be nice to have them closed | 01:05 |
SteveA | ok, noted | 01:05 |
daf | thanks | 01:05 |
daf | another thing: | 01:06 |
SteveA | I 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 |
SteveA | because the front page will not be visible | 01:06 |
=== cprov [~cprov@200.158.100.251] has joined #launchpad | ||
daf | - I shuold apply Carlos' DB changes to the Alpha DB | 01:06 |
daf | (sorry for typos, link is slow) | 01:07 |
carlos | daf: not yet, I'm doing more testing today | 01:07 |
daf | carlos: ok | 01:07 |
carlos | and they could be added at any time | 01:07 |
carlos | later | 01:07 |
daf | carlos: I'd like to do it before the GNOME Panel import | 01:07 |
carlos | I'm getting bad numbers today | 01:07 |
carlos | and I need to understand why, I will know it after the meeting, my laptop is working now on it | 01:08 |
daf | ok, perhaps I should make a task to test the changes on the development server | 01:08 |
carlos | that will be good | 01:08 |
daf | ok | 01:09 |
daf | anything else that needs to be done? | 01:09 |
daf | if not, let's discuss our tasks | 01:09 |
carlos | nothing from here | 01:10 |
daf | (we are scheduled to finish in 10 minutes) | 01:10 |
daf | ok | 01:10 |
daf | tasks done since yesterday's meeting? | 01:10 |
daf | lalo: care to go first? | 01:10 |
lalo | ok | 01:11 |
lalo | I 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) | ||
lalo | then I slept :-) when I woke up, I sanity-checked the fix and committed it | 01:12 |
daf | great | 01:12 |
daf | carlos? | 01:12 |
carlos | lalo: I will test it after this meeting to confirm the fix | 01:12 |
lalo | carlos: thanks | 01:12 |
carlos | daf: I was working on more testing, I have almost finished the report SteveA asked yesterday | 01:13 |
daf | great | 01:13 |
=== kiko-afk is now known as kiko-fud | ||
carlos | daf: and answer your questions to the mailing list about the indexes | 01:13 |
carlos | hmm, I think that's all | 01:13 |
daf | ok | 01:13 |
daf | I fixed #2023 last night | 01:13 |
daf | and replaced the placeholder "About Rosetta" text with something useful | 01:14 |
daf | (with input from Lu and Mark on that) | 01:14 |
daf | ok, and very quickly -- what are we going to work on today? | 01:15 |
carlos | I will work finishing the report, and will start doing more improvements to the queries | 01:16 |
carlos | and use your profile information to try to improve it more | 01:16 |
daf | I will work on completing the Alpha tasks | 01:16 |
daf | carlos: do you need information from me about how I profiled it? | 01:16 |
lalo | if no greater priorities arise, I'm going to work on 1944 (the dreaded import/export tests) | 01:16 |
carlos | daf: not now, let me read your report and I will be back to you if I see I need it | 01:17 |
daf | carlos: ok | 01:17 |
daf | lalo: that's fine by me | 01:17 |
daf | any other business? | 01:17 |
carlos | daf: I suppose I will not have enough time | 01:18 |
lalo | do you think 1944 has greater priority than 2021? | 01:18 |
carlos | but If I'm able to finish my tasks, I want to start with the scripts we were talking last week | 01:18 |
carlos | with steve | 01:18 |
daf | lalo: actually, I think it would be nice to get #2021 fixed first | 01:19 |
lalo | ok | 01:19 |
daf | carlos: ok | 01:19 |
lalo | I'm happier that way too :-) | 01:19 |
daf | great :) | 01:19 |
daf | right, I declare End Of Meeting | 01:19 |
daf | thanks, it was a good one | 01:19 |
daf | even if we ran a little over | 01:20 |
carlos | :-) | 01:20 |
=== daf goes to grab breakfast before the Launchpad meeting | ||
lalo | me too | 01:21 |
stub | Someone ping me for the meeting - I havn't got an alarm on this thing yet | 01:22 |
SteveA | can you get to http://rince.africaninspace.com/mailman/listinfo/activity ? | 01:22 |
kiko-fud | me2 | 01:24 |
stub | No, but my network has been shitting me all night | 01:27 |
SteveA | it's okay, mark screwed up a server upgrade. mail archives are off until it is sorted out. | 01:29 |
SteveA | it is 14:30 | 01:30 |
SteveA | stub, kiko-fud: time for the meeting! | 01:30 |
kiko-fud | do you know where your children are? | 01:30 |
=== kiko-fud is now known as kiko | ||
SteveA | or even what timezone they're in | 01:30 |
=== debonzi [~debonzi@200.158.100.251] has joined #launchpad | ||
kiko | behold the great debonzi has entered the room | 01:30 |
debonzi | kiko, lol | 01:31 |
kiko | soyuz is here | 01:31 |
stub | Yo | 01:31 |
SteveA | kiko, debonzi, spiv, cprov: all here? | 01:32 |
kiko | [x] yes | 01:32 |
stub | And Malone, on his lonesome :-) | 01:32 |
debonzi | [x] yes | 01:32 |
SteveA | stub, justdave: ? | 01:32 |
spiv | Yep. | 01:32 |
SteveA | we're starting a little early for justdave's timezone | 01:32 |
SteveA | I'll catch up with him later | 01:33 |
kiko | he pulled an all-nighter afaik | 01:33 |
kiko | just like me | 01:33 |
justdave | I'm here | 01:33 |
SteveA | oh, hi! | 01:33 |
SteveA | daf, carlos, lalo? | 01:33 |
carlos | SteveA: I'm here | 01:33 |
=== lalo is here | ||
SteveA | limi will be traveling back to Norway from Vienna today | 01:34 |
spiv | daf is in the middle of breakfast; he'll be here very shortly. | 01:34 |
SteveA | lulu: ? | 01:34 |
=== daf returns | ||
SteveA | let's start | 01:34 |
SteveA | soyuz | 01:34 |
SteveA | What's happened since last week? | 01:35 |
kiko | yes | 01:35 |
kiko | we've filed half a million bugs | 01:35 |
kiko | fixed about half of them | 01:35 |
cprov | kiko: aha | 01:35 |
kiko | pestered people on the mailing list about the tough issues | 01:35 |
lulu | SteveA: her :o) | 01:35 |
kiko | had rosetta and malone integration meetings | 01:35 |
lulu | here! | 01:35 |
kiko | did QA and polished the UI of bits missing | 01:35 |
SteveA | I'll be looking at the bugs you mailed me about during today | 01:36 |
kiko | started sorting out the pickles that we got some traction on | 01:36 |
SteveA | how did the integration meetings go? | 01:36 |
kiko | which are the person identifying issue and some bits of package info that were missing | 01:36 |
SteveA | what is the decision on the person identifying issue? | 01:37 |
kiko | the integration meetings went well, stub was killer and let us file bugs on portlets that we need | 01:37 |
kiko | stub is the man to answer that I suspect :) | 01:37 |
stub | I'm just easy | 01:37 |
kiko | we add a shortname/nick whatever to the database | 01:38 |
kiko | stub and soyuz agree on that, I can't remember if we are waiting for approval of the gods before hitting the database | 01:38 |
kiko | do you stub? | 01:38 |
stub | Outcome 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 |
SteveA | I think the nickname thing may have an implication on the plone websites / xml-rpc authserver | 01:39 |
stub | Yes - I think we need a Person.name - unique, lowercase | 01:39 |
SteveA | ok, so we integrate between launchpad applications at the portlet level. | 01:39 |
SteveA | malone makes portlets available to soyuz | 01:39 |
kiko | SteveA, at least between malone and soyuz. | 01:39 |
kiko | SteveA, we don't know about rosetta well because the issues are a bit different | 01:40 |
stub | SteveA: We don't have to use it for auth if we don't want to. That is a different use case for the same info | 01:40 |
kiko | stub, is there an eta for the portlets | 01:40 |
kiko | stub, yes, exactly what I was going to say | 01:40 |
stub | Two days ago | 01:40 |
SteveA | stub: 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 |
kiko | SteveA, IMO it is essential and it is silly to skimper around this issue | 01:41 |
kiko | SteveA, nobody wants to traverse on email or a number | 01:41 |
stub | SteveA: We can generate one if we want to avoid that and we don't want to ask the question | 01:41 |
kiko | so this is really the only solution. we can suggest one if we like | 01:41 |
kiko | so kiko@async.com.br -> kiko for nick | 01:42 |
SteveA | ok, so we can keep the plone stuff and xml-rpc stuff that is now deployed the same | 01:42 |
SteveA | kiko1 if kiko is taken already? | 01:42 |
cprov | I agree on automatic (safety) generation of a unique name | 01:42 |
stub | I have code lying around somewhere that can safely generate unique names from an email address. | 01:42 |
kiko | or kiko_async or kiko_x or some options but yes | 01:42 |
cprov | SteveA: whatever :) | 01:43 |
SteveA | we need to decide on this before we make the change that we depend on this nick. | 01:43 |
SteveA | let's not decide now, though | 01:43 |
stub | Oh... sorry. It is givenname/surname/email so isn't appropriate | 01:43 |
lulu | SteveA: Authentication - we're having problems with email from Zope/Plone | 01:43 |
SteveA | but, someone must take responsibility for the issue | 01:44 |
SteveA | any volunteers? | 01:44 |
SteveA | lulu: we'll talk about the website/launchpad stuff in a bit | 01:44 |
stub | I'll add the field to the table :-) | 01:44 |
kiko | SteveA, well, if it's just adding a field, it's stub | 01:44 |
kiko | SteveA, I have no idea where users are created or authenticated in this launchpad creature. | 01:44 |
kiko | does anyone? | 01:44 |
SteveA | that's ok. but if it is adding a field and a constraint, then we need to decide how we are coming up with these nicknames | 01:45 |
SteveA | the launchpad does not register users at present | 01:45 |
kiko | we can just add the constraint later, can't we? | 01:45 |
stub | The adduser script needs to do the username address validation though (and I don't know this either). | 01:45 |
SteveA | stub: will you take on getting the nickname stuff sorted out thoroughly? | 01:46 |
carlos | kiko: we have a script to create the users at rosetta/scripts/createuser.py | 01:46 |
SteveA | (hmm, maybe it should be someone who will be at the soyuz sprint) | 01:46 |
stub | kiko: It would be painful doing that. | 01:46 |
SteveA | what I'm looking for is a library function to create suitable nicks, if none is given | 01:47 |
kiko | oh. | 01:47 |
SteveA | someone needs to decide on the policy for this, as in how it works, and then write it | 01:47 |
SteveA | we'll all use the same function | 01:47 |
kiko | I suspect mark will want to have input on this? | 01:48 |
SteveA | also, who will check with mark that he is okay with the nickname thing? | 01:48 |
stub | SteveA: 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 |
SteveA | I think a message to the launchpad list would be good | 01:48 |
kiko | I can do that and pester sabdfl on irc | 01:48 |
SteveA | I don't know that this is *urgent*. so, a mail to the list should be sufficient. | 01:49 |
SteveA | thanks kiko | 01:49 |
SteveA | I think that wraps up nicknames, for now | 01:49 |
kiko | yes | 01:49 |
SteveA | do you think we should have another soyuz walkthrough this week, before the sprint? | 01:50 |
SteveA | maybe tomorrow? | 01:50 |
kiko | nah, not really. | 01:50 |
kiko | we travel saturday. | 01:50 |
SteveA | ok | 01:50 |
SteveA | so, we can have one at the start of the sprint | 01:50 |
SteveA | in person | 01:50 |
kiko | yes, that would be perfect. | 01:50 |
spiv | I think that's a better idea. | 01:50 |
SteveA | ok. are all travel arrangements to the sprint okay? | 01:51 |
kiko | [x] soyuz | 01:51 |
SteveA | any other issues? | 01:51 |
kiko | uhm, let me try and recall | 01:52 |
kiko | cprov, is there anything open? | 01:52 |
SteveA | I still need to get you a zodb | 01:52 |
kiko | yes, that's bugged on you IIRC | 01:52 |
SteveA | it is at the top of my list | 01:53 |
cprov | kiko: yep the complicated issues on person/team add action ...but I preffer to talk on sprint, I think | 01:53 |
kiko | okay. | 01:53 |
SteveA | ok, let's move on to the plone<-->launchpad sites | 01:53 |
kiko | debonzi, cprov, packaging issues perhaps? | 01:53 |
=== SteveA waits a little longs | ||
SteveA | longer | 01:53 |
cprov | I'll commit some changes today and would apreciatte SteveA and Spiv revision on that, ok ? | 01:53 |
SteveA | cprov: send an email? | 01:54 |
kiko | okay, cool. | 01:54 |
spiv | cprov: sure; email or poke me on irc. | 01:54 |
cprov | SteveA: of course | 01:54 |
SteveA | ok | 01:54 |
SteveA | ok, let's move on to the plone<-->launchpad integration | 01:54 |
SteveA | lulu: you said there is an email problem | 01:55 |
cprov | spiv: I think I need a private help after meeting (10 min, again) ? | 01:55 |
spiv | cprov: Sure. | 01:55 |
lulu | yes - Roche is not getting plone emails | 01:55 |
cprov | spiv: great | 01:55 |
SteveA | what do you mean by "plone mails" ? | 01:55 |
SteveA | mails sent out from plone? | 01:55 |
kiko | okay, I'm on standby then | 01:55 |
lulu | yes - once a user is registered, he is not getting the email | 01:55 |
lulu | saying welcome - but I did. | 01:56 |
lulu | elmo says Gentoo is set up fine | 01:56 |
SteveA | you got one to you @canonical.com address? | 01:56 |
SteveA | it is conceivable that mail to @canonical.com addresses works while other addresses do not. | 01:56 |
lulu | yes.... | 01:57 |
SteveA | do you know how the mail service on plone is configured? | 01:57 |
cprov | spiv: if we have finished here, please join #soyuz. kiko you are suposed to be there too | 01:57 |
SteveA | that is, which machine it uses to send email? | 01:57 |
SteveA | ok, let's talk about this in detail after the meeting | 01:57 |
lulu | have asked elmo to join in | 01:58 |
SteveA | is there anything else amiss with the launchpad<-->plone site? | 01:58 |
kiko | cprov, I am | 01:58 |
kiko | ? | 01:58 |
lulu | Roche couldn't test last night as a result | 01:58 |
SteveA | ok, we'll get this diagnosed properly after this meeting. anything else we need to do on the plone sites? | 01:59 |
lulu | so we have to do extensive testing today to get it up | 01:59 |
lulu | permissions are not great - but the plone workflow limits what we can do | 01:59 |
lulu | i need Limi to do some work | 02:00 |
lulu | otherwise - after testing we can assess what still needs to be done | 02:00 |
SteveA | ok. | 02:00 |
SteveA | can we move on to malone? | 02:00 |
SteveA | stub: anything new with malone since the last meeting? | 02:01 |
stub | I'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 |
SteveA | you know that andrew v. won't be working on it? | 02:01 |
stub | I now need to know about the auth stuff since the next lot of exceptions to fix are all Unauthorized errors | 02:01 |
stub | Yes - Andrew emailed me when I was in Japan | 02:02 |
SteveA | ok, why don't you and I talk about auth stuff tomorrow morning my time? | 02:02 |
elmo | hmm? is andrew no longer contracting with us? | 02:02 |
SteveA | elmo: yes | 02:02 |
stub | Your at UTC+4? Sure. | 02:02 |
=== ddaa [~david@nemesis.xlii.org] has joined #launchpad | ||
SteveA | UTC+3 | 02:03 |
stub | elmo: Possibly short gigs. He is in the unfortunate position of having a new child and work coming out of his ears :-) | 02:03 |
SteveA | I can manage 6am UTC onwards | 02:04 |
stub | SteveA: Ok. I'll look out for you online. | 02:04 |
SteveA | ok | 02:04 |
SteveA | anything else other than auth? | 02:04 |
stub | I don't think so | 02:05 |
stub | Oh - anyone got an intelligent 'select a sourcepackage' widget written yet? | 02:06 |
SteveA | let's talk tomorrow also about moving malone along the route to using it for bugtracking launchpad and then the warty team | 02:06 |
stub | Something like the typeahead textbox in Bugzilla | 02:06 |
kiko | stub, no, nothing like that at all. | 02:06 |
kiko | stub, we want a package browser (with sections) but so far nothing. | 02:07 |
SteveA | file a bug on limi | 02:07 |
stub | And sabdfl is happy with the assignee stuff I mentioned back in London, and the schema mods are in. | 02:07 |
=== stub is done | ||
SteveA | so, when will assignee be working? | 02:08 |
stub | The 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 |
SteveA | ok, let's do that tomorrow | 02:09 |
SteveA | next, rosetta | 02:09 |
stub | I want to have the malone basic functionality and the soyuz portlets done by my Monday. | 02:10 |
SteveA | great. | 02:10 |
kiko | stub, that would fit in nicely with the beginning of our sprint | 02:10 |
SteveA | do 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 |
SteveA | have you a clear idea on how the portlets will work with soyuz? | 02:11 |
stub | SteveA: The use cases on the wiki - nothing formal in Bugzilla | 02:11 |
SteveA | we can talk about portlets tomorrow too | 02:11 |
SteveA | rosetta | 02:12 |
SteveA | daf: progress of rosetta | 02:12 |
stub | SteveA: 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 |
daf | since the last meeting, we've mostly been working on improving the importer | 02:13 |
SteveA | stub: we should make absolute url work with virtual malones | 02:13 |
daf | we found some problems with it in the run up to the Alpha release | 02:13 |
stub | (erm... I mean they can only be used on a single screen - not any page you feel like) | 02:13 |
daf | we've fixed several bugs in it since then | 02:13 |
SteveA | stub: but, I also talked with people about this at the sprint | 02:13 |
SteveA | daf: what bugs remain before getting the alpha used by people? | 02:13 |
stub | SteveA: Yes - we need IAbsoluteURL functioning to do that | 02:14 |
daf | SteveA: in terms of bugs against Rosetta itself, none | 02:14 |
SteveA | in terms of issues blocking rosetta alpha | 02:14 |
daf | in terms of issues | 02:15 |
daf | #2025 -- add option to user creation script to email the new user with account details | 02:15 |
daf | we also need to make some changes to hide Soyuz and Malone on the Alpha Launchpad instance | 02:16 |
SteveA | that's mainly a virtual hosting change. can you mail elmo about it? | 02:16 |
daf | I can | 02:16 |
SteveA | ok | 02:16 |
daf | but I think we can work around it if the virtual host is not changed | 02:17 |
SteveA | who is doing the addition to the user creation script, and when? | 02:17 |
daf | I'm working on that now | 02:17 |
SteveA | when will it be done? | 02:17 |
daf | I'm estimating about 20 minutes of work | 02:17 |
SteveA | ok | 02:18 |
=== daf marks 2025 as assigned to him | ||
SteveA | anything else on rosetta? | 02:18 |
SteveA | I know there's been some work on profiling the database to add indexes | 02:18 |
daf | there's a minor change outstanding to one page | 02:18 |
daf | right | 02:18 |
SteveA | what's the minor change? | 02:19 |
carlos | daf: I could do it now, so we speed up the launch | 02:19 |
daf | adding an email address to an error message | 02:19 |
SteveA | ok | 02:19 |
daf | carlos: you're going to do that? | 02:19 |
carlos | daf: yes | 02:19 |
daf | carlos: thanks | 02:19 |
daf | indexes: | 02:19 |
daf | in the run up to the Alpha, we discovered performance problems | 02:19 |
daf | we've spent some time trying to analyze the problem | 02:20 |
daf | and we have some ideas on how to improve things | 02:20 |
SteveA | does it look like these are in the database itself, or in the launchpad application, or a mixture? | 02:20 |
daf | most of the discussion is on #1973 | 02:20 |
daf | I think that part of it is the database itself | 02:20 |
daf | and part of it is in the way the database is being used | 02:20 |
daf | so part of it is that the queries are running slowly | 02:21 |
daf | and part of it is that the queries could be improved | 02:21 |
SteveA | we could run some specialized queries that do a lot of work at once | 02:21 |
SteveA | where we need to | 02:21 |
daf | I 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 problems | 02:22 |
daf | SteveA: right, that's definitely something we should look into | 02:22 |
SteveA | UI issues on rosetta... | 02:22 |
SteveA | there's still the "development legend" at the bottom of screens | 02:22 |
SteveA | we can probably lose that with an override, but maybe it isn't still needed | 02:22 |
daf | I don't consider that a problem, but it can be remvoed | 02:22 |
lulu | and link to dashboards? | 02:23 |
daf | yes, it might actually be redundant | 02:23 |
SteveA | there are still tabs for soyuz and malone | 02:23 |
daf | lulu: we have links to the dashboards in the top right-hand corner | 02:23 |
daf | SteveA: yes, those are going to be removed | 02:23 |
SteveA | do we want a "project maintainer dashboard" for rosetta? | 02:23 |
SteveA | for the alpha | 02:23 |
SteveA | are there bugs filed on tidying up the UI in this way for the alpha? | 02:24 |
daf | no, there aren't | 02:24 |
daf | let's do that | 02:24 |
SteveA | there's site map and legal too, with no content | 02:24 |
SteveA | I suggest to add a sober explanation of what should go there, or remove them | 02:25 |
SteveA | or implement them properly | 02:25 |
daf | agreed | 02:25 |
lulu | I suggest all redundant links be reoved - site map and legal are covered in the ubuntu site | 02:26 |
lulu | removed! | 02:26 |
SteveA | when I search, a search with 1 or 2 characters gets a system error | 02:26 |
daf | https://bugzilla.warthogs.hbd.com/bugzilla/show_bug.cgi?id=2026 | 02:27 |
SteveA | ok, thanks | 02:27 |
SteveA | daf, let's you and I have a chat in a few hours, to see how things are going | 02:28 |
daf | let's | 02:28 |
lulu | SteveA: why is it conceivable for non- canonical emails not to be working? | 02:28 |
SteveA | I'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 |
carlos | should we create accounts for lulu to do also as alphatester? | 02:28 |
SteveA | we need to spend a little time carefully going over everything we need to do. | 02:29 |
daf | SteveA: you're right | 02:29 |
lulu | carlos: yes please.... | 02:29 |
SteveA | lulu: want to translate into afrikaans? | 02:29 |
carlos | and any other Canonical person? | 02:29 |
lulu | mark should be on there too | 02:29 |
carlos | ok | 02:29 |
daf | carlos: I don't want to see code like this: | 02:29 |
daf | email = RosettaEmailAddress(person=person, email=options.email, status=1) | 02:29 |
SteveA | ok, that's it | 02:30 |
carlos | daf: to simplify things I will add them to the alphatesters list | 02:30 |
daf | 1 is a constant that should be imported from the dbschema module | 02:30 |
SteveA | end of meeting? | 02:30 |
SteveA | any other business? | 02:30 |
SteveA | 5 | 02:30 |
SteveA | 4 | 02:30 |
daf | carlos: Mark already has an account | 02:30 |
SteveA | 3 | 02:30 |
SteveA | 2 | 02:30 |
carlos | SteveA: it's ok for me | 02:30 |
SteveA | 1 | 02:30 |
carlos | daf: hmmm, I'm not completely sure how to use the python schema | 02:30 |
SteveA | ok, done. Thanks for coming. we managed it in 1 hour this time | 02:30 |
spiv | We can all sit down now ;) | 02:30 |
carlos | daf: but without password | 02:30 |
daf | carlos: ok, that's a special case, I think | 02:31 |
carlos | spiv: upps, I forgot that :-P | 02:31 |
daf | carlos: perhaps we need a script to change passwords | 02:31 |
SteveA | lulu: 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 |
carlos | SteveA: should we handle the case when the password is NULL? | 02:31 |
SteveA | carlos: is it defined what the meaning of password == NULL is? | 02:32 |
carlos | SteveA: seems like rince mail is broken now | 02:32 |
stub | spiv: More like stand up! I think I've been welded to the couch for two days :-) | 02:32 |
lulu | SteveA: 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.com | 02:32 |
SteveA | carlos: I think that means it is being fixed ;-) | 02:32 |
carlos | SteveA: it's only because old sample data did not have a password | 02:32 |
carlos | all accounts created with our script will have always a password | 02:32 |
SteveA | maybe password as NULL means that there is no password that can work | 02:32 |
carlos | and there is no way to reset it to null from the UI | 02:32 |
SteveA | as in, the account it "locked" | 02:32 |
spiv | Well, we will have that for people we "import", rather than people who sign up. | 02:33 |
carlos | spiv: the script creates automatically a password | 02:33 |
carlos | and will send an email | 02:33 |
carlos | with it | 02:33 |
stub | Some 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 |
carlos | using pwgen | 02:33 |
spiv | (e.g. package maintainers for debian packages.) | 02:34 |
carlos | hmm, so we want to have a "disabled" account, ok | 02:34 |
daf | carlos: from canonical.lp.dbschema import EmailAddressStatus | 02:34 |
daf | carlos: int(EmailAddressStatus.NEW) | 02:35 |
carlos | daf: ok | 02:35 |
SteveA | justdave: please reply to my email about the top 100 bugzillas | 02:35 |
spiv | We 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 |
carlos | spiv: ok | 02:36 |
justdave | SteveA: will do | 02:36 |
carlos | SteveA: mail lists seem to be alive again | 02: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 |
carlos | daf: I will write an option to the createuser.py script to change the password so we can set it as admins | 02:37 |
carlos | lalo: Sabrina!!! | 02:37 |
carlos | :-P | 02:37 |
daf | carlos: I think I'd prefer a new script | 02:37 |
carlos | daf: ok | 02:37 |
daf | carlos: changing a password is different to creating a user | 02:37 |
daf | it might be useful to have an option to unset the password | 02:38 |
daf | effectively locking the account | 02:38 |
sabdfl | SteveA: lists back up i believe. blush | 02:38 |
carlos | daf: ok | 02:38 |
SteveA | sabdfl: works for me now, thanks | 02:42 |
SteveA | lulu: 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 |
SteveA | roche seems to be on the case. thanks to elmo to checking into it. | 02:46 |
lulu | yup - Roche is investigating now - please could you also impress on him that we HAVE to have this working today. | 02:46 |
lulu | Elmo has doen all his testing - fine our side | 02:47 |
SteveA | in 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 |
SteveA | can I get an admin account on the plone server, so I can take a look around? | 02:50 |
=== SteveA phones roche for a chat | ||
carlos | grr, 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 | ||
carlos | daf: The .po export takes also too long, perhaps we should think on some way to cache it | 03:07 |
daf | carlos: file a bug : | 03:09 |
daf | s/:/:)/ | 03:09 |
carlos | daf: I'm on it | 03:09 |
carlos | :-D | 03:09 |
SteveA | daf, carlos: I'll be turning the zodb on soon, so we can use that to cache these things. | 03:11 |
SteveA | the important thing is to work out what the cache key should be | 03:11 |
SteveA | that is, the things that, if they change, we need to re-generate the data | 03:11 |
=== SteveA goes afk for a while | ||
carlos | ok | 03:12 |
carlos | lalo: did you changed your bugzilla id? | 03:13 |
lalo | carlos: yes | 03:14 |
carlos | ok, I see it now | 03:14 |
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad | ||
carlos | daf: I sent the merge request to add the mailing information for the missing plural form data | 03:26 |
carlos | lalo: which one is the code for the "other" language you know to translate? | 03:26 |
carlos | lalo: I don't remember it, and I'm going to add its plural form information | 03:26 |
lalo | hmm | 03:26 |
daf | carlos: thanks | 03:26 |
lalo | I don't remember either :-P let me check | 03:27 |
carlos | lalo: the name is enough | 03:27 |
carlos | :-) | 03:27 |
carlos | lalo: it was "n = 0" right? | 03:27 |
lalo | here's the whole sql statement I used: update language set pluralforms = 1, pluralexpression = '0' where englishname='Lojban'; | 03:27 |
lalo | damn, it doesn't have the code :-/ | 03:28 |
lalo | jbo | 03:28 |
carlos | lalo: don't worry | 03:28 |
carlos | are you sure 0 is correct? | 03:29 |
lalo | yes | 03:29 |
carlos | perhaps n >= 0 | 03:29 |
carlos | :-) | 03:29 |
lalo | no, it's not a bool | 03:29 |
lalo | the pluralexpression is not supposed to result a bool, but an int | 03:29 |
lalo | (the index of the plural form you want) | 03:29 |
daf | lalo: but C boolean expressions evaluaate to ints | 03:29 |
lalo | yes | 03:30 |
lalo | and a lot of pluralexpressions abuse this by returning a bool when there are only 2 forms :-) | 03:30 |
carlos | lalo: the Spanish one is n !=1 | 03:30 |
lalo | carlos: as I just said :-) the correct would be something like "n != 1 ? 1 : 0" but this is silly in C | 03:31 |
carlos | hmm, we don't have the information for pt_BR, could you give me it ? | 03:31 |
carlos | lalo: ok | 03:31 |
carlos | lalo: the code is 'jbo' | 03:32 |
lalo | pt_BR is the same as Spanish although there is some controversy :-) | 03:32 |
carlos | lalo: you said it's different | 03:33 |
carlos | Spanish == to portuguese | 03:33 |
carlos | as pt | 03:33 |
lalo | the fact is that we never say either "0 foo" or "0 foos", we say "no foo" | 03:33 |
carlos | ok | 03:33 |
carlos | lalo: for Lojban. npluralforms = 1 expression = 0 | 03:34 |
carlos | lunch time, we will continue later | 03:34 |
lalo | so 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 rare | 03:34 |
lalo | carlos: (lojban) yes | 03:34 |
carlos | lalo: so, should I use the same or not for pt_BR? | 03:35 |
carlos | you 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 | ||
spiv | carlos: Have you been crossing the streams or something? You keep showing up in the PQM merge logs :) | 03:57 |
kiko | spiv, carlos is the master, he hacks on all trees. | 04:04 |
lalo | the problem seems to be that your tla doesn't think you have the patches... I ran sync-tree and it stopped appearing for me | 04:06 |
lalo | IIRC something like tla sync-tree carlos.perello@canonical.com--2004/launchpad--devel--0 | 04:06 |
=== lalo goes make mate | ||
lulu | spiv:ping | 04:43 |
spiv | lulu: pong | 04:44 |
lulu | spiv: 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. tx | 04:45 |
spiv | Ok. | 04:46 |
lulu | spiv: cheers. | 04:48 |
spiv | I haven't got it yet -- which address did you send it to? | 04:50 |
spiv | lulu: ^ | 04:51 |
carlos | spiv: I had some problems with my smtp server and some merge requests were droped, I suppose it's that | 04:53 |
lulu | spiv: my mistake - there now. | 04:54 |
spiv | carlos: Ah, right... you merged rocketfuel into your archive before waiting for merge request finished? | 04:54 |
carlos | spiv: technically, yes, I did not saw that my postfix was sending my merge requests to /dev/null until this morning | 04:55 |
spiv | lulu: quick answer: Rroche is correct. I'm mailing a full answer. | 04:59 |
SteveA | spiv: can you extend the xml-rpc api to allow changes of password? | 05:05 |
SteveA | this can be an optional arg in editUser | 05:05 |
kiko | spiv's on the launchpad today, did you see cprov? | 05:06 |
kiko | trying to catch a rockettail | 05:06 |
=== kiko is now known as kiko-fud | ||
=== dilys [daf@muse.19inch.net] has joined #launchpad | ||
spiv | SteveA: Heh, just sent mail. | 05:09 |
spiv | SteveA: We have no editUser method. | 05:09 |
spiv | I 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 |
SteveA | what about adding a changePassword(user_id, current_password, new_password) | 05:10 |
spiv | That's what I proposed in email :) | 05:11 |
spiv | But I think editUser is a little more forward-looking. | 05:11 |
lulu | guys - is it better for us to do it or for Roche to extend the API? | 05:11 |
lulu | what is the long term fix and most robust? | 05:11 |
spiv | lulu: he can't extend the API of the authserver, we have to do that. | 05:11 |
spiv | SteveA: anyway, I'll start work on the guts of it right now, then, and worry about the interface later ;) | 05:12 |
lulu | spiv: ok - let me read your mail :o) | 05:12 |
SteveA | I'm on the phone to roche | 05:12 |
SteveA | he is looking at what is needed on his end | 05:13 |
lulu | thanks guys :o) | 05:13 |
SteveA | spiv: roche can work with your api, so please make the change, and get it put on macquarie | 05:18 |
SteveA | and on the test server too | 05:18 |
spiv | Ok. | 05:18 |
SteveA | roche will be testing the change password functionality on the test server, and then deploying it | 05:21 |
SteveA | he asked when the new api would be on the test server, and I said you were expecting 1 hour | 05:21 |
spiv | Ok. | 05:22 |
SteveA | are you able to install it on macquarie, or does elmo need to do that? | 05:23 |
spiv | I can do that. | 05:24 |
spiv | I asked elmo to leave my access on there for a week or so, in case of problems :) | 05:25 |
SteveA | great | 05:25 |
dilys | Bug 2025 resolved: add option to user creation script to email the new user with account details | 05:33 |
SteveA | daf: we are using the ++vh+ stuff on rosetta.ubuntulinux.org aren't we? | 05:34 |
=== SteveA is confused by daf's request to admins | ||
daf | ok, perhaps I worded it badly | 05:34 |
daf | carlos: you are inserting tabs into things :) | 05:45 |
carlos | daf: really? | 05:45 |
carlos | daf: hmm | 05:46 |
daf | yeah, the translation template was the last one | 05:46 |
carlos | shit, I need to change the gvim mode for .pt | 05:46 |
carlos | daf: true, it's done by gvim automatically :-( | 05:46 |
carlos | I forgot it | 05:46 |
spiv | We should add style guide, complete with vimrc settings, for .pt to the wiki... | 05:47 |
carlos | daf: I have autocmd BufNewFile,BufRead *.py set tw=78 ts=4 sts=4 sw=4 expandtab for python | 05:48 |
daf | spiv: s/We should/Who will/ :) | 05:48 |
carlos | I suppose that the same with *.pt should be enough, right? | 05:48 |
daf | carlos: I have something similar | 05:48 |
daf | carlos: and I think the same for .pt, yes | 05:48 |
carlos | ok | 05:48 |
carlos | and the same for .zml | 05:49 |
daf | by the way, the rosetta-testers list has been renamed to rosetta-users | 05:49 |
carlos | zcml | 05:49 |
daf | I'm changing the references in Rosetta | 05:49 |
carlos | ok | 05:49 |
carlos | daf: then, will you fix the tab? | 05:49 |
daf | yep | 05:51 |
carlos | ok | 05:51 |
SteveA | daf: bookmarks are still enabled on the alpha server | 05:53 |
daf | bookmarks? | 05:53 |
SteveA | duh... I meant breadcrumbs | 05:53 |
daf | oh, right | 05:53 |
daf | well spotted | 05:53 |
=== carlos starts with #1973 | ||
SteveA | but I see that rosetta.ubuntulinux.org now points at rosetta | 05:54 |
daf | gosh, so it does | 05:54 |
SteveA | nothing like sending a unified diff to motivate a sysadmin :-) | 05:54 |
daf | :) | 05:54 |
daf | that's something to bear in mind | 05:55 |
=== debonzi goes to lunch (happy time :) ) | ||
daf | SteveA: ok, I think I've stripped off everything that needs to go for the alpha | 05:57 |
daf | SteveA: did I miss anything that you can see? | 05:58 |
SteveA | where should I look? | 05:58 |
SteveA | devel server, or alpha server? | 05:59 |
daf | alpha server | 06:01 |
daf | I've been making the changes locally for now | 06:01 |
daf | I've been considering the possibility of having a launchpad--rosetta-alpha--0 branch | 06:01 |
dilys | Bug 2027 resolved: Default header comments for new pofiles created with Rosetta are wrong | 06:02 |
SteveA | https://rosetta.ubuntulinux.org/rosetta/translator doesn't work | 06:02 |
SteveA | https://rosetta.ubuntulinux.org/rosetta/prefs doesn't work | 06:02 |
SteveA | I'm not logged in | 06:02 |
daf | hmm, those links are wrong | 06:02 |
SteveA | the link in the tab to "rosetta" doesn't work | 06:02 |
daf | the /rosetta shouldn't be there | 06:02 |
SteveA | the title for the "about rosetta" link shows an odd character / spaces | 06:03 |
SteveA | in its tooltip | 06:03 |
SteveA | https://rosetta.ubuntulinux.org/projects/gnome/gnome-panel doesn't work | 06:03 |
SteveA | https://rosetta.ubuntulinux.org/projects/gnome/gnome-applets works, but appears to be entirely unstyled | 06:04 |
carlos | dilys: lalo? | 06:04 |
SteveA | hmm, because the base href is wrong | 06:04 |
SteveA | href="https://rosetta.ubuntulinux.org/rosetta/projects/gnome/gnome-applets/index" | 06:04 |
lalo | carlos: hm? | 06:04 |
dilys | carlos: I'm not lalo | 06:05 |
carlos | dilys: did you fixed that bug? | 06:05 |
=== carlos is confused | ||
lalo | dilys seems to be a bot of daf's | 06:05 |
SteveA | and all manner of links are wrong | 06:06 |
SteveA | ok, there's major breakage with the virtual hosting, and I'll need to find out why that is | 06:06 |
carlos | lalo: I see it? as comming from daf's machine | 06:06 |
carlos | and I'm still confused :-D | 06:06 |
daf | SteveA: there's lots of hardcoding of "/rosetta/..." in the main template | 06:06 |
SteveA | for 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 |
lalo | which is why I suppose it's a bot :-) | 06:07 |
SteveA | unless fixing the main template will help | 06:07 |
daf | SteveA: I've made some changes -- is anything still broken? | 06:07 |
SteveA | ah... | 06:07 |
lalo | dilys: hello | 06:07 |
SteveA | I think the vhosting directive is wrong | 06:07 |
dilys | lalo: hola! | 06:07 |
carlos | daf: your boot is not utf-8 friendly :-) | 06:08 |
SteveA | I'm sure it is wrong | 06:08 |
daf | carlos: yeah, that's weird | 06:08 |
dilys | daf: donde estas? | 06:08 |
=== daf shrugs | ||
=== daf -> workrave | ||
carlos | daf: about our rosetta alpha release... I forgot to mention in the meeting that we need a bts for our alpha testers... | 06:11 |
SteveA | daf: the rosetta part needs to be inside the virtual hosting thing | 06:12 |
SteveA | http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/Zope3Book/virtualhosting.html | 06:12 |
SteveA | So, I think it should be http://localhost:9010/++vh++https:rosetta.ubuntulinux.org:443/rosetta/++/ | 06:14 |
SteveA | and not http://localhost:9010/++vh++https:rosetta.ubuntulinux.org:443/++/rosetta/ | 06:14 |
SteveA | then the base hrefs will be correct | 06:14 |
daf | ok | 06:15 |
daf | so should I revert the changes I made to the main template, or leave them? | 06:15 |
SteveA | depends what changes you made | 06:15 |
daf | and will you send a diff to the admins, or shall I? :) | 06:15 |
SteveA | there should be no hardcoded /rosetta/ | 06:15 |
sabdfl | is there a test account for rosetta.ubuntulinux.org? | 06:16 |
SteveA | you can test this on rosetta running on your machine | 06:16 |
daf | there's not only hardcoded /rosetta, there's hardcoded /soyuz and /malone also | 06:16 |
daf | SteveA: who can test what? | 06:16 |
SteveA | give rosetta a URL with the VH stuff in it, and then look at the source -- see if the base href is okay | 06:16 |
daf | ah, right | 06:16 |
daf | sabdfl: yes, there is | 06:16 |
sabdfl | test@ and test? | 06:16 |
SteveA | daf: why is there hardcoded /soyuz etc. in the main template for rosetta? | 06:17 |
sabdfl | it no work | 06:17 |
daf | sabdfl: foo.bar@canonical.com :) | 06:17 |
daf | SteveA: presumably because the person who wrote it didn't know better | 06:18 |
daf | SteveA: what's the correct solution? | 06:18 |
SteveA | but I mean, where is it linking to? | 06:18 |
SteveA | we don't want the tabs etc. in the rosetta alpha | 06:18 |
daf | we don't, and I've removed them | 06:18 |
SteveA | so, where is the hardoded soyuz ? | 06:19 |
daf | it's not there on rosetta.ul.o | 06:19 |
SteveA | then that is okay | 06:19 |
daf | right | 06:19 |
daf | what I meant was that the locations of Rosetta, Soyuz and Malone are hardcoded relative to / | 06:20 |
SteveA | what does proxypassreverse do? | 06:20 |
daf | no idea | 06:20 |
dilys | New bug 2029 for Launchpad/Rosetta: Languages with country codes are not working | 06:21 |
=== carlos leaves for a while | ||
carlos | dilys: sshh, it's a secret | 06:21 |
carlos | :-P | 06:21 |
carlos | daf: is it the mozilla boot? | 06:21 |
dilys | carlos: you shouldn't have filed a bug, then :) | 06:21 |
daf | carlos: "boot"? | 06:22 |
carlos | bot | 06:22 |
carlos | :-P | 06:22 |
daf | no, it's something I hacked up myself | 06:22 |
SteveA | daf: are you happy with checking that the VH things work on your machine? | 06:23 |
daf | SteveA: yep, about to do that | 06:23 |
daf | SteveA: no, it doesn't seem to be working | 06:25 |
SteveA | can you be more specific | 06:27 |
daf | I can, and I will :) | 06:27 |
daf | http://localhost:8085/++vh++http:localhost:8085/rosetta/++/ takes me to the Launchpad! page | 06:28 |
SteveA | ok, try it with the /rosetta/ before | 06:28 |
SteveA | as in, | 06:28 |
daf | before what? | 06:28 |
SteveA | http://localhost:8085/rosetta/++vh++http:localhost:8085/++ | 06:28 |
daf | yes, that works | 06:29 |
SteveA | how have you tested that it works? | 06:29 |
daf | I loaded it in my browser and it took me to the correct page | 06:29 |
SteveA | it goes to the rosetta front page. have you checked whether there is a base href given? | 06:29 |
daf | checking... | 06:30 |
SteveA | for example, on the rosetta alpha site, https://rosetta.ubuntulinux.org/projects/gnome/gnome-applets has a stray "rosetta" in the base href | 06:32 |
daf | where is the base href found? | 06:32 |
SteveA | in the source | 06:32 |
SteveA | just after <head> | 06:32 |
daf | no, there isn't one | 06:32 |
SteveA | https://rosetta.ubuntulinux.org/projects/gnome/gnome-applets/index looks fine | 06:33 |
SteveA | https://rosetta.ubuntulinux.org/projects/gnome/gnome-applets doesn't | 06:33 |
daf | <base href="http://localhost:8085/projects/gnome/evolution/index" /> | 06:34 |
SteveA | what was the URL ? | 06:34 |
daf | for a GET of http://localhost:8085/rosetta/++vh++http:localhost:8085/++/projects/gnome/evolution | 06:34 |
SteveA | can you try this GET: | 06:34 |
SteveA | http://localhost:8085/rosetta/++vh++http:localhost:9999/++/projects/gnome/evolution | 06:35 |
SteveA | this should give you a base with :9999 in it | 06:35 |
daf | <base href="http://localhost:9999/projects/gnome/evolution/index" /> | 06:35 |
SteveA | ok, great | 06:35 |
daf | is the trailing "index" supposed to be there? | 06:35 |
SteveA | so, you can send another diff to the admins, and this stuff should work | 06:36 |
SteveA | yes, that's meant to be there | 06:36 |
SteveA | that's the default page | 06:36 |
daf | ok | 06:36 |
daf | "signalizes"?! | 06:37 |
daf | (from the VH doc) | 06:37 |
SteveA | it is written by someone whose native language is german | 06:38 |
daf | with contributions from Marius :) | 06:39 |
SteveA | yes, marius implemented the virtual hosting, along with albert and vika iirc | 06:40 |
daf | ok, I've sent another request | 06:43 |
SteveA | spiv: 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 |
spiv | SteveA: ok. | 06:49 |
SteveA | daf: might want to ping elmo too, to let him know to expect another udiff in the mail | 06:50 |
spiv | SteveA: done. | 06:51 |
SteveA | thanks | 06:51 |
daf | SteveA: elmo *is* here, by the way :) | 06:56 |
SteveA | here is where? on this channel you mean? | 06:56 |
daf | yes | 06:57 |
SteveA | I like the bootstrapping kind of thing where suggesting to ping someone actually pings them. | 06:57 |
daf | elmo: ping? | 06:59 |
SteveA | daf: do you want rosetta.ubuntulinux.org to be linked to as a tab from the UL website? | 07:11 |
SteveA | do you want this during the alpha? | 07:11 |
daf | lulu: did you say Limi was returning today? | 07:11 |
daf | SteveA: I don't care much either way | 07: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 | |
SteveA | will 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 |
SteveA | is it clear that there are a different set of logins? | 07:12 |
SteveA | limi should be around tomorrow | 07:12 |
daf | it is a matter of policy that people are approached for testerhood | 07:12 |
ddaa | spiv: I need some help to get started with the twisted-in-pyarch problem. | 07:13 |
spiv | ddaa: Ok | 07:13 |
spiv | What can I do for you? | 07:13 |
ddaa | help clarify my ideas | 07:13 |
=== kiko-fud is now known as kiko | ||
ddaa | roughly, pyarch uses synchronous interfaces | 07:14 |
ddaa | problem has been found to occur even when the reactor is not running | 07:14 |
ddaa | although that is probably only a concern in test cases | 07:14 |
spiv | That's intriguing. That means it's not related to the signal handlers. | 07:15 |
ddaa | So, 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 |
spiv | I can't think of any other global-state influencing things Twisted does, though. | 07:15 |
SteveA | daf: ok, but consider youself someone who saw an article in LWN, or slashdot, then came to ubuntulinux.org, and sees a "rosetta" tab | 07:15 |
ddaa | spiv: that's the problem you tried to work around at Oxford. | 07:16 |
SteveA | daf: if this person clicks there, will they be given something useful, if they're not a tester? | 07:16 |
ddaa | The problem test cases did not use twisted themselves, that's why it was possible to segregate them. | 07:16 |
spiv | So, the problem here is that we don't know what part of Twisted is interfering. | 07:16 |
SteveA | if yes, then we should have a tab linking to rosetta | 07:16 |
SteveA | if no, we should not | 07:16 |
spiv | So we don't know how to test for its presence. | 07:16 |
ddaa | spiv: that's the root of the problem yes | 07:17 |
spiv | There's always the crude "if 'twisted' in sys.modules: ..." approach. | 07:17 |
ddaa | but I'm looking for a low-risk solution that I can implement before saturday evening. | 07:17 |
ddaa | twisted does magic things at module import? | 07:17 |
spiv | Nope. | 07:18 |
spiv | Well, 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 |
ddaa | So, a reasonable solution seems to test for reactor.running (real world) and some magic flag internal to pyarh (test cases) | 07:18 |
spiv | But 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 |
ddaa | I'm going to brain dump random thoughts now. Do not try to make sense of them at first. | 07:19 |
spiv | Ok :) | 07:20 |
ddaa | One problem is that the pyarch code is essentially synchronous. | 07:20 |
ddaa | So I will have to wrap the async twisted interfaces into a synchronous interface. | 07:20 |
ddaa | Yes that's evil. | 07:21 |
ddaa | Since 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 |
daf | SteveA: oh! | 07:21 |
daf | SteveA: no, there shouldn't be a Rosetta tab | 07:21 |
ddaa | Also, I need my test cases to run in a running reactor. | 07:22 |
daf | SteveA: the alpha is not going to be announced to the public | 07:22 |
ddaa | Yet they essentially have nothing async to them. | 07:22 |
ddaa | The running reactor is going to be needed for two things at least. | 07:22 |
ddaa | To 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 |
SteveA | daf: ok, then no need for links from the UL site at this time. | 07:23 |
daf | SteveA: right | 07:23 |
ddaa | Another relateh problem is the wrap-in-sync problem. | 07:24 |
=== daf will be going out within the next 30 minutes | ||
SteveA | daf: I think it would be good to send a mail to the LP list clearly pointing this out | 07:24 |
ddaa | One major idiom in pyrach is the use of iterators over tla stdout. | 07:24 |
SteveA | otherwise, the enthusiastic UL website team might link to you, or add a tab | 07:25 |
ddaa | Right now I can see two ways which might me able to do it. | 07:25 |
daf | SteveA: good idea | 07:25 |
ddaa | 1. assuming we are in a thread, and the reactor push the output in a syncqueue which is used in the iterator. | 07:25 |
ddaa | 2. manipulate the process by hand, that might be possible if processes provide a nice deffered interface | 07:26 |
spiv | 1. sounds reasonable to me. | 07:26 |
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad | ||
ddaa | 3. use reactor.iterate, but that might not be possible if the reactor is already running somewhere else. | 07:27 |
spiv | I'm not sure what you mean in 2 by "manipulate the process by hand", but it doesn't sound good :) | 07:27 |
spiv | And 3 definitely sounds wrong. | 07:27 |
spiv | I think 1 is the right approach here. | 07:27 |
spiv | You u | 07:27 |
ddaa | spiv: can you work with a process with an interface which is based only on deferreds? | 07:28 |
daf | SteveA: ok, looks like r.ul.o's vhosting is working now | 07:28 |
SteveA | daf: cool -- elmo made the change to VH. rosetta pages now look correct. | 07:28 |
spiv | ddaa: I think the answer is yes, but I'm not convinced the question makes sense ;) | 07:28 |
daf | SteveA: ok, do you think #2026 can be closed? | 07:28 |
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad [] | ||
ddaa | What I want to do barely make any sense to start with... | 07:28 |
ddaa | I am thinking about using the twisted process handling code w/o involving the reactor at all. | 07:29 |
spiv | Oh, I see. | 07:29 |
ddaa | Since the code that need to work with process is synchronous to start with. | 07:29 |
SteveA | daf: looks like all those things are done | 07:29 |
spiv | No, the twistd process handling code very much depends on the reactor. | 07:30 |
spiv | s/twistd/twisted/ | 07:30 |
=== SteveA wonders if there is a twisted.meltdown | ||
spiv | SteveA: There is an IReactorCore :) | 07:30 |
spiv | (which has a .crash method, even) | 07:30 |
ddaa | Then, what if pyarch code is invoked from the reactor thread? | 07:31 |
spiv | Well, it shouldn't be. Just like blocking socket reads shouldn't be :) | 07:31 |
ddaa | Can you think of any way that will not cause a deadlock? | 07:31 |
dilys | Bug 2026 resolved: clean up UI for Rosetta alpha | 07:32 |
spiv | I 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 |
ddaa | Because, 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 |
spiv | Well, that code is almost certainly buggy :) | 07:32 |
ddaa | It's not buggy according to the current contract, which is "pyarch does not fuck around with reactors" | 07:33 |
spiv | Right, the bug wouldn't lie in pyarch. | 07:33 |
spiv | Or in twisted... it would be in the code that is incorrectly integrating them. | 07:34 |
spiv | You can't stop people writing buggy software with your library ;) | 07:34 |
ddaa | see, 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 |
spiv | Right. So I don't see where the deadlocks are yet. | 07:35 |
ddaa | Are you familiar with importd? | 07:35 |
spiv | What makes you think deadlocks are a problem? | 07:35 |
spiv | Somewhat. | 07:35 |
ddaa | I have no specific idea. | 07:35 |
spiv | Ok, so, forget about the reactor for a moment :) | 07:35 |
ddaa | Just that currently, nothing prevents from calling pyarch from the reactor thread. | 07:36 |
ddaa | So it's almost certainly done somewhere. | 07:36 |
ddaa | Somewhere = in the canonical code | 07:36 |
spiv | That's not too hard to fix. | 07:36 |
spiv | give me a sec | 07:37 |
ddaa | Okay. Forget about reactors. I think you have a pretty clear idea of the problem, | 07:37 |
ddaa | What's your take on the problem? | 07:37 |
spiv | Ok, twisted.python.threadable.isInIOThread() will tell you if you're in the reactor's thread. | 07:38 |
ddaa | kewl | 07:38 |
spiv | And should be safe to call even if the reactor isn't running. | 07:38 |
ddaa | Okay. That's solving it. | 07:38 |
spiv | (it probably should be a method on the reactor, but oh well...) | 07:39 |
ddaa | wait a min... | 07:39 |
ddaa | gotta meditate a bit about it. .. | 07:39 |
spiv | Sure :) | 07:40 |
spiv | Unfortunately, I'll have to go in a few minutes (same time as daf). | 07:40 |
ddaa | When are you back? | 07:41 |
spiv | After dinner, we're going out to a thai restaurant. | 07:41 |
spiv | I'm not sure precisely how long it will be, sorry :( | 07:42 |
ddaa | more like 4h than 8h | 07:42 |
spiv | I hope to be sleeping 8h from now :) | 07:43 |
ddaa | as you might guess, I'm not planning to go bed before that's fixed or I am unable to think... | 07:43 |
spiv | Ah, right. | 07:43 |
ddaa | (lightbulb) | 07:45 |
ddaa | as a quick hack, I can degrade to "non-incremental" if reactor is running... | 07:46 |
ddaa | i.e. just slurps the stdout | 07:46 |
SteveA | spiv: roche has a question | 07:46 |
ddaa | then I can build on top of that later | 07:47 |
ddaa | spiv: is the reactor code reentrant? | 07:48 |
ddaa | no... that would probably not make sense... | 07:51 |
=== carlos [~carlos@204.Red-83-32-196.pooles.rima-tde.net] has joined #launchpad | ||
carlos | spiv: are you here? | 08:50 |
carlos | funny | 09:48 |
carlos | SteveA: ping? | 09:48 |
kiko | spiv, 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 | ||
SteveA | carlos: hey | 10:45 |
SteveA | I'm about to go to sleep | 10:45 |
SteveA | I read your email about authentication | 10:51 |
SteveA | I'll look into it tomorrow morning, if no-one else has tracked it down by then | 10:51 |
daf | carlos: which server are you having trouble with? | 10:53 |
daf | carlos: or is it both? | 10:54 |
carlos | SteveA: ok | 11:04 |
carlos | daf: with my local server | 11:04 |
carlos | and with warthogs one | 11:04 |
carlos | rosetta.warthogs.hbd.com | 11:05 |
carlos | SteveA: night | 11:05 |
carlos | spiv: I'm using alternateID instead of normal selectBy methods | 11:06 |
carlos | spiv: I suppose it should improve the SQLObject use, right? | 11:07 |
carlos | spiv: should I add it to the Wiki? | 11:07 |
SteveA | carlos: can you file a bug on the authentication problems you're seeing? | 11:07 |
carlos | SteveA: sure | 11:07 |
SteveA | that way, it will be plain whether I need to look into it tomorrow, and what others have found out | 11:07 |
carlos | ok | 11:08 |
spiv | carlos: Yes, please. I forgot about that feature! | 11:08 |
carlos | spiv: also, I don't see a way to "map" a INNER JOIN inside SQLObject queries | 11:08 |
carlos | spiv: do you know if it exists? | 11:09 |
daf | carlos: what query do you want to do? | 11:09 |
spiv | Because you want to return columns from multiple tables at once? | 11:09 |
spiv | ddaa: No, the reactor is definitely not re-entrant! | 11:10 |
carlos | results = RosettaPOMessageSet.select(''' | 11:11 |
carlos | pofile = %d AND | 11:11 |
carlos | primemsgid = %d | 11:11 |
carlos | ''' % (self.id, msgid.id)) | 11:11 |
carlos | that query | 11:11 |
carlos | with normal selects could be improved with INNER JOIN | 11:11 |
carlos | hmmm | 11:11 |
carlos | wait, bad example | 11:12 |
carlos | seqzero = RosettaPOMessageSet.select(''' | 11:12 |
carlos | poSet.pofile = %d AND | 11:12 |
carlos | poSet.primemsgid = potset.primemsgid AND | 11:12 |
carlos | poSet.potemplate = potset.potemplate AND | 11:12 |
carlos | potSet.pofile IS NULL AND | 11:12 |
carlos | poSet.sequence <> 0 AND | 11:12 |
carlos | potSet.sequence = 0''' % self.id, | 11:12 |
carlos | clauseTables = [ | 11:12 |
daf | grrrrrrrrr! | 11:12 |
carlos | 'POMsgSet poSet', | 11:12 |
carlos | 'POMsgSet potSet', | 11:12 |
carlos | ] ) | 11:12 |
carlos | this one is better | 11:12 |
=== daf loathes the destructive behaviour of .sort() | ||
daf | I can't wait for .sorted() | 11:13 |
carlos | spiv: it's only to improve the queries, instead of a FROM with a list of tables | 11:13 |
carlos | daf: what's the problem? | 11:13 |
daf | carlos: I have to do | 11:13 |
daf | somelist = blah.blarg() | 11:14 |
daf | somelist.sort() | 11:14 |
daf | return somelist | 11:14 |
daf | instead of: | 11:14 |
daf | return blah.blarg().sorted() | 11:14 |
daf | this is one thing Ruby has right: .sort for non-destructive sorting, .sort! for destructive sorting | 11:15 |
spiv | daf: return (lambda l=somelist: l.sort() or l)() ;) | 11:15 |
daf | spiv: :D | 11:16 |
ddaa | spiv: yeah... I was high on crack... | 11:16 |
spiv | (yes, that's unnecessarily compless :) | 11:16 |
spiv | er, complex | 11:16 |
ddaa | You know twisted is heavy crack ;-) | 11:16 |
daf | I don't think Steve would approve :) | 11:17 |
daf | what's the simpler version? | 11:17 |
spiv | return somelist.sort() or somelist | 11:17 |
daf | ewww | 11:17 |
daf | that's still smelly | 11:17 |
spiv | Well, yes :) | 11:18 |
carlos | :-P | 11:18 |
spiv | sorted = lambda l: l.sort() or l; return sorted(l) is slightly better, but no longer one statement. | 11:18 |
ddaa | somelist.sort() or return somelist | 11:18 |
spiv | ddaa: return is statement, not an operator. | 11:18 |
ddaa | right.... | 11:19 |
spiv | Oh, I get your point. Yuck :P | 11:19 |
ddaa | What about just using two statement? | 11:19 |
daf | ddaa: that's what I'm doing :) | 11:20 |
daf | ddaa: I'm just saying I don't like it :) | 11:20 |
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad | ||
daf | bah! | 11:20 |
daf | ForbiddenAttribute: ('sort', ... | 11:20 |
ddaa | daf: I'm pretty there are for python programmers with weird fetishes, like ternary operators and sort return values : | 11:21 |
ddaa | * there are clubs | 11:21 |
daf | an aversion to destrcutivity is not a weird fetish :) | 11:21 |
daf | Python does have a ternary operator -- it looks like this: [value1, value2] [condition] | 11:23 |
dilys | New bug 2030 for Launchpad/Launchpad: After authenticate, launchpad fails with a system error | 11:23 |
daf | carlos: you say running on port 8089 doesn't work? | 11:25 |
carlos | daf: it works | 11:25 |
carlos | daf: but as anonymous | 11:25 |
daf | or rather, it doesn't produce an error | 11:25 |
carlos | so you cannot debug the problem | 11:25 |
daf | hrm | 11:25 |
carlos | same problem with ++skin++Debug | 11:26 |
daf | I know why ++skin++Debug is a problem, but not the PDB | 11:26 |
carlos | daf: you can try it, rosetta.warthogs.hbd.com has the same problem | 11:26 |
carlos | hmm | 11:26 |
carlos | well, I did not check the pdb with the rosetta server because I don't see a way to test it :-) | 11:27 |
daf | of course :) | 11:27 |
carlos | but I assume that as it has the same bug, you will get the same problem | 11:27 |
carlos | :-) | 11:27 |
daf | I do get the same problem | 11:28 |
carlos | perfect, I thought I broke anything with my sqlobject changes | 11:28 |
daf | one techique I use is to switch the ports around | 11:28 |
elmo | eww, ternary operator's in python? please tell me you guys aren't using that | 11:28 |
ddaa | There is a widthdrawn pep about that. | 11:28 |
daf | elmo: not really | 11:29 |
=== ddaa [~david@nemesis.xlii.org] has joined #launchpad | ||
daf | elmo: but ['foo', 'bar'] [True] == 'bar' and ['foo', 'bar'] [False] == 'foo' | 11:29 |
daf | elmo: so you can emulate it | 11:29 |
ddaa | Guido said "as people are unable to come to an agreement about ternary operators, I'll just reject the proposal" | 11:30 |
ddaa | Or something just as smooth to the same effect. | 11:30 |
daf | I didn't like any of the proposals | 11:31 |
daf | they were all a bit ugly | 11:31 |
ddaa | daf, btw methink that's a case for using a tuple instead of a list... | 11:32 |
daf | spiv: any word on DISTINCT support in SQLObject? | 11:32 |
spiv | daf: None yet... is it a performance problem yet? | 11:33 |
daf | ddaa: yeah, a tuple would work, but is there any practical difference? | 11:33 |
daf | spiv: no, merely annoying :) | 11:33 |
ddaa | daf: 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 |
daf | need to do list(Set(Foo.select(...))) | 11:33 |
daf | ddaa: agreed | 11:34 |
spiv | carlos: Hmm, I think there's a better way to write that example without needing to change SQLObject. | 11:35 |
daf | spiv: launchpad/lib/sqlobject/dbconnection.py(510)iterSelect(): TypeError: iteration over non-sequence | 11:35 |
daf | spiv: this is the error behind #2030, I think | 11:35 |
spiv | daf: 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 |
daf | spiv: actually, I might have got the location wrong -- this traceback is confusing | 11:36 |
carlos | spiv: which one? Do you have it ? or where could I read about it? | 11:36 |
spiv | carlos: Just a sec | 11:36 |
carlos | sure | 11:37 |
spiv | carlos: RosettaPOMessageSet.select(''' | 11:37 |
spiv | POMsgSet.pofile = %d AND | 11:37 |
spiv | POMsgSet.iscomplete=TRUE AND | 11:37 |
spiv | POMsgSet.primemsgid = potset.primemsgid AND | 11:37 |
spiv | POMsgSet.potemplate = potset.potemplate AND | 11:37 |
spiv | potSet.pofile IS NULL AND | 11:37 |
spiv | potSet.sequence <> 0''' % self.id, | 11:37 |
spiv | clauseTables = [ | 11:37 |
spiv | 'POMsgSet potSet', | 11:37 |
spiv | ] ) | 11:37 |
spiv | EXPLAIN expects that to be twice as fast... I don't know if that's really the case or not :) | 11:38 |
carlos | hmm, that change will speed the query? | 11:38 |
spiv | It's also not as clear :( | 11:38 |
carlos | spiv: interesting | 11:39 |
spiv | Well, 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 |
daf | spiv: buggy? | 11:40 |
carlos | spiv: no, it looks correct | 11:41 |
carlos | but If it improves the speed... the postgres parser is really bad :-) | 11:41 |
carlos | under my point of view, of course | 11:42 |
spiv | carlos: No, it's SQLObject's fault... | 11:42 |
spiv | If I'm correct, the currently generated query is: | 11:42 |
spiv | select * 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 |
spiv | vs. | 11:42 |
spiv | select 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 |
carlos | oohh, I see | 11: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 |
carlos | spiv: I see your point | 11:44 |
spiv | I admit to being mildly concerned that the origial query returns twice as many columns! | 11:44 |
carlos | spiv: I'm looking at the logs now | 11:45 |
carlos | spiv: to check for it | 11:45 |
daf | spiv: oh, ouch | 11:45 |
spiv | carlos: 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 |
daf | spiv: can you tell we're SQL amateurs? :) | 11:45 |
spiv | I could be wrong, of course :) | 11:45 |
spiv | daf: Well, the problem here is that SQLObject provides no nice way to do this, so it's easy to get confused :( | 11:46 |
carlos | spiv: well, it's the same thing, but postgres manual says that it's faster with INNER JOIN | 11:46 |
spiv | carlos: Ooh, where does it say that? :) | 11:46 |
spiv | Now it's my turn to bitch about it's parser ;) | 11:46 |
carlos | This is the query that sqlobject generates: | 11:47 |
carlos | SELECT 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 WHERE | 11:47 |
carlos | poSet.pofile = 2 AND | 11:47 |
carlos | poSet.primemsgid = potset.primemsgid AND | 11:47 |
carlos | poSet.potemplate = potset.potemplate AND | 11:47 |
carlos | potSet.pofile IS NULL AND | 11:47 |
carlos | poSet.sequence <> 0 AND | 11:47 |
carlos | potSet.sequence = 0 | 11:47 |
carlos | spiv: so you are right we get a lot of extra rows | 11:47 |
daf | s/rows/columns/ | 11:47 |
daf | ? | 11:47 |
spiv | carlos: 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 |
carlos | I think so | 11:49 |
carlos | let me check it | 11:49 |
daf | yeah, PDB claims the error is at | 11:49 |
daf | 509 return iter(list(Iteration(self, self._connection, | 11:49 |
daf | 510 -> select, keepConnection=True))) | 11:49 |
daf | which looks vaguely familiar :) | 11:50 |
carlos | hmmm, seems like I was wrong and we only get extra columns | 11:50 |
carlos | I don't know why but I saw a way to get extra rows... but that's an offtopic now :-) | 11:51 |
carlos | spiv: http://www.postgresql.org/docs/7.4/static/tutorial-join.html | 11:51 |
carlos | spiv: a "normal" INNER JOIN is the same thing than a list of tables at FROM | 11:52 |
carlos | but you can handle it in a better way with INNER JOIN so the query is faster | 11:52 |
carlos | with LEFT/RIGHT options | 11:53 |
carlos | so you can select which table will be the pivot | 11:53 |
daf | I thought LEFT and RIGHT are for OUTER joins only | 11:53 |
=== carlos is not sure that pivot is the right word there | ||
carlos | daf: we have lots of those queries | 11:54 |
carlos | about msgid and translations | 11:54 |
carlos | I should look at it closer | 11:54 |
spiv | Except 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 |
daf | humph -- even list.sort is a Forbidden value :( | 11:57 |
carlos | spiv: From where do you get the Tableb for the first query? | 11:57 |
carlos | daf: zope error? | 11:57 |
daf | carlos: yeah :( | 11:57 |
spiv | carlos: Nowhere -- I'm not selecting values from tableB. | 11:57 |
spiv | carlos: I'm selecting rows on tableA by joining with tableB... | 11:58 |
carlos | daf: you could try to wrap it inside a browser.py method | 11:58 |
spiv | I think it's a dodgy shorthand, but it's a convenient one ;) | 11:58 |
daf | carlos: this is inside browser.py :) | 11:58 |
carlos | spiv: hmm, so you have that concrete value for Tableb before the query, right? | 11:59 |
carlos | daf: then I don't understand why are you getting it :-) | 11:59 |
spiv | carlos: Nope. | 11:59 |
daf | carlos: browser.py runs under the same security restrictions as the page templates themselves | 11:59 |
spiv | carlos: I believe it's equivalent to SELECT * FROM TableA INNER JOIN TableB ON (TableA.b = TableB.value); | 12:00 |
carlos | spiv: are you telling me that if I execute that query from psql it will work? | 12:00 |
spiv | carlos: Absolutely: | 12:00 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!