[12:01] <BradB> i would have thought it becomes hard to pick an alias pretty quickly though
[12:01] <BradB> "zope-interfaces"...
[12:01] <kiko> it depends on the size of your project or on the amount of subproducts you have in it
[12:03] <BradB> i've never used an alias for a bugzilla bug; it seems like overkill. in any case, it's probably safe to remove it from the bugs-index.pt for now.
[12:04] <kiko> I have, though. agreed it's not needed in the listing
[12:05] <BradB> kiko: how do you think Bugzilla compares to RT? Just curious.
[12:05] <kiko> they solve different problem sets
[12:05] <kiko> RT is obviously more visually agreeable
[12:06] <kiko> Bugzilla is a hard-core bug/trasktracker that scales 
[12:06] <BradB> is RT more an issue tracker?
[12:06] <kiko> Bugzilla's killer feature for me is review support
[12:06] <kiko> flags and attachment editing, IOW
[12:06] <kiko> yes, RT's more issue-tracker.
[12:06] <BradB> ah
[12:06] <kiko> and bugzilla scales and provides query options that matter
[12:07] <BradB> i'd like bugzilla to make me not have to think when I want to Cc, when i rarely have any idea what email address they've registered with in the BT
[12:07] <BradB> "they", i.e. the people i want to Cc on the bug
[12:07] <kiko> hum, but how do you CC: an arbitrary person? you do know we have user matching on substrings, right?
[12:08] <BradB> kiko: i dunno, how do you Cc an arbitrary person? :) i would have expected that to Just Work too, but then it gave me an error saying that it couldn't find that address when i tried to Cc someone who, apparently, wasn't reg'd with that addy.
[12:08] <kiko> you can specify portions of the person's address
[12:09] <BradB> as for user matching substrings, i still didn't know which substring to pick (and not accidentally hit someone else)
[12:09] <kiko> it's okay, you get a picker to choose from if there are collisions
[12:09] <BradB> oh, didn't know that
[12:09] <kiko> and a confirmation page if you didn't match uniquely (if that's configured)
[12:09] <kiko> err 
[12:09] <kiko> if you *did* match uniquely
[12:09] <kiko> it could be trivially extended to also match on user *name*s but it doesn't today
[12:09] <kiko> maybe on purpose
[12:10] <BradB> perhaps, perhaps
[12:10] <kiko> I think we do the best we can do *given* a large user base
[12:10] <kiko> for a reduced user base glob implemented a userpicker
[12:10] <ddaa> What is "Package" in ProjectProductSetup? The name of the corresponding Ubuntu package?
[12:10] <kiko> you can use it as well
[12:10] <lifeless> debian source package name
[12:10] <kiko> user pickers would make loads of sense for canonical bugzilla
[12:10] <kiko> but not so for ubuntu
[12:10] <kiko> BradB, make sense?
[12:10] <BradB> kiko: i want a combo box
[12:10] <lifeless> just email me & cc Mark the mapping
[12:11] <kiko> BradB, there is no such thing in HTML :)
[12:11] <ddaa> lifeless: [package]  ack
[12:11] <BradB> kiko: nah, i'm too lazy to care about if it's hard to do, i just want a cross-browser compatible combo box.
[12:11] <ddaa> lifeless: [email]  I am not putting on the wiki???

[12:11] <kiko> BradB, like we have for the package selector in b.ubuntu.c?
[12:12] <lifeless> ddaa: no.
[12:12] <ddaa> Ok
[12:12] <lifeless> the wiki page was a flop, but it shows you want info is needed.
[12:12] <BradB> kiko: i haven't seen that, but you have something that acts like a windows GUI combo box where i start typing and it shrinks the list?
[12:12] <kiko> BradB, try this:
[12:13] <kiko> https://bugzilla.ubuntu.com/show_bug.cgi?id=1235
[12:13] <kiko> it's justdave's baby
[12:13] <kiko> type into the Package box (yes it could use some visual styling)
[12:13] <kiko> BradB, however, it causes problems with page history and spiv and I well know.
[12:14] <BradB> kiko: woooooooooooo!
[12:14] <BradB> that's wild
[12:14] <BradB> yes, definitely something like that is what i meant.
[12:14] <kiko> heh
[12:14] <kiko> it's probably not difficult
[12:14] <BradB> that's nice work
[12:14] <kiko> I'd do it for a couple of DVDs :)
[12:14] <BradB> DVD bounties? :P
[12:15] <kiko> it's working for spiv, it could work for others :)
[12:15] <BradB> hehe
[12:21] <BradB> kiko: Ideally 1. Mark would pay for it, 2. it'd be a thing that can be reusable everywhere, because we have tons of use cases for it in launchpad (I'd add an actual dropdown though too, rather than waiting for me to type)
[12:22] <BradB> Malone already needs it for package and product selection
[12:22] <kiko> didn't limi design one of these for us?
[12:22] <kiko> I believe he did..
[12:22] <BradB> hm, i don't think his looked anything like that
[12:22] <BradB> i found it pretty weird to be honest (a submit button for each result? eek)
[12:23] <kiko> agreed on all counts! I just didn't have the nerve to tell. I wanted it to be *SIMPLE*.
[12:23] <BradB> hehe, yep
[12:25] <kiko> ideally we'd bug the W3C to include one in the next spec
[12:25] <kiko> mark should buy the w3c
[12:26] <BradB> that'd be wild
[12:27] <kiko> let me ask hixie
[12:27] <ddaa> kiko: that's no the way of Mark
[12:27] <BradB> kiko: hixie?
[12:28] <BradB> I'm going to email the list right now and ask Mark to buy us a combo box.
[12:28] <ddaa> Instead, you should suggest him that having half the w3c staff on board could be useful to improve our standard-compliance ;-)
[12:28] <kiko> lol
[12:29] <kiko> yes, ask mark to buy us a spec and patches to IE and Moz.
 Hixie_, how's it going? had a question for you
 has the w3c ever evaluated something like a combobox for HTML Forms?
