/srv/irclogs.ubuntu.com/2005/08/29/#launchpad.txt

bradbRight, I can wait till tomorrow.12:12
bradbIn other news, changing the URLs is hell.12:12
kikoyeah12:13
bradbBecause the context that used to be returned for the bug page was a bug, but now, I think, it needs to be a task, which breaks basically every portlet on that page.12:13
salgadobradb, I'll try to look at it tomorrow, but I can't guarantee12:13
bradbsalgado: ok, thanks12:13
bradbmpt: Oh, btw, http://www.bikes.com/bikes/2005/sport/trailhead.aspx12:14
=== Seveas [n=seveas@seveas.demon.nl] has joined #launchpad
kikompt, you haven't been around the block much, have you?12:19
kikonice little bike, bradb 12:19
mptkiko: Literally yes, figuratively no12:19
bradbkiko: thanks. I tend to read the consumer reviews *after* I buy something, but I often guess reasonably well.12:20
bradbkiko: Can I let the entire /malone/bugs namespace die? (i.e. so that /malone/bugs/$bug.id would raise a 404)12:26
bradbThat way, I could commit to making all the portlets shown on the bug page work on the assumption that the context is an IBugTask12:27
mptbradb: Probably 50~60 percent of the external links into Launchpad are to /malone/bugs/something12:27
mptYou'd have to redirect them somewhere12:28
bradbWhere are the external links coming from?12:28
mptMailing list posts, Weblog entries, forums, etc12:28
mptI haven't seen the referer logs, I'm just guessins12:28
mptg12:28
bradbYeah, I see some on Google12:28
bradbff12:28
bradbActually, few enough that I doubt it matters.12:29
bradbWe're not even 1.0 yet.12:29
kikois it very hard to just redirect them?12:30
kikothe question is where :)12:30
bradbExactly.12:30
bradbWe could just redirect them to the first context that we find that has the bug #, but why?12:30
bradb(i.e. Why bother with the extra complexity?)12:31
mptbecause there is no better option?12:31
bradb404'ing /malone/bugs/* seems like a better option to me.12:31
mptwell, since you're such a fan of Jakob Nielsen ;-)12:32
mpthttp://www.useit.com/alertbox/980614.html12:32
kikoI even knew the date on that by hard12:33
kikoby heart, ARGH12:33
bradbmpt: Launchpad lives and breathes by linkrot, so far.12:33
bradbAnyway, redirecting or not, it sounds like I can still commit to never have a global, contextless bug page, right?12:35
bradb(That's the most important point for me, in terms of fixing every portlet to work with an IBugTask context on what is currently the "bug page")12:35
mptI thought that was sabdfl's decision12:36
mpt(though I was also considering it as one possibility)12:36
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  Fixes for three bugs. bug 1809: Incorrect Bugs facet link on PO template page (...+pots/something); bug 1808: Incorrect links in 'releases from this branch' portlet; bug 1807: Incorrect links in distrorelease's actions portlet. BjornT owes me beer (patch-2293: christian.reis@canonical.com)12:36
bradbRight, then I guess what I'll do is change the portlets in question to expect that the name "bug" be defined in their namespace, and have two pages, bug-index.pt, and bugtask-index.pt, which each define bug accordingly for the portlets to Just Work.12:39
bradbAnd wait and see what the sabster says.12:40
bradbRight, linkrot is bad. I hereby declare all Malone links immortal.12:50
bradbThinking about it: should there be a syntax to access the LaunchBag in ZPT?12:57
bradbcontext/launchbag:bug, or something?12:58
bradbcontext/launchbag:product, context/launchbag:user, etc.12:59
bradbIt seems to me that, if we have this magic bag of goodies, we might as well make use of it in as many places as it would make sense to do so (browser code seeming to be a place that it makes sense to do so.)01:00
cprovsee you tomorrow01:01
bradbI believe this could simplify making the portlets that are currently shown on the bug page (and all the pages linked to from the bug actions porltets) Just Work, whether the context is a bug or a bugtask01:01
bradbs/porltets/portlets/01:01
bradbkiko, mpt: Thoughts?01:01
kikobradb, isn't the portlet now invoked with a specific context?01:06
bradbkiko: At the moment, it relies on its context being an IBug.01:06
kikois that a problem?01:07
bradbyes01:07
lifelessmpt: nope, back @ work01:07
bradbAs per the reasons above01:07
bradbkiko: In the new URL scheme, the bug page will live at /products/foo/+bug/1, which means that the context becomes a task.01:08
=== mpt loves crashes on baz commit
bradbkiko: i.e. To the user, everything still looks pretty much like the good ole bug page (decorated, perhaps, with some new contextual information), but underneath, there's been a fairly major shift.01:09
bradbkiko: See what I mean?01:10
kikobradb, just update the portlets to always take tasks -- doesn't that solve the problem?01:17
bradbkiko: That would break /malone/bugs/$bug.id (if we're intending for that page to continue to function as it does currently.)01:18
kikoI just want that page to be a redirect01:19
kikoif you can't do that, then I agree to nuke it away.01:19
bradbit wouldn't be too hard to redirect01:20
bradbI'll commit to the portlets counting on their context being a task, as per your suggestion01:21
kikoI think that's the best and simplest solution01:23
mptSo we're going to have /products/foo/+bug/1 and /products/foo/+bugs/1 ?01:23
=== bradb shrugs
mptthat is such crack01:23
bradb+bug is crack-o-dementia, but I just work here...01:24
mptWell, maybe we can quietly redirect the former to the latter at some point01:25
kikobradb, can we skip +bug for now, in a last ditch effort?01:25
bradbkiko: 3 against <unrepresented> sounds good to me.01:26
kikohow hard is it going to be to change it to +bug later?01:26
mptkiko: skip +bug in favor of what?01:26
kiko+bugs01:26
mptSo you're signing on to merging the bug and task pages?01:27
kikohuh?01:27
kikobradb, can you help mpt :)01:27
bradbmpt: there's also +viewstatus and +editstatus01:27
mptkiko, the task page is currently at +bugs01:27
bradbmpt: i.e. there will be01:27
bradbso, .../+bugs/1 => contextual bug page, .../+bugs/1/+{view,edit}status => what is currently the task page01:28
mptoh, ok01:28
mptSo where normal bugtrackers have one page for a bug, we have three01:28
mptbut that's fixable01:28
bradbThat seems relatively sane, IMHO. A .../+bug/1 flying out of nowhere was the most crackish bit, to me.01:28
mptok, I'm getting 15 errors on make check, which don't seem to be anything to do with me01:29
bradbmpt: No, we'll continue to only have two, but in fact, we don't have only two, we have about 10.01:29
mptProgrammingError: ERROR:  relation "person" does not exist01:29
mptSELECT defaultmembershipperiod, defaultrenewalperiod, timezone, calendar, teamdescription, password, subscriptionpolicy, teamowner, merged, displayname, givenname, name, familyname, datecreated, karma FROM Person WHERE id = 101:29
kikompt, that usually means that one test failed and then the rest bombed out after it01:29
kikowhat's your first test failure01:30
mptwell, that's the first one01:30
bradbmpt: well "two", where there's actually a third in there, but it's a view/edit thing, and you'll only see a link to one or the other at a time01:30
mptcalled by Failed example: print Person.get(1).name01:30
mptline 58, in test_zopeless_reconnect.txt01:30
mptbradb: for which JavaScript can save us01:31
kikothe view/edit bit is besides the point here01:31
kikobradb, at worse, you can just make +bug be an alias for +bugs and change the links, shouldn't be too hard, right?01:31
mptkiko: Would I be right in concluding that the database isn't working at all?01:33
bradbkiko: Making +bug/1 and +bugs/1 traverse to the same thing is very trivial.01:35
mptDOIT01:35
kikobradb, right -- then you can fix the links later and say "oh, I forgot" :)01:36
bradbheh01:38
=== bradb DOES IT
kikoo/~ giving him drugs o/~01:39
mptkiko?01:39
kikomusic01:40
mptFile "/home/mpt/ubuntu/launchpad/lib/canonical/database/ftests/test_zopeless_reconnect.txt", line 122, in test_zopeless_reconnect.txt01:40
mptFailed example: time.sleep(1)01:40
mptDifferences (ndiff with -expected +actual): - thread after execute - thread end01:40
mptThat's probably a more informative example01:40
bradbI don't worry about failures in those reconnect thingies01:41
kikothat's crack, mpt, ignore it01:41
mptWell, ok, but that still leaves me with 14 database-y failures01:41
mptoh, some of them are actually my fault01:47
jordican anyone check in the database for me if Luxemburguish has plural forms data already?01:48
=== mpt sulks
jordiapparently it is01:51
mptjordi: Just try translating something into Luxemb[o?] urgish and see if Rosetta complains01:53
kiko-zzzbradb, you should use macros a LOT more than you currently do01:54
kiko-zzzthe code in bugtask-assignee-widget could be made 5x shorter01:54
kiko-zzzand I hate fixing the same bug 3x01:54
bradbkiko-zzz: Indeed.01:59
=== spiv [n=andrew@home.waugh.id.au] has joined #launchpad
jordimdz_: I dd that, seems to be god02:13
jordinow, why am I getting this system error02:13
mdz_jordi: eh?02:15
jordimdz_: launchpad. It is so broken. :)02:22
jordimdz_: actually, it seems I still have this ability to break it very well.02:22
mdz_jordi: why are you telling me? ;-)02:22
jordiuh.02:23
jordis/mdz_/mpt/g, who left the channel02:23
jordimdz_: POP THE TRUNK02:23
jordiI'm going to bed.02:23
mdz_jordi: that's more like it02:23
kiko-zzzbradb, ping?02:24
bradbkiko-zzz: pong02:24
kiko-zzzbradb, I found a bug in the assignee widget02:24
kiko-zzzare you ready for it?02:24
bradbSure.02:24
kiko-zzzclick on assign02:24
kiko-zzzassign to foo.bar02:25
kiko-zzz(click on edit, gah)02:25
kiko-zzzclick save02:25
kiko-zzzyou're teleported and foo.bar is the owner, right?02:25
kiko-zzznow click on edit again02:25
kiko-zzzdon't change anything02:25
kiko-zzzclick save02:25
bradbyou aren't tp'd, yeah, i know02:25
kiko-zzztp'd?02:26
bradbteleported02:26
bradbIt's a simple fix, maybe.02:26
kiko-zzzno02:26
kiko-zzzthat's not the bug02:26
kiko-zzzthe bug is that you /are/ tp'd02:26
kiko-zzzAND02:26
bradbwhat's the issue then? I can't look right now, because I broke the URLs.02:26
kiko-zzzthe assignee is unset02:26
kiko-zzzthe reason is that you are using the same name for both inputs02:26
kiko-zzzassigned_to02:26
=== asgeirf [n=asgeirf@nat-pool-brisbane.redhat.com] has joined #launchpad
kiko-zzzI'll fix it for you tomorrow, anyway02:26
bradbArgh, I totally fixed that problem, but I guess I only fixed one aspect of that problem (i.e. using the same name for both radios)02:27
kiko-zzzthe fix is to use different names, really02:27
bradbyeah, normally, it should02:27
bradbassigned_to and assign_to02:27
kiko-zzzbut we can fix that tomorrow02:27
kiko-zzzwas just a heads-up02:27
bradbok, thanks02:28
bradbI even have two different names defined for them in parts of that template and as attributes on the view class (view/assigned_to and view/assign_to), but I guess that was a code path I didn't test.02:28
bradbfor that matter, looking at the template code, it's unclear to me how they're ending up with the same name, but anyway02:31
kiko-zzzbradb, where is assignedToCurrentUser defined?02:36
bradbkiko-zzz: on BugTaskAssigneeWidget02:36
bradbaka, ctrl-] 02:37
kiko-zzzthanks02:37
kiko-zzzI think I found the error02:38
bradbkiko-zzz: What's causing it to have the same name? I can see no reason here for why that should happen.02:38
kiko-zzzyep02:38
kiko-zzzit doesn't actually have the same name02:38
kiko-zzzit's missing a clause02:39
kiko-zzzbecause YOU ARE NOT CODING PROTECTIVELY!02:39
=== kiko-zzz kicks bradb
kiko-zzzlook at getInputValue02:39
kiko-zzzI see an elif at the end of the branch02:39
kiko-zzzand NO raise AssertionError in an else clause (or at the end of the function)02:40
kiko-zzzmay this never happen again!02:40
bradbah, yeah02:40
kiko-zzzI'll fix it for you tomorrow for free02:41
kiko-zzzif you do a fast r=bradb afterwards :)02:41
bradbAn untested code path, ultimately (despite the fact that this is problem the mostly thoroughly tested custom z3 widget mankind has ever known)02:41
bradbs/problem/probably/02:41
kiko-zzzwe're going to have to use a hidden input if we want this to be fixable trivially02:42
kiko-zzzargh02:42
kiko-zzzor maybe not02:42
bradbindeed, no need for a hidden field, i don't think02:43
kiko-zzzfixed02:45
bradbkiko-zzz: btw, where did you add <label>? I specifically left that off of the radio options, as per our earlier discussion when I showed you and mpt the widget.02:45
kiko-zzzall radiobutton options must have labels<tm>02:46
kiko-zzzI'll send you a diff now02:46
bradbkiko-zzz: Are they bolded now?02:46
kiko-zzzyes, though you can fix that02:46
=== kiko-zzz hates the bold
kiko-zzzfixed02:47
bradbwee02:47
kiko-zzzI'll send you a diff, can you please add a test for this case and check if I didn't do too much cleaning up02:48
kiko-zzzI didn't see reason for half the code in the template, and it still worksforme without it, so...02:48
bradbSure, I'll take a look at it tomorrow morning, ok?02:49
kiko-zzzas long as you properly credit the fix :-)02:49
bradblike this: arch-submit-merge "[trivial]  An awesome fix I DID" $pqm02:49
bradb:P02:49
bradbIf I'm adding the test, I want a 50% cut02:50
bradb240 lines of doctest on this widget and woosh, bug. I hate programming.02:51
kiko-zzz:-P02:51
kiko-zzzI hate tests02:51
kiko-zzzthey make you focus too much on tests02:51
kiko-zzznot on the code quality02:51
kiko-zzzmail sent, bradb 02:52
bradbthanks. /me writes an activity report.02:53
=== kiko-zzz archive-mirrors and goes home
kiko-zzzhttp://pqm.ubuntu.com/02:54
kiko-zzzmore love from me02:54
bradbkiko-zzz: dude, you *abuse* trivial :)02:54
kiko-zzztomorrow I'm all rosetta's 02:55
kiko-zzzbradb, well, somebody needs to get bugfixes in02:55
kiko-zzzif you think I crapped out call me out in public and I'll hang my head in shame02:55
kiko-zzzI'm now gone02:55
kiko-zzzciao02:55
bradblater02:55
=== stub [n=stub@203-217-37-199.dyn.iinet.net.au] has joined #launchpad
=== robitaille [n=daniel@d154-5-117-228.bchsia.telus.net] has joined #launchpad
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  Add kamacacheupdater section to production1 instance's launchpad.conf (patch-2294: stuart.bishop@canonical.com)06:15
=== _Rappy_ [n=hunt-pre@dsl-253-122.monet.no] has joined #launchpad
lifelessstub: ping07:55
stublifeless: pong07:55
lifelessI hear you are chatting with jim about testing foo07:56
lifelessI'm interested in what you are doing, cause I'm trying to reduce the NIHness of the various python test runners.07:56
lifelessand I'd hate to have this be a game of whack a mole07:56
stubI just sent another reply to zope-dev, so if you hunt out the archive it should be right at the bottom. The thread is only three messages deep so far ;)07:57
lifelessI will get spiv to show me07:57
lifelessbut whats the general tack you are taking ?07:57
lifelessit is putting smarts in the runner, the result or the case ? or is it changing the api ?07:58
lifelesswill you be able to run the tests with the stock testrunner (which is the ideal test for doing it right)07:58
stubThe thread is about replacing the Z3 and Z2 test runner with one that is more general purpose (which I assume will end up in Python 2.5 or 2.6 if it meets its goals)08:02
stubMain feature is optimizing fixtures so that environments are only setup or torn down a minimum number of times (eg. stuff like Zope does already with the compoenent architecture). Also cute things like if a fixture can't be torn down (raises a NotImplementedError), the test runner reinvokes itself in a fresh process to keep going.08:03
stubJim likes layers, I like a set of resources. Which is what I'm arguing about08:03
stubhttp://mail.zope.org/pipermail/zope-dev/2005-August/025302.html08:06
stubhttp://mail.zope.org/pipermail/zope-dev/2005-August/025304.html 08:06
stubhttp://mail.zope.org/pipermail/zope-dev/2005-August/025305.html08:06
stubhttp://mail.zope.org/pipermail/zope-dev/2005-August/025310.html08:06
stubYou will not be able to run the tests using the standard test runner, because the tests specify the environment they depend on. Although I don't see why this couldn't be made so.08:09
=== robitaille [n=daniel@d154-5-117-228.bchsia.telus.net] has joined #launchpad
lifelessso08:27
lifelesslooks to me like you guys don't quite get how unittest is meant to work08:29
lifelessthe goal of unittest is that there is no coupling between testrunner and testcase other than testcase.run(), and testcase.id() between the testcase and the testresult08:29
lifelessall that you want to do is near-trivially done via an appropriate TestCase subclass, and fixing it via a runner is harmful08:30
stubThe runner selects the order tests are run in. A test can't do that because it doesn't have enough context.08:30
stubSo sure, a test should be runnable without a runner. And that can be added. But optimizing the order tests are run in is the job of the test runner.08:31
lifelessyou want test ordering to ensure that tests needing similar things are grouped together right ?08:35
lifelessby definition any test case should be standalone08:36
spivAIUI, this is an optimisation -- all tests can be standalone, but if run in a certain order the resource setUp/tearDown can be intelligent enough to save a lot of work.08:36
stubUnfortunately setting up and tearing down the entire environment for every test does not scale if you have a lot of tests and a large amount of environment08:37
lifelessright, not debating that.08:37
lifeless(well, there are arguments that can be had w.r.t. mock objects et al, but that is a different discussion)08:37
stubSo the test case should say 'oh - this bit of environment I want is already running, so I'm not going to set it up. And I can't tear it down either in case the next test wants to use it'.08:38
spiv(indeed :) )08:38
=== stub waits for lifeless to write a mock PostgreSQL database
lifelessstub: so, something like this would make sense to me:08:39
lifelesswrite a TestCase class whose setUp and tearDown use a self._resources list to determine what they need and ask them to be setup/torndown - and those resource's methods use refcounting to decide what to do08:40
lifelessuse iteration over the tests to introspect TestCases that derive from/ or implement the interface of, this specialised TestCase, and create an appropriately ordered TestSuite08:41
lifelessthen use whichever runner you want to actually run the tetss08:41
lifelesstestsuites define order because testrunner.run() calls run(result) on the suite it is given08:48
lifelessso a suite can change order, or just be used as an ordered container08:48
stubThat is placing the burden on determining if a resource should be torn down on the resource rather than the test runner (which is doable with a subclass). ie. the resource would need to have the test suite and the last test run and determine if the next test in uses it as a resource.08:49
lifelessnope08:50
lifelesserm. 08:50
spivI think lifeless is proposing that the TestSuite would do this, rather than the TestRunner or the resource?08:51
lifelessso, we would need a testsuite subclass that manages the resources08:52
lifelessit would ask for a setup before a group and a teardown after, so the setup and teardown calls from the Case would become noops08:53
lifeless(though they would have effect if/when run without the magic testsuite optimiser)08:53
stubThis means you are making the TestSuite the test runner. Currently the default runner iterates over a test suite and executes the tests. You are suggesting making the testsuite into the runner.08:54
lifelessthe default runner asks a suite to run08:54
bob2oh, zope-dev, not zope3-dev08:54
lifelessthis preserves that model. peeking inside testsuites and manually walking them breaks the model08:55
=== jdub [n=jdub@home.waugh.id.au] has joined #launchpad
spivI believe that the division of work in xUnit is that a TestRunner does TestSuite.run(), not that it does "tests = testsuite.gettests(); ... ; for test in tests: test.run()".08:56
jdub:-)08:56
=== jdub [n=jdub@home.waugh.id.au] has left #launchpad []
lifelessTestCase is a composite, its bad karma to to do gettests ;008:57
stubok. that all seems to make sense - just shuffling stuff around a bit. Jim is very much focused on what he needs to Z3 and Z2 work, so I first of all need to convince him that other projects need a more flexible model (or him to educate me on why he is right).09:00
lifelessso there are concrete advantages here:09:00
lifeless* any other unittest compatible runner will still do the right thing: test_suite() just returns this smarter TestSuite instance.09:01
lifeless* single test running does not become a special case.09:01
lifeless* gui test runners, co-process runners, and remote runners dont become special cases09:01
lifelessother xUnit folk will grok it quickly09:02
stubHmm... the burden of tearing down a resource is on the testsuite now, which does not seem correct.09:02
lifelessin the optimised case yes09:02
lifelessbut the non optimised case will still use tearDown09:03
lifelessremember that the runner has _no_ visibility to the internal structure of a TestSuite09:03
stubSo a TestCase now needs to know if it is being used by an optimized TestSuite and change its behavior accordingly09:03
lifelessthe 'TestRunner' I mean.09:03
lifelessno, they always call setUp on resources, but if already setup its a noop09:03
lifelessI can draft up a demo tomorrow if you like.09:03
stublifeless: I mean tearDown.09:04
lifelesstearDown would decrement a refcount09:04
lifeless(in the resource)09:04
stubbtw. I think Jims code may still be using TextTestRunner btw. You are confusing the command line tool that runs the tests with the unittest.TestRunner class I think.09:04
stubThere are other features for doing in the test runner btw., such as coping with Resources that cannot be torn down.09:05
lifelessI'm so not confusing it09:06
lifelessthere are > 100 lOC replacing the runner with module level naughty foo09:07
lifelessThe problem is responsibility, the runner is not 'the thing that runs the tests', its 'the thing that provides a UI for running the tests'.09:07
lifelessso, if a resource cant be torn down, what should happen ?09:09
=== asgeirf [n=asgeirf@203-173-59-20.dyn.iinet.net.au] has joined #launchpad
stubThe test runner reinvokes itself as a fresh process starting at the next test09:09
lifelessnow imagine your runner is a gui09:10
lifelessthats going to be pretty harsh to do to the user.09:10
stubIndeed - the standard model doesn't work. So the gui needs to talk to the test runner running as a different process and render its output nicely.09:10
lifelesshowever, its ok in the xUnit model for the testsuite to fork, and then start getting feedback frmo the child proess, calling result.add* as things happen09:11
lifelessthe standard model does work; ;)09:11
lifelessthe RightWay to implement that is a subclass of TestSuite that adds a process barrier 09:12
stubok. that sounds sane. So implementation wise would be to take what Jim wrote and stuff it all into a TestSuite.09:12
lifelessas a first approximation, yes.09:13
stubI don't know if there is anything special involved in fitting DocTestSuite and DocFileSuites into the mix - don't see any problem.09:14
stubAlthough I don't like Jim's heirarchy, so I'm not sure how much would be worth preserving09:14
stubSchoolTools and py.test seem heirarchical on their fixtures too, which sucks. Schooltool seems to use magic .py files in the tree and py.test well known method names (setup_module, setup_class) etc. which are invoked magically.09:16
lifelessI need to look at them at somepoint09:17
=== Seveas [n=seveas@ksl403-uva-132.wireless.uva.nl] has joined #launchpad
=== robitaille [n=daniel@d154-5-117-228.bchsia.telus.net] has joined #launchpad
stublifeless: If I see pqm hung (like now) should I kill it, or would you rather now that you are back?09:32
lifelessi'm hapy for you too following that emails instructions09:35
stubnc killed09:36
=== dand [n=dand@gw.datagroup.ro] has joined #launchpad
=== carlos [n=carlos@243.Red-83-47-24.pooles.rima-tde.net] has joined #launchpad
carlosmorning10:16
lifelessstub: oh, and you can decorate tests effectively if you use the approach I am suggesting, for extra code reuse. ;010:23
=== WaterSevenUb [n=WaterSev@azevedo.astro.up.pt] has joined #launchpad
=== sabdfl [n=mark@217.205.109.249] has joined #launchpad
sabdflstub: is it possible to tell an auto-form to use a different vocabulary for a given widget?10:49
stubvocabularies are attached to the schema field, and the widget is adapted from this field. So I think you just create a new interface, overriding the Choice with a new Choice with a different vocabulary, and render the form from that.10:51
sabdflstub: hmm... i think zope3 makes the mistake of conflating Interface with Schema10:51
stubAlthough what you want might really be to make the vocabulary context sensitive, and interrogate the context to determine what choices are valid.10:52
stubThey arn't conflated - interfaces are just the mechanism used to document a Schema.10:52
sabdflstub: it's already context sensitive, but i want it to work in two different ways10:52
sabdflstub: then how do you tell the difference between an Interface used to document a form and one used to document the interface on a content object?10:53
stubIts docstring? The module it was imported from? Naming conventions?10:53
sabdflnone of which we have used, and i suspect none of which are standardised10:53
sabdflthe two are fundamentally different10:54
sabdflone is function, the other presentation10:54
stubSchemas are not presentation - that is forms.10:55
stubI suppose a Schema is just an Interface that defines no function, and perhaps the issue is that *we* are mushing them together in our content objects?10:56
stub(At one point I wanted to generate the base schemas for our content objects from the database, and have them subclassed to define function)10:57
sabdflthe part of a schema that talks about the title, description, requiredness etc, is presentation10:59
sabdflthe part that describes attributes (which overlaps with the presentation bit) is function10:59
sabdfli think they should be separated11:00
stubtitle is data, description is data, requiredness is validation. If you render it, eg. by taking the data, quoting it and spitting it out on a web page, that bit is presentation11:00
sabdflok11:01
sabdflbut...11:01
BjornTi think the main problem is that there's no easy way of defining how a schema is to be presented. there were some discussions about it, but no-one came up with a good solution11:01
sabdfloften you want the same data to have different validation on different forms11:01
stubI've been in an argumentative mood all day btw. Something in the water ;)11:01
sabdflcurrently, that requires a second Interface, which is imo nonsense11:01
stubI don't see a problem with that. If you have different attributes, or different constraints, you have a different schema. Trying to take a schema (a definition of data and constraints) and mush it into different shapes seems wrong. Inheritance could make this easy if we structure things correctly (or maybe it will make a huge and confusing tree of Interfaces like Z3 core has ;) )11:03
stubSo you have to say """ class MySpecializedSchema(BaseSchema): foo = Choice(vocabulary='specialized') """ to create a new schema, based on another one. Any alternative is really just another way of spelling that, or possibly a helper or some sort.11:05
stubOf course, now that someone has ported XmlSchemas to the Z3 environment we could use them instead ;)11:06
carlosjamesh, hi, around?11:18
=== Mez [n=Mez@cpc3-lich4-3-0-cust227.brhm.cable.ntl.com] has joined #launchpad
=== sabdf1 [n=mark@217.205.109.249] has joined #launchpad
sabdf1carlos: languagepack status?12:28
carlossabdf1, whitespace migration script done12:29
carlosI'm preparing new language packs12:29
carlosto be checked by Martin12:29
sabdf1cool!12:29
carlossabdf1, oo.org language packs are beeing tested  aslo now by doko12:29
carlossabdf1, and firefox has been moved to breezy + 1 as they need big code changes to pootle's scripts12:30
sabdf1awesome12:30
carlos;-)12:30
sabdf1well done12:31
sabdf1will we catch whitespace problems coming in now?12:31
carlossabdf1, yes12:33
sabdf1cool12:33
sabdf1any other known issues?12:33
carlossabdf1, we detected some issues with some exports and plural forms12:33
carlosbut need to get the sample data to reproduce that issue12:34
carlosanyway, I think it does not affect us too much as users didn't complain about that12:34
sabdf1ok12:34
=== Mez [n=Mez@cpc3-lich4-3-0-cust227.brhm.cable.ntl.com] has joined #launchpad
=== froud [n=froud@ndn-165-141-240.telkomadsl.co.za] has joined #launchpad
froudhi, can somebody explain the Rosetta process for me. Do translators have to download the pot and create a po on local machine or do they do that automatically when they start translating?12:47
sabdf1automatically12:52
sabdf1we need to know the usual plural form for that language, but we have it for most languages now12:53
sabdf1if the po file deviates from the normal plural form, they need to be able to figure that out and let us know12:53
sabdf1but that's very rare12:53
sabdf1otherwise it's pretty much as it seems12:53
sabdf1froud: ^12:53
froudsabdf1: k, just trying to get OpenICDL [http://icdl.tsf.org.za]  users to understand the system...which is hard to do when I myslef don't understand it :-)12:55
froudsabdf1: so best way is for users to use the web-based interface to do translations and rosetta take care of the rest12:55
sabdf1yes12:56
sabdf1you need to upload, and update, the POT12:56
sabdf1they should be able to do everything else themselves12:56
sabdf1when you are close to a release, download all the PO files12:57
sabdf1bundle those in your tarball, and off you go12:57
froudsabdf1: thx 2 jordi the POT files are there now its getting user who don't understand Rosetta to actually use it.12:58
sabdf1point them at the template page12:58
sabdf1ask them to select their language if it isn't automatically detected from browser and location12:58
sabdf1then they click on the language and start translating12:58
sabdf1that is all12:58
froudsabdf1: thanks01:04
dandsabdf1: is malone the right place to report a change in plural form for a certain language? or should we wait for gettext to update first?01:14
dandright now we edit the plural form for each translation, which is not a problem... a default would be nice though01:15
sabdf1dand: report to carlos01:19
sabdf1or file bug in malone, and assign to carlos01:19
carlosdand, send me an email with that information and I will handle it now01:20
carloscarlos.perello@canonical.com01:21
=== stub [n=stub@203-217-37-199.dyn.iinet.net.au] has joined #launchpad
dandcarlos: thanks, i'll do that01:22
carlosdand, np01:23
dandcarlos: sent01:27
carlosdand, done, it should be applied today or tomorrow on production01:36
dandcarlos: you guys rock! /me's gonna print this channel's log as a motivational poster :)01:43
carlosdand, :-)01:43
=== _Rappy_ is now known as _Gizmo
=== _Gizmo is now known as Gizmo
=== Gizmo is now known as _Rappy_
dilysMerge to rocketfuel@canonical.com/launchpad--production--1.29: Cherry pick patch-2294 (patch-2: stuart.bishop@canonical.com, rocketfuel@canonical.com)01:47
=== elmo [n=james@83-216-156-21.jamest747.adsl.metronet.co.uk] has joined #launchpad
=== carlos -> lunch
sabdf1elmo: you rock02:01
=== cprov [n=cprov@200-171-140-32.dsl.telesp.net.br] has joined #launchpad
=== salgado [n=salgado@200-171-140-32.dsl.telesp.net.br] has joined #launchpad
stubcarlos: plural form updated02:13
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  Updated Romanian plural forms (patch-2295: carlos.perello@canonical.com)02:21
salgadostub, ping02:24
stubsalgado: pong02:27
salgadostub, I had to drop the NOT NULL constraint in Vote.preference, because people can leave some options without preference in a condorcet poll02:28
salgadostub, do you think it can be a problem?02:28
stubNo problem. The constraints are purely there as a safety net to your code. The change seems sane.02:29
Kinnisonsalgado: why not simply fill out the empty options with how condorcet will treat them (I.E. all the same, one lower than anything the user specified)?02:30
sabdf1what's the use case for condorcet polls?02:33
salgadoKinnison, because in the UI you choose the options in the order you want (1 for your most preferred, 2 for your second most preferred, and so on). then I'd  have to choose an arbitrarily huge number to use02:34
Kinnisonsalgado: There's some number of choices yes?02:34
salgadosabdf1, this is what they use in debian, AFAIK02:34
sabdf1salgado: have they asked to use LP?02:34
sabdf1iirc we were only going to do basic voting for 1.002:35
sabdf1and i think condorcet is YAGNI02:35
sabdf1for 1.0, at least02:35
salgadosabdf1, no, but that (preferential voting) was in the first BasicVoting you wrote02:35
sabdflhmm... preferential is not condorcet, i don't think, is it?02:36
sabdflcondorcet is much trickier02:36
sabdflpreferential is just "who is preferred by most", isn't it?02:36
stubcondorcet is a form of preferential voting. there are a number of different preferential methods02:36
Kinnisoncondorcet isn't actually complex to implement, just to understand02:37
sabdflok, all i wanted was "preferred by most"02:37
stubFor example, in Australian preferential voting in elections, we must give a unique preference for each candidate. Other preferential systems (such as condorcet) relax that restriction.02:37
sabdflwe can do A, B, C, which is the most popular?02:37
salgadoKinnison, yes, I could use a number like len(options) + 1, but mpt thinks we should allow people to choose whatever number they want as the preference. (e.g. they could choose a preference of 666 and want to see it there when they come back to edit their votes)02:38
sabdflsalgado: please don't spend any more time implementing condorcet02:38
stubsabdfl: I'm sure there is a political science thesis in determining  what 'preferred by most' means02:38
salgadosabdfl, it's already implemented and up for review02:38
sabdflthe UI, for a start, will be a pain, to provide a ranked result02:38
salgadoI already moved to ShipItNG02:38
sabdfldo you have a basic "got the most votes" option?02:38
salgadosabdfl, for now we're providing the pairwise matrix02:38
sabdflsalgado: for the record, that's total crack02:39
sabdflwhoever's reviewing it, please bounce it on that UI alone02:39
sabdfl*DENIED*02:39
sabdflsalgado: please resubmit with just a basic most-votes, where the UI is just select-one-option-by-radio-button02:40
sabdflcondorcet can come later, when there's a real use case02:40
sabdflstub: could you help me with a query please?02:40
sabdflthis is for Person.merge02:40
stubsure02:40
sabdflok, we have SpecificationReview which has (spec, reviewer) UNIQUE02:41
salgadosabdfl, that means just droping the CONDORCET item in PollAlgorithm. then people won't be able to create condorcet-style polls.02:41
sabdflsalgado: yes please02:41
sabdflit wasn't in the spec, iirc, and the UI you've described is inappropriate02:41
stubsalgado: Please keep the page tests though, so we can switch it on when someone requests it02:42
sabdflplease confirm that you have a simple poll where users can pick the best of N options, and the winner is the one that got the most votes02:42
salgadostub, sure. I'm not going to remove any tests02:42
salgadosabdfl, sure. we have that. 02:43
sabdflstub: i want to UPDATE the specreviews that will not result in creating a (spec, reviewer) pair that matches an existing one02:43
sabdfli tried:02:43
sabdflselect id from specificationreview where reviewer=13 and id not in (select id from specificationreview as a where a.reviewer=1 and a.specification=specificationreview.specification);02:43
sabdflbut that's a bust02:43
sabdflsorry, it's with test data02:44
sabdfli was trying to "find/update all the ones where the resulting update won't look like an existing record"02:45
sabdflstub: any suggestions?02:48
stubSorry - was looking for an example. I could have sworn I had already done a similar one in person merge ;-/02:48
stubupdate specreview set reviewer=new_reviewer where reviewer=old_reviewer and id not in (select id from specreview as s2 where id=specreview.id and reviewer=new_reviewer);02:50
stubI havn't got the tables around, so that is untested. Might need to tweak the table aliasing.02:50
sabdflhmm02:54
sabdfljust found BountySupscription02:54
sabdfli think that's the same02:54
sabdfland it's slightly different to the one you just gave02:54
stubMr. Consistency, thats me ;)02:55
sabdflwhich is better?02:55
sabdflnup02:56
sabdflthe one you just gave is busted02:56
stubMaybe it is late, but I can't for the life of me think why I need to join bountysubscription to itself in that subquery ;/02:57
KinnisonRan 456 tests in 626.772s02:57
KinnisonFAILED (failures=2)02:57
KinnisonWoohoo!02:57
Kinnisonvery few failures left02:57
=== ddaa [n=ddaa@ordo.xlii.org] has joined #launchpad
=== mpt [n=mpt@200-171-140-32.dsl.telesp.net.br] has joined #launchpad
=== Kinnison looks very embarassed
KinnisonI think those failures are because the buildd slave tests don't work if there's a buildd slave running03:02
=== wdamn [n=marcello@teotihuacan.nekhem.com] has joined #launchpad
stubsabdfl: update bountysubscription set person=9 where person=4 and bounty not in (select bounty from bountysubscription where person=9); works for bountysubscription03:09
sabdflstub: nup03:15
sabdflah03:15
sabdflyes03:15
sabdflusing bounty makes it simpler than using id03:15
sabdfli've got it working using the previous version for bountysubscription03:16
stubFeel free to replace the existing crackfull BountySubscription migration code ;)03:16
sabdflsalgado, stub: is production running the foaf-update-karma script?03:17
sabdflit doesn't appear to be updating it03:17
stubNope - it died when I migrated the cronjob to gangotri. I just cherry picked the fix (missing stuff in gangotris config file), but havn't rolled it out yet.03:17
sabdflok03:18
sabdflstub: when was the last production update?03:18
stubYesterday03:18
sabdflok, cool, thanks. it's looking good.03:19
stubpatch-2283 IIRC03:19
sabdflmpt: i fixed about 29 page test failures from the new main_template03:19
sabdflyou're welcome ;-)03:19
mptheh03:19
mptI only fixed two warnings you created03:19
mptso I've got a way to catch up yet03:20
=== ChanServ [ChanServ@services.] has joined #launchpad
=== mpt still doesn't know what to do about 'ProgrammingError: ERROR: relation "person" does not exist'
stubIf you paste the full traceback I could probably tell you03:24
=== spiv [n=andrew@adsl-66-203.swiftdsl.com.au] has joined #launchpad
sabdflstub: done03:24
sabdflwarnings?03:25
sabdflstub: i also fixed validators.bugs.py03:25
sabdflit's now in interfaces.validation03:25
salgadostub, how do I order some GROUPED BY results by a count(*) and get only the rows with the higher count (assuming there maybe rows with equal count)?03:25
sabdflalong with some propery url validation bits03:25
stubsabdfl: Ta.03:26
mptstub: https://chinstrap.ubuntu.com/~dsilvers/paste/fileFjuxYp.html03:26
stubsalgado: select count(*),name from foo group by name order by count(*) ?03:27
stuberm... count(*) desc03:27
salgadostub, yes, that's what I have, but I need to get *only* the rows with the higher count03:28
salgadois it possible?03:28
stubselect count(*),name from foo group by name having count(*) = max(count(*)) might work03:28
stubor just select count(*),name from foo group by name order by count(*) desc limit 1;03:29
stuboh... you want all with the highest count...03:29
salgadoyes, the limit won't work03:29
stubmpt: erk. either the test is connecting as the wrong user or hasn't initialized the database correctly. But neither should be the case for a system doctest test ;-/03:31
stubsalgado:  select count(*),bounty from bountysubscription group by bounty having count(*) = (select count(*) from bountysubscription group by bounty order by count(*) desc limit 1)03:33
mptsalgado: You're in charge of the database setup, is this something you can fix?03:33
salgadostub, great. that's exactly what I need. thanks. :)03:35
salgadompt, what's the problem?03:35
mptsalgado: https://chinstrap.ubuntu.com/~dsilvers/paste/fileFjuxYp.html03:37
stubI can't see any obvious problem on my copy of that test03:39
salgadompt, the database setup is the same as yesterday and the same that I'm using. I don't think this failure can be related to the fact that you use another postmaster03:40
mptok, thanks anyway03:41
=== mpt fixes the other failure and tries again
=== Kinnison is popping out to the shops while a test suite run happens. If anyone needs me, call my cell
stubsalgado: That test is explicitly connecting to port 5432, so mpt is probably talking to the wrong postmaster03:55
stub(fixable by adding the postmaster port to the config file?)03:55
salgadooh, no. is this a new test?03:55
stubDunno, although I expect it is an older one. Might have been passing before by accident ;)03:56
stubOnly the reconnect tests will hardcode the port btw., so only one or two.03:56
=== morg1 [n=morgan@wblv-146-228-172.telkomadsl.co.za] has joined #launchpad
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: [r=BjornT]  Fix for bug 1785: Librarian doesn't handle unicode filenames properly.  Plus more tests. (patch-2296: andrew.bennetts@canonical.com)04:16
wdamnhi everybody, I'd like to help the translation of zope into italian - I've subscribed to launchpad but I don't understand HOWTO. some links would be welcome. thank you04:18
=== froud_ [n=froud@ndn-165-156-174.telkomadsl.co.za] has joined #launchpad
=== SnakeBite [n=SnakeBit@84.242.143.64] has joined #launchpad
mptwdamn: Ok, go to https://launchpad.products/zope then click "Translations", then "Template 'zope' in Zope 3.1", then "Italian"04:25
carlosdand, the plural form change is now on production. stub, thanks!04:30
=== Alinux [n=Ubuntu@p54A392F0.dip0.t-ipconnect.de] has joined #launchpad
dandcarlos: gracias :)04:31
=== Robinho_Peixoto [n=ubuntu@201.32.165.161] has joined #launchpad
sabdflwdamn: https://launchpad.net/products/zope/ then further per mpt's instructions04:39
kikohey sabdfl 04:39
sabdflhiya04:40
kikoI'm sick :-(04:43
carloskiko, :-(04:44
carlossuperkiko never get sick!04:44
carlos:-P04:44
kikoyeah, it's been quite a while -- since switzerland04:44
=== cprov [n=cprov@200-171-140-32.dsl.telesp.net.br] has joined #launchpad
sabdflkiko: i got a nasty bug on The Island04:47
sabdflkiko: and aren't you due for a holiday? always happens.04:48
wdamnsabdfl, mpt: thank you :)04:51
mptYou can't be sick, kiko, you need to review my [not-so-trivial]  fixes04:52
carlosmpt, :-D04:53
kikompt, I can review even while sick04:55
dandI noticed some translations I entered last week in Rosetta for gnome-app-install (ro) are now missing. should I enter them again or there's a temporary glitch?04:55
Kinnisonhey sabdfl, you coming to camby this w/e?04:56
sabdflKinnison: bbq on sat?04:56
Kinnisonsabdfl: yep04:56
sabdfli'm going to be speaking at aKademy04:56
Kinnisonsabdfl: :-(04:56
sabdflbling bling04:57
Kinnisonsabdfl: there's sunday and monday too04:57
sabdflbling bling bling04:57
kikocarlos, check out dand's report?04:57
sabdflam only getting back monday night :-/04:57
dandkiko: thanks :)04:57
Kinnisonsabdfl: fair enough, enjoy aKademy04:57
sabdflKinnison: thanks, and regards to TheKrowd04:57
=== sabdfl is getting into the K thing
carlosdand, could you give me a more concrete clue?04:58
carlosdand, for instance, a concrete msgid that you know you already translated would be really helpful04:58
dandcarlos: sure: "Add or Remove Applications"04:58
dandcarlos: it was translated 100%04:58
Kinnisonsabdfl: how Kute. I'll pass on your Kind Komments04:59
carlosdand, URL?04:59
dandhttps://launchpad.net/distros/ubuntu/breezy/+sources/gnome-app-install/+pots/gnome-app-install/ro/+translate04:59
sabdflkiko: now that i'm playing more with the menu system, i think the inheritance is confusing, and we should go to straight objects + facets04:59
sabdflif an object has no Bugs facet, it gets no Bugs tab04:59
sabdflmpt: ^ ?04:59
dandcarlos: I don't think there were 44 strings in all, I wish I had a po export...04:59
dandcarlos: are there multiple templates of gnome-app-install available? 05:00
carlosdand, there is such feature...05:00
kikosabdfl, makes sense to me05:00
dandcarlos: yeah, I know. I just wish I would have used it for gnome-app-install, after translating it05:00
kikosabdfl, do the facets disappear or just get unlinked?05:00
carlosdand, if you added it to our database, you have it there05:00
carlosis not lost05:00
=== Robinho_Peixoto [n=ubuntu@201.32.165.161] has left #launchpad []
carlosbut perhaps could be a bug that has disabled it05:01
mptsabdfl: That's what I said to kiko yesterday, once LaunchpadHierarchyNavigation is implemented, every facet should be at the same level, or not available at all.05:01
sabdflkiko: disappear05:01
sabdflthough, unlinking gives the muscle memory advantage05:02
dandcarlos: I'll try translating it 100%, watch it closely and let you know if it happens again05:02
kikoright05:02
carlosdand, no, please, wait05:02
dandcarlos: ok05:03
carlosLet me finish what I'm doing atm and I will take a close look at it05:03
carlosdand, can you file a bug with the information I just asked you?05:03
dandcarlos: absolutely, there's no hurry. thanks!05:03
carlosdand, thank you05:03
kikompt, is https://launchpad.net/malone/bugs/1263 fixed?05:12
mptyes05:17
carloskiko, btw whitespace data migration is done05:18
=== mpt growls at the "view" link when marking the bug as fixed
kikocarlos, I know, wonderful, isn't it?05:18
carloskiko, :-)05:18
carloskiko, how do you want to handle the conflicts in daf's branch?05:19
carloskiko, I cannot commit unless I fix them05:19
kikohmmm05:20
kikohmmm05:20
kikocomplicated05:20
carlosI know..05:20
kikowell05:21
kikowhat sort of changes are they?05:21
kikoare they all interdependent?05:21
kikoor can you just pull a patch and then remove the files which aren't rosetta-related?05:21
carloskiko, I can do the later05:22
carlosit's a "cleanup" branch05:22
carlosremoves db imports, fix traversals, etc...05:22
kikoright05:23
kikoso generate a patch, mail me the non-rosetta parts, and take care of the rest05:23
kikowe'll dead-end daf's branch05:23
kikohey05:26
kikowho's our regular expression ninja?05:26
kikoI have an interesting problem05:26
kikoI want to match a string which may contain dots, commas and question marks /except/ for the last dot, comma or question mark05:26
carloskiko, ok05:27
carloswill do it tomorrow, I will take care of other things today, I need to do some fun stuff now or will be too bored :-P05:27
stubkiko: Sounds like a use case for lookaheads05:33
kikostub?05:34
stubkiko: Check out the Python Library Reference. But from your description, all you want is ^([.,?] +)[.,?] $05:36
kikothe trailing bits are optional05:37
stubThen ^([.,?] +?)[.,?] ?$05:37
kikothe trailing $ is really close to what I want05:38
kikoI'll think more about it05:38
stubeh?05:40
stubDescribing it in english properly is the first step anyway ;)05:41
mpt"25 conflicted items in this tree."05:41
mptwoohoo05:41
stubBecause I'm sure you really don't want to match a string consisiting of just punctuation like you said ;)05:42
kikostub, well:05:42
kikohttp://localhost:8086/malone/bugs/9.05:42
kikoI don't want the match text to include the trailing dot05:42
kikobetter example:05:42
kikohttp://localhost:8086/malone/bugs/9.html.05:42
kikoI don't want the match text to include the trailing dot05:42
=== Seveas [n=seveas@seveas.demon.nl] has joined #launchpad
=== Virtuall [n=virtuall@who.is.virtuall.info] has joined #launchpad
stub(http://[\w.] )(:\d+)?/([\w.,?] +?)[.,?] ?05:49
kikostub, that doesn't work in the case of:05:50
kikohttp://localhost:8086/malone/bugs/foo.bar.9.html.05:50
stubIt doesn't?05:50
kikono, it doesn't05:50
kikobecause the +? makes the match non-greedy05:50
kikoso we stop matching at the first . we find05:50
stubAhh... so you need whitespace or $ termination in there too05:50
kikoright, which is what I said above05:51
stub (http://[\w.] )(:\d+)?/([\w.,?] +?)([.,?] ?(?=\s) would do whitespace termination05:52
carlosmpt, how is your work queue?05:52
carlostoo big?05:52
stub(http://[\w.] )(:\d+)?/([\w.,?] +?)([.,?] ?(?=\s)|$) might do it05:52
stubOr you could install pyparsing as a dependancy, which has been getting good reviews for 'parsing stoof'. Not that I have played with it.05:53
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: last bits of basic bug atttachment implemenation, plus some bug fixes. [r=spiv]  (patch-2297: bjorn.tillenius@canonical.com)05:54
mptcarlos: I'm tidying up Rosetta's translation form at the moment, then finishing cleaning up the actions portlets05:58
carlosmpt, I would like to implement https://wiki.launchpad.canonical.com/TranslationReview05:58
carlosmpt, but I will need some help with the javascript part05:59
mptcarlos: yes, that's what I'm working on06:00
carloscool06:00
carlosmpt, I need it for the pomsgsetview page06:01
carlosso people can see suggestions for multiline entries06:01
carlosmpt, please, tell me when it's ready06:01
carlosso I can start with hte other spec06:01
mptok06:06
mptAnyone know how to resolve a conflict in a binary file?06:09
kikodelete it and add a new one06:09
=== bradb [n=bradb@modemcable033.209-70-69.mc.videotron.ca] has joined #launchpad
kikobradb, are you hacking tests for the patch I submitted?06:20
bradbkiko: No, I'm hacking MaloneSearchResults.06:20
bradbBut I could put that off to write the test for the BugTaskAssigneeWidget bugfix, if you want.06:21
kikowell06:21
kikoI'd like to get those tests in today to avoid having it broken for one more week 06:21
kikois MSR looking landable?06:21
bradbMSR will easily be review-queueable today, just a few kinks to iron out. Note: the first merge will be such that MSR is only shown on the sourcepackage bug listing, and nowhere else (otherwise it becomes a significantly larger patch and will take a lot longer to land.)06:23
bradbI'll have time to get to both today (I would have already probably done the required MSR work if my house didn't decide to have plumbing problems this morning.)06:23
kikosure06:24
kikowell, get the assignee bugfix in today06:24
kikoI noticed that my patch is actually correct because in production the link to "me" is often missing06:24
bradb"me" only shows if there's no assignee06:25
kikowhich is wrong06:26
kikoor aren't you allowed to take bugs assigned to others? :)06:26
kikoi.e. steve's on vacation06:26
kikodaf's on sick leave06:26
kikoetc06:26
bradbSure, but it's a balance between how common that will happen in Malone and 4 radio buttons, no/06:27
kikonot really06:27
kiko4 radios in that situation is okay -- it's actually confusing that me doesn't show up in certain situations06:27
=== camilotelles [n=Camilo@200165215194.user.veloxzone.com.br] has joined #launchpad
bradbok06:28
bradbcreating a branch now, will write the test to make sure it exposes the failure, then add the patch to make sure it fixes it as expected06:29
mptThere should never be four radiobuttons, but no-one listens to me06:31
bradbmpt: I do. Heck, I specifically made sure you and kiko approved the design of the widget before committing it. :)06:31
bradb(I do /listen/ to you, that is, not I do think there should be 4 rb's :)06:32
mptyeah, I know06:33
mptI didn't write up a formal specification for it, though06:33
=== superted [n=superted@213.167.101.222] has joined #launchpad
bradbmpt: Will it be reasonable for the first merge of MSR to have MSR only implemented in the sp bug listing, or will that be completely weird?06:34
mptyes, and yes06:34
kikompt, it's better to have 4 radios than no "me" button in arbitrary situations, sorry.06:34
bradbmpt: I thought you might say that :P06:34
mptkiko: Sure it is, but it would have been just as much effort to implement it the right way that produces only three06:36
mptnever mind, I'll fix it later06:36
kikooh06:36
kikoyou are talking about removing assigned_to06:36
kikogotcha06:36
mpt( ) nobody ( ) me (*) [current@assignee ] 06:37
bradbmpt: you mean that "assigned to" would be populated?06:37
bradbright06:37
mptright, just like all the other fields in that form.06:37
kikowell06:37
kikoI'm not fixing that today06:37
kikoso we'll have 4 until mpt gets around to it06:37
mptoh, baz, you got royally confused here06:39
=== bradb just got the good ole out of space error, leaving me wondering what state the branch operation is actually in
=== bradb goes to get food, bbl
kikoProgrammingError: ERROR:  permission denied for relation person06:41
kikois anyone getting that when running functional tests?06:41
=== kiko sighs
mptkiko-fud: Not quite the same as my ProgrammingError: ERROR:  relation "person" does not exist'06:42
sabdflkiko-fud: did you just refuel?06:46
=== dand [n=dand@83.103.205.136] has joined #launchpad
KinnisonHow often does jamesh's pending branch summary get regenerated?06:56
=== Lovechild [n=dnielsen@0x50c71cc7.adsl-fixed.tele.dk] has joined #launchpad
kikosabdfl, yes, a while back -- why?07:01
dilysMerge to rocketfuel@canonical.com/cscvs--devel--1.0: [r=spiv]  disconnect native cvs client before and after rlog (patch-104: david.allouche@canonical.com)07:03
sabdflkiko: what was a while back?07:05
sabdflddaa: won't that kill performance?07:05
kikosabdfl, the refuel07:06
sabdflkiko: so it's not a problem just introduced in rf today?07:06
kikompt seem to have gotten something similar yesterday07:06
kikoI've got my work blocked because of it, waah07:06
ddaasabdfl: the cost is just a couple of additional pserver authentications per sync. Now that you mention it, it might interact badly with SF.net connection throttling...07:08
=== carlos -> out
ddaaHowever, there are bugs in cvs servers that cause them to blow occasionally when doing too many different things in a single connection.07:09
sabdflddaa: and for the initial fetch and import?07:09
ddaasadfl: same thing, 2 more connections.07:10
ddaathe rlog is done only once.07:10
ddaaThat is the rlog for the whole module.07:10
sabdflok07:15
sabdflshouldn't be a problem them07:15
sabdflthen, even07:15
Kinnisonnight guys07:19
kikonight Kinnison 07:20
=== Znarl_ [i=karl@bb-82-108-14-161.ukonline.co.uk] has joined #launchpad
=== lamont-away is now known as lamont
=== Keybuk [n=scott@syndicate.netsplit.com] has joined #launchpad
bradbmpt: for the XXX in tales.txt, did you mean these:07:45
bradbdisplaying-bugs-and-tasks.txt:27:  >>> test_tales("bugtask/fmt:icon", bugtask=high_priority_task)07:45
bradbdisplaying-bugs-and-tasks.txt:30:  >>> test_tales("bugtask/fmt:icon", bugtask=medium_priority_task)07:45
bradbdisplaying-bugs-and-tasks.txt:33:  >>> test_tales("bugtask/fmt:icon", bugtask=low_priority_task)07:45
mptIs it that easy?07:46
mptsure, something like that :-)07:46
bradbWell, not quite /that/ easy. I snipped the output that the result is compared against.07:49
bradbBut yes, that easy, basically.07:49
kikobradb, what's the ETA for the assignee widget fix?08:09
kikoI'm only insisting because it blocks work in one of my trees08:10
bradbkiko: If I switch to that branch now, I'm guessing an hour or an hour and a half if I can baz smash it.08:13
kikoyou only have one tree?08:14
kikoI just want to make sure it's done today08:14
bradbI have two trees08:14
=== SnakeBite [n=SnakeBit@84.242.143.64] has joined #launchpad
mpthi ho, hi ho, just 7 conflicts to go08:26
=== Seveas [n=seveas@seveas.demon.nl] has joined #launchpad
kikoit's CRACKBAZ08:36
=== bradb [n=bradb@modemcable033.209-70-69.mc.videotron.ca] has joined #launchpad
elmowhat's python equiv of iconv -f utf-8 -t ascii?08:38
elmocodecs.utf_8_decode(foo, "replace") isn't doing what I want, i.e. giving me ASCII08:39
Keybuk.encode("ascii", "replace")08:41
Keybuk(on the end of what you just had)08:41
sabdflcheers all, i may be able to hop on again later08:42
elmoboggle08:42
Keybukactually, let's start from the basics08:42
Keybukyou have a string that's in utf-8, yes?08:42
Keybukbut is a Python ordinary string?08:42
elmoI don't know, it's from SQL Object08:42
KeybukSQLobject will give you a Unicode string08:42
Keybukso just do that.encode("ascii", "replace")08:43
Keybukwhere that is your thing-from-sqlobject08:43
Keybuksourcepackage.name.encode("ascii", "replace") for example08:43
Keybukor just str() it08:43
=== sabdfl [n=mark@pdpc/supporter/silver/sabdfl] has left #launchpad []
Keybukstr(sourcepackage.name)08:43
Keybukthough str() will fail if it contains non-ascii characters, where encode("ascii", "replace") will replace them with "?"08:44
elmoUnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 2: ordinal not in range(128)08:44
elmois from str(member.familyname)08:44
Keybukright, so use member.familyname.encode("ascii", "replace")08:44
elmook, thanks.. that gets me further 08:45
elmojust to "??" ville08:45
Keybuk*shrug*08:46
Keybukyou can't do anything else with it unless you know the language of the string you're trying to transliterate08:46
KeybukUnicode helpfully is done by glyph, not logical character08:46
kikoMem:       1035928    1030292       5636          0      66444      5636408:46
kikobaz loves me08:46
Keybukit might be  -> ue in one language, but  -> ui in another08:47
elmobugger08:47
kikoKeybuk, if you knew the language, how would you go about converting it?08:48
elmook, so here's the thing08:48
Keybukkiko: great, big, honking lookup tables08:48
elmoI'm trying to do first.last@ubuntu.com for all members08:48
elmoanyone got any bright ideas on how to handle folks with non-7-bit names?08:48
=== Keybuk wrote transliteration code for German, French & Spanish for Perinorm (ISO standards database) and that was complex enough
kikoKeybuk, nothing that python or glibc provide to you out of the box? :-(08:48
Keybukkiko: nope08:49
Keybukit's a non-trivial problem08:49
kikothat's disappointing.08:49
kikoelmo, skip them and email them for their preferred transliteration? how many are there?08:49
elmokiko: the point is to do this automatically, or I wouldn't be bothering with launchpad08:50
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  Fix for bug 1634: Linkification code breaks with URLs that are followed by greater-than+comma or greater-than+period. Also implements tests for linkification that makes sure that this /stays/ fixed (patch-2298: christian.reis@canonical.com)08:50
kikoelmo, I know, but I don't have a better suggestion.08:50
elmoI'd guesstimate about 10+ once all the pending people get approved08:50
kikoah, pqm loves me08:50
elmowell, would it be silly to have a "old-skool-name" field people could fill in?08:51
kikowould you fill it out with js automatically?08:53
=== carlos [n=carlos@243.Red-83-47-24.pooles.rima-tde.net] has joined #launchpad
=== bradb [n=bradb@modemcable033.209-70-69.mc.videotron.ca] has joined #launchpad
Keybukelmo: imagine when a Japanese person comes along08:54
elmokiko: I guess, it would default to the same as your normal name, unless it was non-ascii? and prompt if it was08:54
Keybukand fills in  as their name08:54
elmoKeybuk: ... they have romanized versions of their names right?08:54
salgadoelmo, once Steve told me he wrote something to do this. btw, I guess mako has this too08:54
Keybukyeah, better to add an "preferred ASCII format of name" column08:55
elmook, so as long as it's not completely crackful idea, I'll mail the list08:55
Keybukanother thought08:55
Keybukyou know we use first.last@08:55
Keybukwhat do we do for inverse names?08:55
Keybukgoto.masanori@  or masanori.goto@ ?08:55
elmoaww, christ knows08:56
Keybuk(goto is his family name)08:56
elmothe debian .jp guys aren't even consistent about that08:56
elmoATM, my script uses given.famil@08:56
elmodo we need a "name order preference" button too?08:56
elmothat'd be useful for more than just email, I guess08:56
KeybukI did bring this up about how stupidly western first.last@ format names were when you decided to use them, but did you listen? ;)08:56
elmoKeybuk: did you come up with a better idea? :-P08:56
Keybukusernames08:57
elmoyeah, 'cos we want microsoftsucks@ubuntu.com08:57
Keybukok08:57
elmoand there'll be no namespace collisions with usernames at all08:57
Keybukso on lp, if I go to people/keybuk and click "Edit Details" it asks me for my up+pw, then tells me "You're ALREADY LOGGED IN"08:57
Keybukhmm08:58
Keybukwe have a Display Name field08:58
Keybukthat suffices for "preferred order" - use whatever they put in that08:58
Keybukand if their name contains non-ASCII, ask for an "ASCII Display Name" ?08:58
elmothe displayname is a nickname08:58
elmoAFAICT08:58
elmoerr, no it's not, sorry ignore my crack08:59
Keybuksomeone could still give their name in lp as Mrs Microsoft Sucks09:00
Keybukmicrosoft.sucks@ubuntu.com09:00
elmoyeah, but they'd have to get past the CC with that as their name09:01
Keybuklikewise they would for preferred username for e-mail address09:01
Keybuk:)09:01
Keybukthen again, I swear the newscaster on Radio 2 just introduced herself as Vanilla Fudge09:02
elmowhy do we even have the separate display name09:04
elmothat seems to be inviting trouble09:04
Keybukthe only thing funnier than invented names is real ones09:04
Keybuk(I think her name is Fanella Fudge)09:04
elmoFanella?09:05
Keybukat my school, a few years above me, there were a brother and sister -- Wayne and Jo King09:05
KeybukI had a Justin Hanky in my class09:05
kikohere's a question09:05
kikosalgado, BjornT, bradb: is it possible to make a functional doctest for a browser method?09:06
kikoah,there is, cool09:06
bradbkiko: testing views, you mean?09:08
bradbbradb@oxygen:~/launchpad/lib/canonical/launchpad/doc $ ls *pages*09:08
bradbbug-release-targeting-pages.txt  sourcepackage-bug-pages.txt09:08
bradbare some examples of view tests I've written09:08
=== bradb tries not to shit his pants too much while the plumber opens the wall behind my washing machine
kikoopens the wall?09:12
bradbBlockage in the cold water tube leading to the washing machine. Yes, I'm wearing dirty clothes right now.09:13
=== Alinux [n=Ubuntu@p54A3A732.dip0.t-ipconnect.de] has joined #launchpad
bradb"M'a ess d de devisser le tuyaux icitte l et.......*snap*"; he snaps the pipe trying to unscrew the faucet from the tube.09:15
bradbat which point, the choice to open the wall was made09:16
kikoyou guys are crazy09:16
bradbThe plumber is a madman.09:16
kikowho hired him?09:17
kikoyou're a team09:17
bradbA team? i.e. the condo administration, you mean?09:17
kikoheh09:17
kikohow are my tests looking?09:17
bradbThey aren't, I'm only now waiting for the branch to switch09:18
bradbbetter yet:09:21
bradb.........................................................ssh: chinstrap.warthogs.hbd.com: Name or service not known09:21
bradbSegmentation fault09:21
salgadobradb, I created a vocabulary for the Country table, but I don't want the fields using this vocab to render that text entry with the popup. instead, I want to have a select widget09:22
salgadodo you know how to do that?09:22
bradbI believe inheriting from SQLObjectVocabularyBase should be enough.09:24
bradbJust don't do the implements(IHugeVocabulary) in your vocabulary, because if you want a select widget rendered, then it doesn't quality as "huge".09:25
bradbMilestoneVocabulary is an example09:25
bradbs/quality/qualify/09:26
kikoisn't a select widget for country kinda crazy, or are you going to use a select size=5?09:27
salgadobradb, yeah, that seems to work. but it failed because zope calls str(token) and there's non-ascii characters in that table09:29
kikoyay for zope09:29
salgadokiko, I can use a multiline select, but I think even a single-line select is better than our popup widget in this case09:29
kikoit's a lot of countries, though09:30
bradbApplying 128 revisions ...........................................................09:35
salgadokiko, bradb, https://chinstrap.ubuntu.com/~dsilvers/paste/filey6o5Mk.html09:35
salgadoI think the str() should be around value only09:36
salgadoas that's what the docstring says09:36
BjornTsalgado: it shouldn't matter, since token should be ascii only09:38
salgadoBjornT, why should it be ascii only?09:38
BjornTsalgado: i'm not sure sure exactly why, but it's specified like that in ITokenizedTerm09:40
bradbgood point09:41
salgadoBjornT, so I'm not allowed to display non-ascii data in the widgets if I'm using a vocab?09:41
=== Virtuall [n=virtuall@who.is.virtuall.info] has joined #launchpad
BjornTsalgado: title should work i think09:43
=== salgado tries
salgadoBjornT, it works. ta09:46
salgadoBjornT, so, I guess I should update the NamedSQLObjectVocabulary docstring to say that the names must be unique *and* 7-bit. what do you think?09:47
BjornTsalgado: yeah, that'd be a good idea09:49
bradb* Comparing FROM and TO ............................................................baz: uncaught exception: -1:(unable to fork for diff)09:57
bradb  please report this as a bug to bazaar@lists.canonical.com09:57
=== bradb tries a third time
=== mdz [n=mdz@ca-studio-bsr1o-251.vnnyca.adelphia.net] has joined #launchpad
kikobradb, kill firefox09:59
kikoand anything else big09:59
bradbyeah, i killed ffox and emacs09:59
bradb(for round three, that is)10:00
mptcarlos: How do I format a suggestion the same way as the original English is formatted?10:14
mptthe original uses tal:content="structure messageSet/getMsgID"10:14
carlosmpt, We will need to feed the messageSet dictionary with the suggestions inside the view class10:15
carlosinstead of getting the suggestions directly from the template10:15
mptcarlos, so should there be a /fmt:showinvisibles?10:17
carlosshowinvisibles?10:17
carloswhy?10:17
mptTo show the space characters and linebreaks10:17
mptand tab characters10:17
carlosoh10:17
mptlike the originals do10:17
=== bradb [n=bradb@modemcable033.209-70-69.mc.videotron.ca] has joined #launchpad
carloshmm10:17
mptSo when you're looking at a suggestion that's slightly different from the original, you can see what's different10:18
carloswell, I was thinking on show them always10:18
carlosoh10:18
carloshmmm10:18
carlosgood point10:18
carlosmpt, yes, sounds ok10:18
carlosmpt, now that you are with that...10:18
mptYou can't show them always if you want to put them in the text field :-)10:18
mptCurrently they're in a <pre>, which is ugly10:19
carlosmpt, should we should whitespaces always with the middle point? instead of just show the ones at the start/end?10:19
carlosmpt, yeah10:19
mptcarlos: Yes, the same applies10:21
carlosoh, what am I thinking on?10:21
carloss/should we should/should we show/10:22
mptOtherwise some silly person comes along who learnt to type in the 1960s, so they put two spaces between sentences rather than one, and you're staring at their suggestion and thinking "huh?"10:22
bradbkiko: https://chinstrap.ubuntu.com/~dsilvers/paste/filexio8yi.html -- here's what I've added to the doctest (at the end of the section that has just finished demonstrating that "assign_to" works} to demonstrate the breakage you discovered. Does this look like what you were expecting?10:27
bradbIf so, I'll add you patch and see if it magically passes.10:27
carlosmpt, yeah, I like that10:27
kikoshould be carlos 10:27
bradbkiko: Without the patch, the test breaks because of no .name on NoneType object (i.e. getInputValue is returning None when it should return the current assignee instead.)10:28
kikoright.10:29
mptkiko: Will you have time to review my products/projects fixes today?10:30
kikoI'm at the moment trying not to cry10:31
kikowhere are those fixes?10:31
mptmpt@canonical.com/launchpad--devel--010:31
kikompt, looks okay, yes, I'll have time for it.10:35
mptthanks kiko10:35
kikohowever I'd like to talk to you10:36
mptnow?10:40
dilysMerge to rocketfuel@canonical.com/launchpad--devel--0: [trivial]  Fixes for another 3 bugs: bug 1358: Sort order should be indicated in Malone results; bug  1743: wording of Release Filename Pattern in Edit Series Details is ambiguous; bug 1787: Sorting a bug list will unhide fixed/rejected tasks. Includes some cleanups and refactorings along the way. (patch-2299: christian.reis@canonical.com)10:41
kikofinally10:41
mptcarlos: I'm sorry if I've asked you this before, but when a message has more than one plural form, is the fuzzy bit set for all of them at once, or individually?10:41
carlosmpt, all of them10:41
=== carlos -> dinner
mptpofile-translate.pt makes my brain hurt10:42
kikocarlos!10:48
=== kiko can't believe he missed carlos
=== mdz [n=mdz@ca-studio-bsr1o-251.vnnyca.adelphia.net] has joined #launchpad
bradbkiko: So, the test fragment I showed above passes now. Should I merge this with your patch?10:51
kikobradb, sure -- if the tests run, it's all good :)10:51
bradbWhat's the reviewer tag on it?10:51
kikodid you look at my patch at least?10:51
bradbno10:51
bradb:P10:51
=== bradb looks
=== sivang [n=sivang@box79162.elkhouse.de] has joined #launchpad
bradbHm, I'll have to fix a few things.10:53
bradbe.g. tal:attributes="for string:assigned_to_nobody"> should be using view/assigned_to_nobody10:53
sivangmpt: around ?10:55
mptsivang: yo10:56
kikobradb, that's not really the same thing, but okay10:56
kikoit's trivial10:56
=== Mez [n=Mez@cpc3-lich4-3-0-cust227.brhm.cable.ntl.com] has joined #launchpad
bradbkiko: Also, I'm wondering: "raise AssertionError" doesn't seem very self-documenting. Maybe something like "raise WidgetInputError('Unknown assignee option selected')"?11:05
kikobradb, it's an assertion error, it should never happen11:07
kikoI don't like wasting time cooking up exceptions that are basically assertions with another name11:08
kikofeel free to change if you like though11:08
bradbkiko: "wasting time cooking up..." -- WidgetInputError is the exception documented in IInputWidget.getInputValue. :)11:08
kikomy point is that you had nothing there11:09
kikoit's about 10 extra calories looking up what the right exception is11:09
kikoyou saved up those calories by omitting the exception11:09
=== bradb feels the bulge
kikoI spent 1 calorie by adding a raise AssertionError11:10
sivangmpt: if I get the spec straight, LaunchpadIntegrationHelpPage talks about what will open to the user when he choses from the lp integration menu itesm "Get help" ?11:10
mptsivang: yes11:11
kikoI am fine with coding Properly, bradb, but coding Cheap is often better than coding Incomplete. :)11:12
bradbkiko: BTW, using by not using view/assign... attributes you hardcoded a string as "assigned_to_nobody", when the string is actually "assign_to_nobody", it appears.11:12
carloskiko, ?11:13
kikobradb, hmmm. AFAICR the labels worked correctly11:13
bradbkiko: They would have, because the id and for attributes were consistently incorrect ;)11:14
sivangmpt: I think I have an idea how to implement the client caching and retrival of help info from launchpad, should I outline my proposal on that same page? In which stage of implementation are you with the actual launchpad page?11:14
kikobradb, I could have made the same mistake using view/assign...11:14
bradbkiko: Yep, and it would have raised an exception. :)11:15
kikowhy?11:15
bradb(which is exactly what just happened here when i threw a view/ in front of those string literals.)11:15
kikoah11:15
kikowell11:15
kikoto be honest, that sort of error matters like 0.000000001% on the scale of things :)11:16
sivangmpt: (ofcourse , I assume we discuss this as post breezy goal, since we're effectibely in FF)11:17
=== Lovechild [n=dnielsen@0x50c71cc7.adsl-fixed.tele.dk] has joined #launchpad
sivangs/b/v/11:17
mptsivang: Provided that the Ubuntu side of things is pointing at the right URLs, Launchpad can change what appears at those URLs regardless of any freeze11:18
sivangmpt: sure, that also needs a discussion. When will be the right time to talk about the having stuff on the clinet side?11:19
sivangmpt: other then that, a couple of things I think would be nice to have on the help page is:11:20
sivang1) links to frequent occuring issues . (if you're alsa doesn't work out of the box click here)11:21
sivang2) Allow individuals to lis them selves as support sources.11:21
sivangofcoure in (1) it's issues and their usual remedies11:22
bradbkiko: So, I've looked it over, made the small fixes mentioned above. Should I go ahead and merge with an r=[bradb] ?11:23
kikoyes11:23
kikothanks brad11:23
bradbno problem, thanks for the patch11:23
sivang3) have support "groups" as part of the support source; peopel with common expertise that can help on that field, on which a customer/user can dipatch a problem / question and expect an authoritive advice11:24
sivangand on top of this, MaloneSupportINtegration would be aweseom , although I asume is still far on the development queue :)11:25
bradbsalgado: any chance of some portlet mania love today?11:25
mptsivang: The right time for the client side was last month, and afaik it's already implemented11:26
mptsivang: As for the server side, those are interesting ideas, though probably for the future11:26
mptbecause I over-specced it, it's just going to be a wiki-style page for now.11:27
sivangmpt: on the client side you mean, the support information is cached locally and available when not connected to a network as well? the client side currently opens a web browser with the right link, that's all11:28
mptyes, opening a Web browser is what I meant11:29
mptsivang: Will you be at UBZ?11:29
sivangmpt: ah, well you mention on the spec the possibility to have apps fetch each his respective support info and let user see it offline11:29
sivangmpt: UBZ ? 11:29
mptsivang: https://wiki.ubuntu.com/UbuntuBelowZero11:30
=== carlos -> bed
carlosgood night!11:31
carlosmpt, do you need anything from me?11:31
mptcarlos, when you wake up have a look at mpt@canonical.com/launchpad--translation-cleanup--011:32
carlosok11:32
mptAnd see if you can fix any of the XXXs :-)11:32
kikocarlos, do that /last/ :-)11:32
mptWell, it's TranslationReview11:33
kikompt, carlos already has a pretty long plan for when he wakes up :)11:33
mptHow urgent is that supposed to be?11:33
kiko(for the rosetta 1.0 release)11:33
carloskiko, sure ;-)11:33
kikoit's urgent, just post 1.0-release, which was supposed to be tonight11:33
mptoh11:34
mptwill it be?11:34
sivangmpt: ah nice, I didn't know it was going to be in Canada :)11:34
=== mpt maybe should [trivial] the "Rosetta sucks in Konqueror" fix in that case
carlossee you11:34
mptg'night carlos11:35
sivangmpt: hm, I don't know yet if I will - will you be interested to discuss those further there?11:35
mptsivang: If you are, you could request a BoF on it, and even if you aren't, you could put the beginnings of a spec in the wiki11:35
sivangmpt: would you like me to add my ideas on that same spec? or should we opena new pag for it?11:36
mptsivang: Put it in a "Discussion" section at the bottom11:39
salgadobradb, sorry, dude. I was in a hurry today. will try tomorrow morning. 11:40
bradbsalgado: no worries11:40
salgadobradb, btw, I just saw that there's conflicts on that branch11:40
bradbhmph11:41
sivangmpt: ok, I wil. That's actually pretty darn interesting part in Launchpad. that and MaloneSupportIntegration11:51
mptsivang: sure ... Sorry I'm a bit distracted from it right now :-)11:56
=== Keybuk [n=scott@syndicate.netsplit.com] has joined #launchpad

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