carlos | daf: how was the party? | 12:13 |
---|---|---|
daf | it was good | 12:34 |
=== limi [~limi@159.80-202-72.nextgentel.com] has joined #launchpad | ||
carlos | good night, I want to wake up early tomorrow | 01:24 |
=== ChanServ [ChanServ@services.] has joined #launchpad | ||
=== carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad | ||
daf | good morning | 10:09 |
carlos | daf: morning | 10:11 |
daf | carlos: how was your day yesterday? | 10:37 |
carlos | well, it was not as productive as I thought, the Efforts task took me more time I wanted. | 10:38 |
carlos | but I think I have now a clear image about schema/label | 10:38 |
daf | I thought we were working on beta-critical stuff? | 10:39 |
carlos | daf: that should be working for beta | 10:39 |
carlos | We talked about that | 10:39 |
carlos | and was already on my tasks list | 10:39 |
daf | oh, ok | 10:39 |
daf | I thought it was non-beta-crtitical | 10:39 |
carlos | Also, the statistics graphs are ready for limi's magic | 10:39 |
carlos | daf: Don't worry, the "big" part of my work is also needed for the People/prefered languages | 10:40 |
daf | ok | 10:40 |
carlos | daf: Lu asked for it last week, I thought it was needed for the beta.. | 10:41 |
daf | hmm, I should have posted the list I made up on the wiki | 10:42 |
carlos | daf: spoken-languages is fine for you as the name for the schema? | 10:47 |
carlos | or 'know-languages' | 10:48 |
daf | translation-languages, perhaps | 10:48 |
carlos | Hmm, the Labels should be created with the script that fills the Languages/Countries tables | 10:50 |
daf | hmm, it would be nice if the user didn't have to navigate through products to get to PO templates | 10:52 |
carlos | daf: With lots of templates is not easy to do it without a bloated page | 10:53 |
carlos | daf: we need to import data | 10:53 |
carlos | real data | 10:54 |
carlos | to see how will look like it | 10:54 |
carlos | hmmm. I just had an idea about the schemas/labels | 10:55 |
carlos | daf: I'm thinking on storing only the language code instead of the name, and then make another query to the Language table | 10:56 |
carlos | to get the english name and the native name | 10:56 |
carlos | that way the duplicated data is small | 10:56 |
daf | what's the status of the preferred languages things? | 11:15 |
daf | do you think it will be ready soon? | 11:15 |
carlos | daf: I have the sample data ready | 11:16 |
carlos | I'm starting now with the code development | 11:16 |
daf | cool | 11:16 |
daf | I suppose it's not really going to have much effect until we have authentication working | 11:16 |
carlos | Hmm, true, but we could "hardcode" one of the sample persons (you, lalo or I) | 11:17 |
carlos | and then, if we change the database, the list of languages will also change | 11:17 |
carlos | Breakfast time, see you later | 11:21 |
daf | carlos: did you get a chance to look at my changes to the export document? | 11:53 |
carlos | upps | 11:53 |
carlos | I forgot it O:-) | 11:54 |
carlos | sorry | 11:54 |
carlos | I will do it today | 11:54 |
daf | no problem | 11:54 |
SteveA | hi | 12:07 |
daf | hi Steve | 12:09 |
carlos | hi | 12:12 |
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad | ||
=== limi [~limi@159.80-202-72.nextgentel.com] has joined #launchpad | ||
SteveA | lulu: can we talk about the authentication for the websites? | 01:20 |
limi | apparently not :] | 01:43 |
SteveA | limi: hi | 01:43 |
limi | hi SteveA | 01:44 |
carlos | daf: Language preferences is working :-P | 01:44 |
daf | carlos: ooh | 01:45 |
carlos | daf: and you are the "default" until we get the login stuff in place :-P | 01:45 |
daf | heh | 01:48 |
carlos | wow, the arch commits list works again, no more garbage.... | 01:49 |
daf | yes, I think lifeless fixed it | 01:51 |
carlos | daf: My next tasks is finish the efforts code | 01:57 |
carlos | daf: Do you have anything more important for me? | 01:57 |
!dmwaters:*! Hi all, we're currently being nailed with drones, we're doing our best to get things under control | 01:58 | |
daf | there must be something more important thant that :) | 01:58 |
carlos | Could you populate the task board with pending things? | 01:59 |
daf | don't we need scripts for creating projects, products, people, etc? | 01:59 |
carlos | yes, but I think Lalo is working on it already | 02:01 |
daf | do we have a user interface for setting language preferences? | 02:01 |
daf | I see that's on the task board | 02:01 |
carlos | daf: but that should be added to the user preferences, shouldn't it? | 02:02 |
carlos | daf: where you configure your login, email, etc, etc... | 02:03 |
carlos | Do we have it already in any place? | 02:03 |
carlos | limi: Could you review https://rosetta.warthogs.hbd.com/rosetta/projects/gnome and https://rosetta.warthogs.hbd.com/rosetta/projects/gnome/evolution/? | 02:03 |
daf | carlos: yes, it should be on the preference page | 02:04 |
daf | carlos: I don't think we have one yet | 02:04 |
carlos | limi: when you have more than one language we have the same links for every language. Is that ok from the usability point of view? | 02:05 |
carlos | daf: Is it included in Steve's work? | 02:05 |
daf | carlos: I think the fact that clicking on different languages gives you the same thing is ugly/confusing | 02:05 |
daf | carlos: no | 02:06 |
=== limi looks | ||
carlos | daf: me too, that's why I'm asking limi, because I just noticied it :-( | 02:06 |
daf | SteveA has been working on the non-UI side of the auth stuff | 02:06 |
carlos | ok | 02:06 |
daf | SteveA: have you merged any of the auth stuff yet? | 02:06 |
carlos | Do we have any place where lists the things a user will be able to configure from there? | 02:06 |
carlos | I suppose that the DB schema has been updated to store the user password, right? (I don't remember any field to store it) | 02:07 |
=== ChanServ [ChanServ@services.] has joined #launchpad | ||
limi | the Translation Overview page shouldn't have the languages before you have selected a product, afaik | 02:09 |
=== limi notices that Rosetta has mutated | ||
limi | :) | 02:10 |
limi | and, "A system error occurred." ;) | 02:10 |
carlos | URL? | 02:10 |
limi | https://rosetta.warthogs.hbd.com/rosetta/projects/gnome/evolution/evolution-2.0/translate | 02:10 |
limi | you guys desperately need unit tests soon :) | 02:10 |
limi | it's going to be totally unmanagable if not | 02:10 |
daf | limi: we've just added unit tests to that page | 02:11 |
daf | limi: I've fixed that bug but haven't merged it yet | 02:11 |
carlos | limi: Then, If the project list does not know about any language... | 02:12 |
carlos | limi: should I calculate the average of all languages? | 02:13 |
carlos | That will break the statistics or we need to specify a list of translations we care | 02:14 |
carlos | because there are lots of languages that does not have any translation | 02:14 |
limi | yes, I thought this was the page where it would show the summary for all languages? | 02:14 |
carlos | hmmm | 02:15 |
carlos | sorry | 02:15 |
carlos | :-P | 02:15 |
carlos | only the summary of all languages a translator knows, right? | 02:15 |
limi | on the overview page, full summary | 02:17 |
carlos | daf: upps, You need to update your database to get working new rosetta | 02:17 |
limi | this is the thing that Mark wanted, remember? | 02:17 |
limi | with the overall project language stats | 02:17 |
daf | carlos: huh? | 02:17 |
carlos | daf: rosetta servers have my last code changes | 02:18 |
carlos | but the database does not have the needed data | 02:18 |
carlos | limi: I know | 02:18 |
limi | ok | 02:18 |
limi | :)@ | 02:18 |
carlos | but I'm focusing on the other part of the stats | 02:18 |
limi | on the overview page (is this an Effort?), the current stats make less sense | 02:19 |
carlos | limi: why? | 02:19 |
limi | because you need some aggregation anyway | 02:20 |
limi | if it should show anything, it's the summary of all the products inside the project | 02:21 |
limi | can you easily report that? | 02:21 |
carlos | per language or globally? | 02:22 |
carlos | I can do both | 02:23 |
limi | per language would be nice | 02:24 |
carlos | limi: that's what we have already at https://rosetta.warthogs.hbd.com/++skin++Debug/rosetta/projects/gnome | 02:25 |
carlos | hmm | 02:25 |
limi | ok | 02:25 |
carlos | no, sorry, is not the same | 02:25 |
carlos | but the code is the same | 02:25 |
carlos | so it's already done | 02:25 |
limi | ok | 02:25 |
=== limi probably has to rework that page a bit | ||
limi | but we have separate pages for Effort and Project now, right? | 02:26 |
carlos | not yet | 02:26 |
carlos | but we will have it soon | 02:26 |
carlos | SteveA: please ping me as soon as you are free, I need to know the status of the login/session code. thanks | 02:27 |
carlos | daf: until I get an answer from Steve, I will finish the efforts part. Ok? | 02:27 |
limi | ok | 02:28 |
limi | :) | 02:28 |
limi | nice work | 02:28 |
carlos | limi: did you saw the new statistics vars? Do you need anything else? | 02:29 |
carlos | limi: I suppose you should add a note at /rosetta/projects/gnome so the user knows that the values are related to all languages she's interested on translate | 02:32 |
limi | yes | 02:32 |
limi | I'm going to move things about a bit :) | 02:32 |
carlos | limi: ok | 02:34 |
daf | carlos: there are more important things than translation efforts | 02:35 |
daf | carlos: I think you can start writing the template for the preference page without Steve's work | 02:35 |
carlos | daf: But I don't have any idea about how will it work, where will it be hosted and if it's a rosetta specific page or launchpad one | 02:36 |
daf | ok | 02:36 |
daf | for now, we will put it at /rosetta/preferences | 02:37 |
daf | and the only preference it will have is the language preferences | 02:37 |
carlos | ok | 02:37 |
SteveA | hi carlos. I'll be merging the auth code today | 02:37 |
daf | and I think it should work more or less like the other forms we have in Rosetta | 02:38 |
carlos | SteveA: ok, please notify me it as soon as it's ready | 02:38 |
daf | you might like to look at test/test_browser.py for test cases I've added for the view classes | 02:38 |
SteveA | ok | 02:38 |
carlos | daf: ok | 02:38 |
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad | ||
limi | shhh, everybody be quiet, lulu is back O:) | 02:41 |
carlos | :-P | 02:41 |
lulu | SteveA: sorry hon - was away from my desk.... | 02:43 |
lulu | SteveA: sure... | 02:43 |
SteveA | hi | 02:43 |
lulu | hey - how was your trip back? | 02:43 |
SteveA | it was okay. I felt really tired yesterday, though. | 02:44 |
SteveA | much better today | 02:44 |
SteveA | so, I took yesterday off, as the bank holiday. | 02:45 |
lulu | good - I'm sure everyone's needed some recovery time. | 02:45 |
SteveA | websites and authentication: we have the ubuntu plone site. | 02:45 |
lulu | I also need to hat to you about the app server. James is already onto the webserver stuff. Zope and Plone are huge! :o) | 02:45 |
SteveA | we discussed having the plone site do authentication against a launchpad app server via xmlrpc (or something similar) | 02:46 |
lulu | yup | 02:46 |
lulu | McQuarie = app server and not accessing Emperor direct makes James very happy. | 02:47 |
SteveA | ok. I can arrange for the code to be written in launchpad that will do this. Who will write the code to make plone do this? | 02:47 |
SteveA | is this part of upfront's contract? | 02:47 |
lulu | No. They are purely commissioned to do installation and config. But I can ask them to quote on it, if they have the know how. | 02:48 |
SteveA | limi: what's the standard way to do pluggable auth in plone? | 02:48 |
lulu | I will need a comprehensive spec from you please. | 02:48 |
limi | any way Zope does it | 02:48 |
SteveA | I wonder what roche would recommend. | 02:49 |
SteveA | lulu: how about I mail roche, explain the overall plan, and ask him what he'd suggest? | 02:50 |
lulu | sure - I'll send you an email with his details - pls cc me on correspondence with him, | 02:50 |
SteveA | I'll cc you. I know roche already, though. | 02:51 |
lulu | SteveA: great. | 02:54 |
=== limi gets lunch | ||
daf | good idea | 03:00 |
limi | lulu: btw, could you forward me the summary we made of the theft at the hotel? my insurance company wants it. | 03:07 |
lulu | Limi: sure. | 03:08 |
lulu | limi: Jane is looking for you & also - the Squid setup for Plone file - could you check with James that it's readable and what he needs. Thanks :o) | 03:09 |
SteveA | the squid set-up for the parts that forward requests to launchpad will be a bit different. | 03:11 |
SteveA | but, we can add that to the set-up later on, after the ubuntu and canonical parts are done. | 03:11 |
limi | lulu: uhm, I've already sent the file twice, what's missing? | 03:14 |
lulu | limi: as you saw from James' email - is that what he should be expecting? I cannot read the binary. Pls check with him he has what he needs. cheers. | 03:16 |
=== justdave_ [~dave@24.247.63.44.gha.mi.chartermi.net] has joined #launchpad | ||
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad | ||
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad | ||
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad [] | ||
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad | ||
carlos | limi: ping | 05:46 |
=== limi pongs | ||
carlos | limi: I need some help | 05:47 |
carlos | with a page | 05:47 |
limi | ok | 05:47 |
carlos | it's a list of languages | 05:47 |
carlos | and the user will select the ones he/she knows about | 05:47 |
limi | ok | 05:48 |
carlos | here you have the output I get: | 05:48 |
carlos | http://gollum.pemas.net/~carlos/translator.html | 05:48 |
carlos | I don't have the .css but it's the translator's dashboard modified | 05:48 |
limi | yup | 05:49 |
limi | I have a widget for that | 05:49 |
carlos | I know it's not a good way to put that information | 05:49 |
carlos | so don't blame me for the big list :-P | 05:49 |
limi | why are all the language names in English? | 05:50 |
carlos | The code that generate that page will be at rocketfuel in some minutes | 05:50 |
carlos | limi: just testing :-) | 05:50 |
limi | ok | 05:50 |
carlos | should I change anything at browser.py to use the widget? | 05:50 |
=== carlos has no idea about widgets | ||
limi | no, I don't mean widgets in the Z3 sense ;) | 05:52 |
carlos | daf: we need a way to cache the language list, we have now 632 in the database and the webpage I have to list all them takes about 3 seconds in my laptop to query the list do some checks and render it | 05:54 |
limi | it can be cached heavily, it really doesn't change very often | 05:54 |
carlos | limi: then, Should I do anything, or just implement the form summit for that page as I have it now? | 05:54 |
limi | carlos: just put in what you have, and I will go and add the widgets | 05:55 |
carlos | limi: it's now at rocketfuel | 05:55 |
carlos | the submit is not yet at rocketfuel, I'm still working on it | 05:56 |
limi | ok | 05:56 |
daf | carlos: well, it should run much faster on the server | 05:58 |
daf | carlos: if it's still slow on the server, we'll optimise it then | 05:59 |
carlos | ok | 05:59 |
carlos | daf: could you update the server's database, rosetta is broken until it's update | 05:59 |
carlos | ? | 05:59 |
daf | ok | 05:59 |
carlos | thanks | 06:00 |
daf | one | 06:03 |
daf | done | 06:03 |
daf | (I think) | 06:03 |
carlos | daf: yes, it works now | 06:05 |
carlos | daf: hmm, I don't get this error in my computer: https://rosetta.warthogs.hbd.com/++skin++Debug/rosetta/translator | 06:06 |
daf | neither do I | 06:08 |
daf | SteveA: I'm getting a weird error | 06:09 |
daf | SteveA: I think it's because sqlos is trying to create a DatabaseException with the wrong number of parameters | 06:10 |
carlos | daf: it comes from my latest changes, do you have them? | 06:10 |
daf | no, I don't | 06:10 |
carlos | then it's normal you don't get the error in your local machine :-) | 06:10 |
SteveA | daf: can you paste it into jabber? | 06:11 |
daf | SteveA: sure | 06:11 |
daf | carlos: :) | 06:11 |
carlos | daf: How could I know if a checkbox is checked or not from the Submit method? | 06:32 |
carlos | self.request.form[checkbox_name] .checked? | 06:33 |
SteveA | this is a tough problem | 06:33 |
SteveA | no | 06:33 |
SteveA | so, all you can tell is if a checkbox is checked | 06:33 |
SteveA | you cannot tell the difference between a checkbox being unchecked, and a checkbox not being there at all | 06:34 |
carlos | hmm | 06:34 |
carlos | ok, it should not be a problem | 06:34 |
carlos | for this page in concrete | 06:34 |
SteveA | to see what you get out of a particular form, put <div tal:content="request" /> a the bottom of a page | 06:34 |
carlos | thanks | 06:34 |
SteveA | you'll see a bulleted-list output of the request | 06:34 |
carlos | ok | 06:35 |
=== daf <3 tla undo | ||
daf | or, to put it differently, | 06:39 |
=== daf tla undo | ||
=== limi switches encoding to daf-8 | ||
carlos | X-) | 06:42 |
carlos | daf: the tla undo is the only thing that keeps me to blame arch :-) | 06:43 |
daf | carlos: sorry? | 06:43 |
carlos | daf: sorry, /s/blame/speak badly about/ | 06:45 |
daf | "keeps me to" or "keeps me from"? :) | 06:46 |
carlos | from | 06:46 |
carlos | keep moving, nothing to see here... | 06:47 |
carlos | :-P | 06:47 |
daf | no worries, English idioms are hard :) | 06:48 |
daf | muy difcil | 06:50 |
carlos | daf: :-) | 06:50 |
daf | humph: | 06:52 |
daf | DatabaseException: unindexable object | 06:52 |
carlos | SteveA: How could I use different sentences like <div tal:content="view/submit" /> inside the same template?, It's a template with three forms and I want to use different methods for every form | 06:53 |
carlos | daf: URL? | 06:53 |
SteveA | carlos: there are various ways of doing this | 06:54 |
SteveA | first though, I must point out the usability pitfall: | 06:54 |
SteveA | is it obvious to someone using one part of the form that values they enter or change in the other parts of the form will be lost? | 06:54 |
SteveA | actually, you have a choice about this, if you take the approach I will describe. | 06:55 |
SteveA | so, have one form. That is, one set of <form action="+name" method="post"> ... </form> | 06:55 |
carlos | yes, it's easy to know that the other changes will be lost | 06:55 |
SteveA | inside the form, have three submit buttons with different names: | 06:56 |
SteveA | <input type="submit" name="submit1" value=" hello, button one here" /> | 06:56 |
SteveA | <input type="submit" name="submit2" value=" hello, button two here" /> | 06:56 |
SteveA | <input type="submit" name="submit3" value=" hello, button three here" /> | 06:56 |
SteveA | also, as with other forms, include a <div tal:replace="view/processForm" tal:omit-tag="" /> element, or something similar that calls "processForm()" on the view class. | 06:57 |
SteveA | then, in the processForm method, you can have an "if" statement that decides which button was pressed. | 06:58 |
SteveA | 06:58 | |
SteveA | Another method of doing this whole thing is to have three separate <form action="+name" method="post"> </form> elements. | 06:58 |
carlos | hmm, and how could I know which button was pressed? like the checkbutton? if it's pressed it will be there as a form element? | 06:59 |
SteveA | you can make the submit buttons have the magic name <input type="submit" name="handlerOne:action" value="press to submit" /> | 06:59 |
SteveA | this will cause the "handlerOne()" method on your view class to be called | 06:59 |
SteveA | when the form is submitted. | 06:59 |
SteveA | I advise against doing this, though | 06:59 |
SteveA | as it is rather magical | 07:00 |
carlos | ok, then we forget this option :-) | 07:00 |
SteveA | if you want to make the forms distinct, then have three form elements, but use different names on the submit buttons to distinguish them | 07:01 |
=== elmo [~james@83.216.141.215] has joined #launchpad | ||
SteveA | and handle them the same | 07:01 |
daf | carlos: it's something to do with my local changes, I think | 07:02 |
carlos | daf: ok | 07:02 |
daf | the last bit of Rosetta code in the trace is a .count() call | 07:02 |
carlos | SteveA: ok | 07:02 |
carlos | thanks | 07:03 |
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad [] | ||
carlos | daf: I need to get the ID for a row of the Schema table from browser.py and I don't know how could I do it without using the SQL Objects methods, is there any way to use getUtility to do it? | 07:49 |
SteveA | if you need that, it should be part of the interface you're using | 07:55 |
SteveA | that way, it is just an integer id | 07:55 |
SteveA | you don't care if it comes from the database or whatever | 07:55 |
carlos | SteveA: but I need a way to query that object | 07:58 |
carlos | with the languages it's done with getUtility(ILanguages) and I get an object that let's me iterate over all available languages | 07:59 |
SteveA | oh, okay | 08:01 |
SteveA | so, you'll need one of those for schemas, I guess | 08:01 |
carlos | ok | 08:02 |
=== carlos was not sure if there is a better way than that, create a new object only for this looks like adding unned | ||
carlos | grrr | 08:03 |
=== carlos was not sure if there is a better way than that, create a new object only for this looks like adding unnecessary complexity to the interface | ||
SteveA | you need to search for a particular schema object, right? | 08:03 |
SteveA | so, you'll need an object that gives you an ability to do that search | 08:04 |
carlos | yes | 08:04 |
carlos | ok | 08:04 |
SteveA | who wrote: from canonical.rosetta.interfaces import * ? | 08:34 |
SteveA | in sql.py | 08:35 |
SteveA | we can only use "from xxx import *" where "xxx" defines an __all__ in the module | 08:35 |
carlos | No idea | 08:37 |
=== limi is now known as limi|food | ||
daf | SteveA: ok | 08:56 |
daf | SteveA: I can't remember who wrote that | 08:56 |
daf | I might be guilty | 08:56 |
SteveA | the dependencies are now unclear | 08:56 |
SteveA | I think I'm almost ready to check in the auth stuff | 08:57 |
daf | I'll half-heartedly argue that it's not so bad in this case because interfaces.py contains (absolutely should contain) nothing but interface declarations | 08:57 |
SteveA | it obviously also contains Interface and Attribute | 08:57 |
SteveA | and perhaps other schema stuff | 08:57 |
daf | ah, right | 08:58 |
SteveA | and also any interfaces that the rosetta interfaces extend | 08:58 |
carlos | hmm | 09:17 |
carlos | funny... | 09:17 |
carlos | ProgrammingError: ERROR: column personlabel.id does not exist SELECT PersonLabel.id, PersonLabel.person, PersonLabel.label FROM PersonLabel WHERE PersonLabel.person = 14 AND PersonLabel.label = 4 LIMIT 1 | 09:17 |
carlos | The table does not have such field 'id' | 09:17 |
carlos | daf: Any idea about how could I do a select in that case? | 09:19 |
carlos | personLabel = RosettaPersonLabel.select(''' | 09:19 |
carlos | PersonLabel.person = %d AND | 09:19 |
carlos | PersonLabel.label = %d''' % | 09:19 |
carlos | (self.id, label.id))[0] | 09:19 |
daf | hmm | 09:20 |
carlos | that's what I have now, before that I had a selectBy, but It also fails | 09:20 |
daf | I think SQLObject does not like tables without IDs :) | 09:20 |
SteveA | correct | 09:21 |
carlos | funny | 09:21 |
carlos | SteveA: any suggestion? | 09:21 |
SteveA | I just merged auth into RF | 09:21 |
SteveA | but, it was a messy merge | 09:21 |
SteveA | so, I might have accidentally broken something | 09:21 |
carlos | I only need a SQLObject to add and remove records to that table nothing more | 09:21 |
SteveA | at your earliest convenience, can you try merging from RF, and see if stuff works for you? | 09:22 |
carlos | the "normal" queries are handled by a RelatedJoin | 09:22 |
daf | SteveA: according to the PQM log, your merge up contained patches doing nothing but merging down | 09:23 |
SteveA | hmm | 09:23 |
=== daf finds the commit summary page much more useful now that the log problem has been fixed | ||
SteveA | tla changes here shows nothing | 09:24 |
=== limi [~limi@159.80-202-72.nextgentel.com] has joined #launchpad | ||
daf | did you merge the correct branch? | 09:24 |
carlos | SteveA: are you sure you have your mirror updated? | 09:24 |
SteveA | new files are committed to my archive | 09:24 |
SteveA | perhaps I do not have my mirror updated | 09:25 |
daf | "tla tree-lint"? | 09:25 |
SteveA | what's the "do a mirror" command? | 09:25 |
carlos | tla push-mirror $ARCH_ARCHIVE $ARCH_CATEGORY | 09:26 |
SteveA | tla archive-mirror | 09:26 |
daf | carlos: one of the ftests is failing because you added sample data, I think | 09:26 |
carlos | hmmm | 09:26 |
carlos | daf: yes, it's possible | 09:26 |
daf | "make fullcheck" | 09:26 |
carlos | daf: the multiline && plural forms one | 09:26 |
SteveA | ok, I am mirroring | 09:27 |
SteveA | thanks carlos | 09:27 |
daf | carlos: exactly | 09:27 |
carlos | I will fix it now | 09:27 |
daf | thanks | 09:29 |
carlos | daf: I need to leave now (after fixing the test) if I want to have a chance to pass tomorrow's exam. The Language edition is more or less implemented, It lacks some error checks and fix the problem with SQLObjects and perhaps any other thing I forgot, but I'm not able to fix it now. Do you want it committed or what should I do? | 09:29 |
daf | go and revise :) | 09:31 |
daf | if you like, you could send me a changeset and I could finish it off | 09:31 |
daf | grmmm: | 09:32 |
daf | File "/home/daf/src/canonical/dists/launchpad/lib/sqlobject/dbconnection.py", line 189, in _executeRetry | 09:32 |
daf | return cursor.execute(query.encode('utf8')) | 09:32 |
daf | UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 96: ordinal not in range(128) | 09:32 |
SteveA | well, indeed | 09:32 |
SteveA | the query is not ascii nor unicode | 09:33 |
carlos | daf: ok, I will send you the patch | 09:33 |
SteveA | why that is, I do not know | 09:33 |
daf | it's in latin-1 | 09:34 |
SteveA | that is bad | 09:34 |
SteveA | strings in python are just bytes | 09:35 |
SteveA | they do not know what encoding they are in | 09:35 |
SteveA | where does the latin-1 string come from? | 09:35 |
daf | I was just observing | 09:35 |
=== daf looks around for an | ||
SteveA | for an? | 09:35 |
carlos | daf: the ftest fails because a problem in sql.py | 09:37 |
carlos | File "/home/carlos/Work/dists/launchpad/lib/canonical/rosetta/sql.py", line 385, in __getitem__ | 09:37 |
carlos | elif isinstance(key, string): | 09:37 |
carlos | NameError: global name 'string' is not defined | 09:37 |
carlos | also, I need to update the test | 09:37 |
daf | SteveA: capital A with tilde | 09:37 |
carlos | but there are other problems there | 09:37 |
SteveA | ? | 09:37 |
daf | that should be isinstance(key, str) | 09:37 |
daf | there are other ocurrences of 0xc3, but no A-tilde | 09:38 |
SteveA | there should not be an A-tilde in the source | 09:38 |
SteveA | as our source should be all in ascii | 09:38 |
daf | they are in the test data | 09:38 |
SteveA | oh | 09:38 |
SteveA | how is the test data getting into the software? | 09:38 |
daf | through the test code, I imagine | 09:39 |
daf | I'm not familiar with the import/export tests | 09:39 |
carlos | daf: the test data should have only escaped unicode chars .. | 09:39 |
daf | carlos: "escaped"? | 09:39 |
daf | it all looks like UTF-8 to me | 09:39 |
carlos | \traducci\xc3\xb3n | 09:39 |
SteveA | ok, my merge went through | 09:40 |
daf | carlos: gnome-terminal.po | 09:40 |
carlos | yes, sorry, utf-8 chars not unicode ones | 09:40 |
SteveA | apologies in advance if I broke something | 09:40 |
carlos | daf: aahh, no idea then | 09:40 |
SteveA | when strings get into the domain code, and the database code, they should be one of two things: | 09:41 |
SteveA | * python unicode objects | 09:41 |
SteveA | * python str objects that are to be treated as opaque 8-bit data | 09:41 |
SteveA | there should be no str objects meant to be treated as character strings | 09:41 |
SteveA | the code that interacts with the outside world (browser, files, database, etc.) must carefully deal with encoded strings, and convert them to unicode objects | 09:42 |
SteveA | unless we really want to preserve the data, in which case it is "data" | 09:42 |
carlos | daf: File "/home/carlos/Work/dists/launchpad/lib/canonical/rosetta/sql.py", line 397, in __getitem__ | 09:44 |
carlos | sets = RosettaPOMessageSet.select(''' | 09:44 |
carlos | NameError: global name 'msgid_obj' is not defined | 09:44 |
carlos | daf: I'm going to have dinner now, please commit all fixes when you finish and that way I will be able to get the missing data easily. Ok? | 09:45 |
daf | carlos: I've fixed that one | 09:45 |
carlos | daf: did you requested a merge? | 09:46 |
daf | I'm tring to fix the Unicode problem first | 09:46 |
carlos | ok | 09:46 |
carlos | just tell me when it's done and I will fix it tonight | 09:47 |
carlos | later | 09:47 |
daf | ah, I think it was because of a message being encoded as UTF-8 twice | 09:50 |
daf | once in canonical.rosetta.sql and again in sqlo{s,bject} | 09:51 |
daf | SteveA: I think you forgot to update the SQL test generation code when you modified canonical.rosetta.interfaces | 10:13 |
carlos | daf: Now that you mention it... I did some interfaces update and did not update it, sorry. I will add the tests tomorrow. | 11:27 |
=== carlos backs to study |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!