[12:29] <BradB> I'm literally emailing the list though, not to change the w3c spec, but... :)
[12:29] <kiko> (Hixie sits in on the XForms board)
[12:29] <BradB> This is a major UI problem now that we're dogfooding.
[12:29] <kiko> http://whatwg.org/specs/web-forms/current-work/#the-datalist
[12:29] <kiko> sorry
 kiko: http://whatwg.org/specs/web-forms/current-work/#the-datalist
[12:29] <kiko> from the man himself
[12:31] <kiko> BradB, that's what you wanted right?
[12:32] <justdave> the page history issue should only affect that selector field itself now.
[12:32] <justdave> the main page history problem was fixed by reordering the element order on the page so that the dynamic listbox was the last item in the page (in the DOM) rather than being in the middle of it.
[12:33] <justdave> the trashed history only trashed the fields that occurred after it in the DOM.
[12:33] <kiko> ah.
[12:33] <BradB> kiko: from a .5 second skim, yeah, that looks like it.
[12:33] <BradB> in any case, we need something nowish.
[12:35] <kiko> yeah. and justdave's the man!
[12:36] <BradB> I'm using justdave's example in my lp@ mail
[12:36] <BradB> with the addition that it needs to let me make a selection without typing (i.e. like a true combo box)
[12:37] <justdave> it was theoretically possible to do that, the three-characters-required was to make the page load faster.
[12:37] <justdave> the index required to make it substring match on a single character made the index file a few hundred MB.
[12:38] <justdave> er, few MB actually.  It's a few hundred KB now, with a three-character index.
[12:38] <justdave> anyhow, you don't want to shove multiple MB at someone's dialup connection just so they can file a bug.
[12:39] <lifeless> yes we do :)
[12:39] <justdave> there's 3000 (or more now?) items in that listbox though.  If you only have 20 or 30 things in it, the index would be really short :)
[12:40] <justdave> My thinking on making that scale better for dialup users was the switch it to a server-side search instead of client-side... have a button to pop up a new window that they can do the search in, and feed it back to the textbox when they select one.
[12:41] <justdave> that would also give them the option of browsing the entire list IF they wanted to download the whole list.
[12:49] <BradB> justdave: i would have thought xml-rpc + dom mutation was the way to solve that
[12:52] <justdave> BradB: yes, that's what you would do in the popup window
[12:52] <justdave> when you type a couple letters, you expect results to start showing up, the way it currently works.
[12:53] <justdave> you have a minimum 2 to 3 second delay every time you hit the server to look for something, just with browser and server overhead
[12:53] <BradB> yeah
[12:53] <justdave> and longer if they're on dialup.  the delay to grab new info is confusing to the user if they didn't purposely initiate the server hit.
[12:54] <BradB> justdave: my concern is that i'm too lazy to click my mouse button to many times
[12:54] <BradB> s,to many,too many,
[12:54] <BradB> it might be worth making dialup users suffer, depending on just how much suffering it would be
[12:56] <BradB> ("suffer" by just bringing everything across the first time the page is fetched.)
[12:57] <lifeless> could you ...
[12:57] <lifeless> bring down an index of the first item from the first two letters initially.
[12:58] <lifeless> i.e. aardvark, abroken, acat
[12:58] <lifeless> etc
[12:58] <lifeless> then when they hit a, replace that with the a** index ?
[12:58] <justdave> if we do left-side match, the data necessary to download to the client is not all that bad.
[12:58] <justdave> as in, typing in the text field only matching things that start with what you've typed so far
[12:59] <justdave> the humungous amounts of data required to download only happens when we do a substring match
[12:59] <lifeless> ohh. yeah
[01:00] <justdave> javascript doesn't have a "grep" command or equivalent.
[01:00] <justdave> (not natively implemented anyway)
[01:00] <justdave> so you have to manually step through an array looking for matches... (which will take forever and a day because javascript is slow)...
[01:01] <justdave> or you create a property list with all of the possible substring combinations as keys, and an array of the matches as the value to each key.
[01:01] <justdave> which is what our hack on Bugzilla is doing right now.
[01:02] <justdave> (the arrays are tokenized and there's no whitespace in the .js file to try to minimize data transfer)
[01:32] <stub> Does anyone know if Limi has made any progress on an asynchronous selection widget?
[01:32] <kiko> stub, well, BradB and I don't really like the design we saw, but shhhh
[01:34] <stub> design can be worked on - that was only a mockup. The main trick is the javascript for the textbox and the async. queries to do matching.
[01:35] <stub> oic - you were talking about the delay incurred between hitting a letter and the results comming back... hmm...
[01:36] <stub> so it has to have that ugly search button...
[01:36] <BradB> stub!
[01:36] <stub> Greeting
[01:36] <stub> s
[01:37] <BradB> stub: can you put a new dogfood version up? also, we really need email notification to be working properly (spiv filed the bug in bugzilla)
[01:38] <BradB> we also need to get rid of the test bugs
[01:38] <stub> Fresh dogfood went up yesterday. I thought I'd turned on mail (but forgot to check it - there was a rather long and frustrating delay between configuring and actually rolling out).
[01:38] <BradB> it's turned on. perms error.
[01:38] <stub> ok
[01:38] <BradB> i landed a bunch of crap today.
[01:38] <BradB> plus one more little thing whenever pqm finishes
[01:39] <BradB> that'll fix all the bugs except the sorting problem spiv reported...i went to fix that, then i go "crap, why am i presented a list of source package releases and product releases on a bug add form?"
[01:39] <stub> As for test bugs - I think that dogfooding has found a feature we need. We need a way of deleting bugs. 
[01:40] <BradB> stub: i seem to remember asking mark about that in london, but i thought he didn't want that.
[01:40] <kiko> dodgefooding.
[01:40] <stub> lunchpod dogfood
[01:40] <BradB> kiko: does bugzilla let you simply delete bugs?
[01:41] <kiko> not really.
[01:41] <BradB> i'm not sure we want that
[01:41] <stub> Sourceforge lets you set the status of a bug to 'Deleted'. It is still there, but you generally won't search for them.
[01:41] <kiko> it does, but it doesn't work 100% and it's not really something we encourage.
[01:41] <BradB> stub: ah
[01:41] <kiko> that's the right solution IMO.
[01:41] <kiko> for any history-based bit of software
[01:41] <stub> Every single project that starts using the system will create at least one test bug, because everyone wants to confirm it actually works before telling their users to use it.
[01:42] <BradB> any kind of "delete" (even just a status) would seem so easy to be used wrong
[01:42] <BradB> "oh, it's fixed, i can delete this bug now!" and other horror stories.
[01:43] <BradB> i'm all about interfaces that are hard to use incorrectly
[01:43] <kiko> well
[01:43] <stub> I would like to develop a tool rather than a bureaucracy. I think a way of hiding test bugs and such would be useful.
[01:43] <BradB> "Closed" might be enough for these extremely rare cases.
[01:43] <kiko> bugzilla *does* let you do it. :)
[01:44] <stub> I really don't want a googlebomber to start submitting malone bugs to increase page rankings of some porn site ;)
[01:44] <BradB> ah yeah, hm
[01:44] <stub> (oh... no hyperlinks so that isn't a problem)
[01:45] <BradB> i think plone's solved that with "reject"
[01:45] <stub> (unless we parse the text and turn URLs into hyperlinks ala roundup, in which case it is a problem)
[01:48] <stub> My grand plan for allowing people to merge code into the dogfood branch to allow trivial rollout has failed btw, mainly due to our central archive being managed by a lobotomized monkey (PQM... not lifeless...). I'll need to talk to lifeless to see if I can redesign the process. At the moment it is all working the way I hoped except it is stuck in my personal archive so nobody else can play.
[01:49] <BradB> arch-submit-merge "my evil changes" $dogfood?
[01:50] <stub> Yes - but without the arch loops that would cause (that was my initial attempt, which jblack explained wouldn't work).
[01:50] <BradB> the most critical thing for the DF right now is email perms, because it prevents anything from being done in malone
[01:51] <stub> So that just involves changing the queue directory right? I remember that one now...
[01:51] <BradB> yehh
[01:54] <stub> ok - just fixed that. I'll do another push to get yesterdays code up.
[01:58] <BradB> thanks
[02:06] <kiko> BradB|afk, please give salgado some attention tomorrow, can you?
[02:07] <kiko> he's wanting to show you a fixed up sample data set that mark has commissioned, but it needs testing by a malone-expert; daf, if you could do so for rosetta as well, we'd appreciate it
[02:08] <daf> hmm?
[02:09] <daf> kiko: what needs doing?
[02:10] <kiko> daf, basically, just test the new sampledata package he's produced and help him into deciding what to do with the original files we have (which are rather broken AFAWCT)
[02:11] <BradB|afk> kiko: what does he want to know, if it'll break malone?
[02:12] <BradB|afk> i hope so, because I've already got python code figuring that out for me
[02:12] <kiko> that's right.
[02:12] <kiko> and then he wants someone to replace the current files by what we have :)
[02:13] <BradB|afk> i don't think it's feasible for it to be significant. tests depend on the test data.
[02:14] <BradB|afk> but other than that, if make check passes, he's good to go as far as malone's concerned.
[02:15] <kiko> okidok
[02:15] <kiko> time for me to run, thanks guys
[02:15] <kiko> adieu
[03:49] <justdave> the common (and supported) way of removing test bugs on Bugzilla is to create a "Test Product" which is set up as restricted so that only the admin can see it.
[03:49] <justdave> then just move all of the test bugs into that product.
[04:46] <stub> Mmm... we don't want to have to do the gardening ourselves though, since there will be way too may projects for us to look after.
[10:56] <Kinnison> Morning
[11:52] <bob2> lifeless: and I'm not sure why it's whining that there are no cmmits
[11:52] <bob2> when there areally are
[11:53] <lifeless> buildbot doesn't look at commits, ignore that.
[11:53] <lifeless> ^our
[11:53] <bob2> so what is it syncing?
[12:38] <lifeless> commits.
[12:39] <lifeless> the UI thing that says 'no commits' isd what you should ignore
[01:01] <Kinnison> y'know; one thing that I dislike about test-driven-development is that seeing a 100% pass rate no longer fills me with joy
[02:56] <Kinnison> time for me to head off
[03:40] <BradB> daf: ping
[03:40] <BradB> salgado: ping
[03:41] <salgado> BradB: pong
[03:41] <BradB> salgado: did kiko-afk pass on the message to you about how to know if your sample data will break malone?
[03:42] <salgado> BradB: no
[03:42] <BradB> "make check" :)
[03:43] <BradB> salgado: if it breaks any tests, the sample data should be adjusted to not break any tests, unless there's an exceedingly good reason for it to warrant me spending the time to go through and fix all the tests (i.e. the malone forcefield)
[03:43] <BradB> salgado: if "make check" passes, you might not have broken soyuz and rosetta, but you almost certainly didn't break malone.
[03:45] <salgado> BradB: ok, thanks.
[04:39] <BradB> spiv: ping
[04:40] <spiv> pong.
[04:41] <BradB> spiv: we probably want the submitter of a bug to be automatically subscribed to notifications eh?
[04:41] <spiv> Uh, yeah :)
[04:41] <spiv> I assumed that was already the cae :)
[04:41] <BradB> i'll report that and fix it today
[04:41] <spiv> So I guess that's a "yes" :)
[04:41] <BradB> nope...you didn't get notifications when you reported your bugs, right?
[04:42] <spiv> I did, actually.
[04:43] <BradB> which bug #?
[04:43] <spiv> Hmm, the notification emails don't include:
[04:43] <spiv>  - a bug number
[04:43] <spiv>  - or a url
[04:43] <spiv> :)
[04:43] <spiv> 12 and 13, which I added today.
[04:43] <BradB> Ah yeah...I hacked the actual content of the messages in pretty au hazard. Now that it all works though, I can fine-tune what it tells you about the bug, or what's changed WRT to the bug.
[04:44] <spiv> Should I file bugs about that, or will you take care of it? :)
[04:45] <BradB> i'm doing it...just looking at how you're getting notifications right now
[04:45] <BradB> oh, it's because i special-cased adds
[04:45] <spiv> Heh.
[04:46] <BradB> i'm also still not clear on how to "resolve" a bug, hmph.
[04:46] <BradB> Bug title has to be widened on the add form too.
[04:46] <BradB> woo!
[04:48] <BradB> debonzi: ping
[04:49] <BradB> er, hm...i'm just wondering if it's worth creating products for m, s, r, and l, instead of filing bugs against "source packages" m, s, r and l.
[04:49] <BradB> calling the lp apps source packages is dirty
[04:54] <debonzi> BradB, pong
[04:55] <daf> BradB: pong
[05:00] <BradB> debonzi: n/m for the moment...i was going to ask you to create products for m, r, s and l (instead of what SteveA had said previously that they'd be treated as "unreleased packages"), but maybe we can wait on that for the moment.
[05:00] <BradB> daf: is dilys getting malone email?
[05:01] <daf> I got one today
[05:01] <BradB> you should have several more now
[05:01] <daf> From: noreply@bbnet.ca
[05:01] <BradB> yeah
[05:01] <debonzi> BradB, ok
[05:01] <daf> Subject: Comment on "What is an "Owner" of a bug?"
[05:01] <BradB> oh crap, yeah the bug adding notification really sucks
[05:02] <daf> I only see that one
[05:02] <BradB> it special cases the owner, and *only* notifies the owner, in fact.
[05:02] <daf> ah, I see
[05:05] <BradB> elmo: do we have any domains with the word "launchpad" in them?
[05:05] <elmo> BradB: launchpad.ubuntu.com
[05:05] <BradB> i thought we had thelaunchpad.org, but unless i'm reading dig output incorrectly, i guess we don't
[05:05] <BradB> elmo: o
[05:05] <BradB> er, ok i mean
[05:06] <elmo> BradB: we might have a tld with launchpad in it, but I don't know what it is, Mark would tho
[05:23] <carlos> daf: my jabber client does not work at the moment
[05:23] <carlos> BradB: any chance to get imported our current bugzilla bugs into malone?
[05:25] <BradB> carlos: it could be done. sabdfl would have to decide if it's worth the money.
[05:26] <BradB> (i.e. nothing exists currently to do it; we'd have to write an importer)
[05:27] <carlos> so we are going to throw to the trash current bugs at bugzilla.ubuntu.com when we move to malone :-?
[05:27] <BradB> carlos: what you're suggesting is that it's probably worth the money. mark'll have to confirm that.
[05:28] <daf> carlos: ah
[05:28] <daf> carlos: Did we agree on update makeTranslationSighting so it accepts a list of translations instead of doing several calls with the pluralform number?
[05:28] <daf> carlos: it's not in your mail
[05:28] <daf> dgh: I think making it take a list would make it more difficult to update only one translation
[05:29] <daf> (paste from Jabber)
[05:29] <carlos> yes, I saw that, it's the last thing you saw?
[05:29] <carlos> :-(
[05:29] <carlos> "bad, bad server, no donut for you"
[05:29] <carlos> :-P
[05:30] <daf> yes, that's the end
[05:33] <carlos> 17:16  <carlos>   hmm, I'm having problems to figure
[05:33] <carlos> 17:16 <carlos> how to mark a messageset as fuzzy when importing a pofile
[05:33] <carlos> 17:16 <carlos> inside that method the way it's done now
[05:33] <carlos> 17:17 <carlos> the only option will be to do it explicity
[05:33] <carlos> 17:17 <carlos> instead of implicit in that method 
[05:33] <carlos> that's what I wrote
[05:33] <daf> hmm
[05:34] <carlos> It's not a bad thing
[05:34] <carlos> with the new model we are doing now
[05:34] <daf> true
[05:34] <carlos> ok, so I will do it that way
[05:35] <daf> well, the flag should either be set when the message set is created, or have a default and be updated later
[05:35] <carlos> daf: :-?
[05:35] <carlos> are you talking about import time?
[05:35] <carlos> and fuzzy or in general?
[05:36] <daf> I'm not sure, what do you think?
[05:36] <daf> :)
[05:37] <carlos> you are not sure about what are you talking about?
[05:37] <carlos> X-)
[05:37] <daf> lots of people do it, they just don't usually admit it :)
[05:38] <carlos> ok
[05:38] <carlos> on import time, when we create a msgset, we could know already if that msgset should be marked as fuzzy or not
[05:39] <carlos> so we could set it when it's created
[05:39] <daf> how do we create a message set at import time?
[05:40] <carlos>  pomsgset = self.pofile.createMessageSetFromMessageSet(potmsgset)
[05:41] <carlos> there are some defaults there, it's easy to fix them
[05:41] <daf> ok, cool
[05:42] <daf> well, a new messageset should have iscomplete = FALSE and fuzzy = TRUE to begin with, right?
[05:42] <daf> actually, perhaps fuzzy should be FALSE
[05:42] <daf> we won't export it if it's not complete
[05:42] <daf> I don't think the translator should have to explicitly mark things as not fuzzy
[05:42] <carlos> then, from Rosetta UI, we also know if the msgset is fuzzy or not so we could do the same approach
[05:42] <carlos> hmmm
[05:43] <carlos> I don't follow you
[05:43] <spiv> BradB: Hmm, the forgotten password page is broken on the dogfood server...
[05:43] <spiv> BradB: I wonder if that's the same issue as the live plone system?
[05:43] <daf> ok, let's say we have a translator translating GNU Hello into Spanish
[05:43] <daf> and it hasn't been translated into Spanish before
[05:44] <daf> he goes to the translation page
[05:44] <daf> types in a few translations, and hits Submit
[05:44] <carlos> ok
[05:44] <daf> then, a new PO file is created
[05:44] <daf> and createMessageSetFromMessageSet is called for each of the message sets he submitted translations for
[05:45] <daf> if those new message sets are fuzzy by default, he's going to have to explicitly set each translation he makes non-fuzzy for them to be used
[05:45] <daf> do you see my point?
[05:46] <BradB> spiv: maybe try the live server and see if it works
[05:46] <carlos> well, I don't think they should be set fuzzy by default
[05:46] <daf> ok, neither do I :)
[05:46] <carlos> I think I'm not talking clear here :-)
[05:46] <BradB> spiv: of course, resetting it on the live server won't mean you can get into dogfood, but still, just to see...
[05:46] <daf> carlos: maybe :)
[05:46] <spiv> BradB: What do you mean by the live server?
[05:47] <BradB> ubuntulinux.org
[05:47] <carlos> the method does not accepts if a new msgset is or not fuzzy, I was talking about adding that option
[05:47] <BradB>  /forgottenpassword, i think
[05:47] <spiv> BradB: We know that  one's broken, remember the issue form yesterday?
[05:47] <daf> BradB: Malone emails don't seem to contain bug numbers
[05:47] <spiv> s/form/from
[05:47] <carlos> we know if it should be fuzzy or not when we create it
[05:47] <BradB> spiv: we know it is with the email address he reported, yeah. i didn't test with any other.
[05:47] <daf> carlos: how do we know?
[05:47] <spiv> BradB: I tested it with my own :)
[05:48] <BradB> spiv: then it's unsurprising that it wouldn't work on dogfood.
[05:48] <BradB> daf: that's reported as a bug.
[05:48] <spiv> Ok, so the dogfood breakage isn't a known issue, but probably the same as the live breakage.
[05:49] <carlos> daf: because we have already parsed that msgset (when importing from a pofile) and from rosetta we also know if we have all needed translations
[05:49] <BradB> spiv: that's my hunch
[05:49] <spiv> So if we fix the dogfood breakage, then all we need to do is find this mysterious live launchpad and roll out the fix there :)
[05:49] <daf> BradB: groovy -- so if, I have a bug number, it's trivial to construct a link to that bug, right?
[05:49] <BradB> spiv: not live launchpad, ubuntulinux.org
[05:50] <BradB> daf: yeah
[05:50] <spiv> BradB: Well, yeah, but where is it's forgotten password page coming from?
[05:50] <spiv> BradB: It's not plone, from what you say.
[05:50] <daf> carlos: the user interface code shouldn't have to decide whether a message is complete or not
[05:50] <BradB> spiv: er, yeah, no idea there
[05:50] <daf> carlos: I think the DB code should do that work
[05:50] <spiv> BradB: Hence "mysterious live launchpad" :)
[05:51] <BradB> yes, i know what you mean now :P
[05:51] <carlos> daf: ok, then, how?
[05:51] <spiv> Ok, ta.
[05:51] <spiv> debonzi: ping?
[05:51] <debonzi> spiv, pong
[05:51] <BradB> spiv: you can reset it in the db manually though
[05:51] <BradB> spiv: can you sudo to launchpad on mawson?
[05:51] <carlos> daf: If we call several times to the makeTranslationSighting it's too difficult to track all translations
[05:52] <spiv> debonzi: do you know why the forgotten password page on dogfood is broken?
[05:52] <BradB> spiv: er, wait, you didn't forget your password anyway though, right?
[05:52] <daf> carlos: if (len(self.translationSightings()) == self.pluralForms): self.iscomplete = True
[05:52] <daf> carlos: ?
[05:52] <BradB> because you've been submitting bugs...
[05:52] <spiv> BradB: I've forgotten andrew@canonical.com...
[05:52] <spiv> BradB: But I remember andrew+test@canonical.com :)
[05:52] <BradB> hehe
[05:52] <debonzi> spiv, no idea.. Im not working on it since the sprint
[05:53] <spiv> BradB: You win points for observation, though :)
[05:53] <BradB> heh
[05:53] <debonzi> spiv, but I can check if you want
[05:54] <spiv> debonzi: that'd be good, I'm getting ForbiddenAttribute: ('getPersonFromDatabase', <canonical.auth.AuthApplication object at 0x46504f8c>)
[05:54] <BradB> spiv: there's already a bugzilla bug where i clarified that
[05:54] <carlos> daf: ok, I get the idea
[05:54] <BradB> spiv: (that steve's the one to bug, and that i spoke to debonzi about it)
[05:54] <BradB> i guess you're not Cc'd on it, perhaps
[05:54] <spiv> BradB: Yeah, I saw.
[05:54] <daf> carlos: it makes sense?
[05:54] <carlos> daf: but what about the fuzzy flag?
[05:55] <daf> carlos: yeah, the fuzzy flag must be explicit, I think
[05:55] <carlos> daf: if I have four plural forms and I put there only three
[05:55] <carlos> we agree that the translator will set/unset it explicit
[05:55] <spiv> BradB: But if we fix it for dogfood, hopefully it'll be trivial for Steve to fix the live one when he returns :)
[05:55] <daf> I mean explicit in the call to the makeMessageSet...
[05:55] <carlos> but if they don't give us enough pluralforms
[05:55] <carlos> ok
[05:56] <carlos> so that will be set from the UI code
[05:56] <daf> I've changed my mind about the fuzzy flag
[05:56] <daf> I think fuzziness and completeness should be orthogonal in the database, but related on export
[05:56] <carlos> :-?
[05:57] <carlos> could you then give me a propossal?
[05:57] <BradB> oh yeah, ok, cool, useful debugging output.
[05:57] <carlos> :-)
[05:57] <daf> carlos: sure :)
[05:57] <daf> carlos: ok, so I think a translator should be able to mark a message set non-fuzzy even if it is not complete
[05:57] <daf> carlos: but if a message set is not complete, it should be fuzzy on export
[05:58] <daf> carlos: this method means we don't have to set fuzzy flags on import
[05:58] <carlos> ok
[05:58] <daf> how does it sound?
[05:58] <carlos> It's ok for me, I don't have a preference about all this as soon as it's consistent
[05:58] <carlos> it's another approach and I see it as valid as the previous one
[05:59] <daf> ok, sorry for being slow to get this decided
[05:59] <debonzi> spiv, seems to me that IPasswordResets is not right
[05:59] <daf> did I answer your question?
[05:59] <carlos> let me think about it looking for "problems"
[05:59] <daf> ok, I think maybe I need a bit more sleep
[06:00] <debonzi> spiv, ops.. wait
[06:00] <carlos> so when we import a po file, if we have all plural forms, iscomplete = TRUE if it's fuzzy or it lacks a plural form iscomplete = FALSE
[06:01] <carlos> fuzzy = TRUE only if the msgset is fuzzy in the pofile
[06:01] <daf> iscomplete = TRUE if we have all translations
[06:01] <daf> fuzzy = TRUE if it has the fuzzy flag
[06:02] <debonzi> spiv, yes.. but it is in IAuthApplication .. it does not define getPersonFromDatabase
[06:02] <daf> that's all
[06:02] <daf> on export: fuzzy = ((fuzzy = TRUE) or (iscomplete = FALSE))
[06:02] <carlos> from the website, fuzzy as the translator sets it and iscomplete= TRUE only if we have all pluralforms
[06:02] <carlos> ok
[06:02] <daf> yes
[06:02] <carlos> I think we will not have any hard problem with this model
[06:03] <daf> yeah, I think it's slightly easier than the previous revision
[06:03] <spiv> debonzi: That would explain it :)
[06:03] <carlos> yes
[06:03] <carlos> we fix .po files we will export
[06:03] <carlos> and don't touch .po files we import
[06:04] <daf> yep
[06:04] <daf> it's nice because it meets "be liberal in what you accept and careful in what you generate"
[06:04] <debonzi> spiv, also, EmailAddress is used inside auth/__init__.py but is not imported
[06:05] <spiv> debonzi: Heh.  Badly broken :)
[06:06] <carlos> daf: true
[06:06] <debonzi> spiv, and there are some more little thinks :) do you want me to fix it?
[06:07] <debonzi> s/thinks/things
[06:07] <spiv> debonzi: Yes please :)
[06:07] <debonzi> spiv, right
[06:20] <salgado> BradB: ping?
[06:22] <debonzi> spiv, fixed.. Ill merge it into rocketfuel
[06:25] <spiv> debonzi: Great :)
[06:25] <spiv> debonzi: Thank you
[06:25] <BradB> salgado: pong
[06:26] <debonzi> spiv, no problem :)
[06:26] <salgado> BradB: did you removed pkgurgency and binaries from ISourcePackageRelease?
[06:28] <BradB> salgado: Yep, as mentioned yesterday I fixed ISourcePackageRelease to what it used to be, so that it does what it's expected to do (i.e. be an ISourcePackageRelease.)
[06:28] <BradB> salgado: You'll need to create a new interface for the view.
[06:29] <BradB> s/be an ISourcePackageRelease/be a schema for a source package release/
[06:30] <salgado> BradB: but pkgurgency and binaries already was in ISourcePackageRelease, they're not part of our view
[06:40] <BradB> salgado: I don't get it, why would they be schema attributes?
[06:40] <BradB> there's already "urgency", which surely must be the same as pkgurgency, and if not, one of them needs renaming
[06:42] <salgado> BradB: pkgurgency is a property to translate urgency using dbschema
[06:43] <BradB> salgado: I'm not sure if that's a common way to handle that, but I don't think we should do that. Schemas are meant to describe what kind of data we want to store.
[06:44] <BradB> it turns out that those dbschema vocabs are just more trouble than they're worth, I think
[06:45] <BradB> if that stuff were stored in tables, life would be easier (because we could simple do dot access on the relevant sqlobject properties to get the title, instead of BugStatusVocabulary.items[foo.bar] .title, etc.)
[06:45] <salgado> BradB: the fact is that we need pkgurgency in ISourcePackegeRelease, cause if it's not there, classes implementing this Interface will break, as they access pkgurgency
[06:46] <BradB> i checked in the change because the tests told me i didn't break anything.
[06:47] <BradB> feel free to add them back though, but i'd suggest first writing a test that breaks because they're not there, and then adding them to make the test pass.
[06:49] <BradB> (this might mean generating a functional doctest, which is even better, because you don't have to write any code.)
[06:52] <salgado> BradB: can you please cc to salgado@async.com.br ?
[06:53] <BradB> sure
[06:53] <salgado> thanks
[07:18] <salgado> BradB: is there something I need to do before running make check?
[07:19] <BradB> salgado: nope
[07:33] <daf> INVALID SIGNATURE ON REVISION!
[07:33] <daf>   archive: rocketfuel@canonical.com
[07:33] <daf>   revision launchpad--devel--0--patch-736
[07:33] <daf>   checksum file: checksum
[07:33] <daf> ?!
[07:34] <carlos> daf: press the arch HELP button :-)
[07:34] <daf> I'm looking for it! :)
[07:34] <daf> > tla panic
[07:34] <daf> tla: unrecognized command (panic)
[07:40] <carlos> :-P
[08:04] <carlos> daf: I found the problem to this new approach (sorry O:-))
[08:04] <daf> :)
[08:04] <daf> what is it?
[08:04] <carlos> daf: it's solved adding a precondition before calling to makeTranslationSighting
[08:05] <carlos> the fuzzy flag should be set/removed before calling makeTranslationSighting
[08:05] <daf> why?
[08:05] <carlos> because that also controlls the iscomplete
[08:05] <daf> no, it doesn't
[08:05] <carlos> if it's fuzzy it's not complete
[08:05] <daf> no
[08:05] <carlos> no?
[08:05] <daf> fuzzy and completeness are not related
[08:05] <carlos> so fuzzy=TRUE and iscomplete=TRUE is valid?
[08:06] <daf> of course
[08:06] <carlos> ok, that also changed since yesterday :-)
[08:06] <daf> "complete, but needs review"
[08:06] <carlos> ok
[08:06] <carlos> # Explicit set of iscomplete
[08:06] <carlos>         # If we have all translations, it's complete, if we lack a
[08:06] <carlos>         # translation, it's not complete. Also, it's not complete if it's
[08:06] <carlos>         # fuzzy.
[08:06] <carlos>         if None in self.translations():
[08:06] <carlos>             # The set is not complete
[08:06] <carlos>             self.iscomplete = False
[08:06] <carlos>         else:
[08:06] <carlos>             self.iscomplete = True
[08:06] <carlos> that's the code added to makeTranslationSighting
[08:06] <daf> complete ONLY means "has the correct number of translations"
[08:06] <carlos> ok
[08:07] <daf> the two flags are only related on export
[08:07] <carlos> hmm /s/Explicit/implicit/
[08:07] <carlos> and forget the fuzzy comment
[08:07] <daf> looks good
[08:11] <daf> we should update the documentation
[08:18] <carlos> I know
[08:19] <carlos> I'm also trying to guess how to write a unittest for this change
[08:19] <carlos> or should It be a functional test?
[08:42] <daf> hmm
[08:43] <daf> I think it would be difficult to make a unit tet
[08:43] <daf> test
[08:50] <carlos> daf: yeah, I discarted it already
[08:51] <cprov> daf|carlos: do you know how to delete a row using SQLO ? 
[08:52] <daf> cprov: I think it's in The Guide
[08:52] <carlos> cprov: not sure if it's the same, but SQLObject.delete() should remove it
[08:52] <carlos> hmmm
[08:53] <carlos> SQLO == SQLObject
[08:53] <carlos> right?
[08:53] <cprov> carlos: aha, yes
[08:53] <carlos> I need to sleep more...
[08:53] <cprov> carlos: lol
[08:53] <cprov> daf:our guide in wiki ?
[08:54] <carlos> cprov: yes
[08:54] <daf> cprov: https://wiki.canonical.com/SQLObjectGuide#head-d6f5636098cd458ce9d22939f8e3e8deab0e9bd0
[08:54] <carlos> www.sqlobject.org has also some documentation
[08:56] <salgado> cprov: obj.destroySelf() or cls.delete(id)
[08:58] <cprov> daf: carlos: salgado: thanks
[09:01] <daf> carlos: I've already gone to sleep once since I got up :)
[09:02] <carlos> daf: :-D
[09:02] <carlos> see you later
[09:02] <carlos> good weekend if I don't see you before Monday
[09:02] <debonzi> carlos, have fun
[11:10] !alindeman:*! Hi all!  The irssi project is redesigning their website and are having a contest, looking for the person who comes up with the best design for the new site.  If you're interested, please see the rules on http://www.irssi.org/ and join #irssi-site