/srv/irclogs.ubuntu.com/2010/06/02/#launchpad-dev.txt

mtaylorthumper: if I'm going to propose some work on launchpad and I want to get direction approved, should I file a blueprint or a bug?00:00
mtaylorthumper: or should I write a patch containing a user story and submit that :)00:00
thumpermtaylor: you should have a pre-implementation call :)00:01
lifelessmtaylor: chat with a dev00:01
lifelessmtaylor: everything else is makework.00:01
lifelessmtaylor: you could chat on the lp-dev list, here, or on voice00:01
mtaylorlifeless: ok.... just wanted to be sure I was prepping for the right thing00:02
lifelessif you need a persistent record, I'd start with the list, or a bug [perhaps]00:02
=== Ursinha is now known as Ursinha-afk
mtaylor_I_ don't need a persistent record - I just wanted to make sure I was being friendly and all00:02
lifelesswhats your ideal, when someone does stuff for dribble?00:03
mtaylorlifeless: depends on scope of work - if it's a new feature or something decent sized, we ask them to file a blueprint00:03
lifelesswhat do you use the blueprint for?00:03
mtaylorlifeless: tracking work against the task00:04
mtaylorlifeless: they'll then tie their bzr branch to that blueprint, we'll use the blueprint during planning meetings to check progress on it00:04
mtayloretc.00:04
lifelessmtaylor: but not for deciding on direction :)00:04
mtaylorlifeless: well, not directly, no... although we'd certainly like to :)00:05
mtaylorlifeless: but fair enough00:05
mwhudsonlifeless: say, do you have any particular opinions about pyunit-compatible test runners?00:33
lifelesswhy yes, I do00:34
mwhudsonlifeless: which would you recommend? (he asks, half expecting "bzrlib's")00:34
lifelesstestrepository if you can00:35
lifelessfailing that testtools.run00:35
mwhudsonoh, testtools has a runner?00:35
mwhudsondidn't know that00:35
lifelessand failing that your own glue to bzrlib.tests.$stuff00:35
lifelessmy current absolute favourite is testrepository00:35
lifelesswhich is generally used via subunit.run00:36
lifelesswhich backs onto testtools stuff00:36
mwhudsonlifeless: i'm currently writing up a python programming practices document for the $censored work00:36
mwhudsonso i get to inflict my opinions on how some things should be done00:37
lifelesshave I shown you testrepository and all the bits00:37
mwhudsoni'm aware of it00:37
lifelessI think you should experience before recommended00:37
lifelesss/ed/ing/00:37
mwhudsonyeah00:37
lifelessso, apt-get install testrepository00:38
lifelessthis doesn't do test discovery yet, it will trivially when someone gets around to testtools + discovery [foords thing] glue00:39
lifelessI should ask, do you have say, 10 minutes for a quick tour ?00:39
mwhudsonyes00:40
mwhudsonah, i was going to ask about discovery00:40
lifelessit would be good to add that00:40
lifelessperhaps you could find a day and JFDI ?00:40
mwhudsonperhaps00:40
lifelesslet me see, how hard would it be00:41
lifelesshttp://pypi.python.org/pypi/discover/0.3.200:41
* mwhudson looks at unittest2 and finds nothing that looks particularly good, apart from the discovery stuff00:43
lifelessyeah00:44
lifelessI asked if he'd contribute to testtools00:44
lifelessbut apparently it was too hard. Or something.00:44
lifeless<- a little bitter00:44
mwhudson:(00:45
mwhudsoni think i told him to look at testtools at pycon 200900:45
lifelessanyhow00:45
lifelessshiny shiny stuff00:45
lifelessso, do you have something small with a test_suite method ?00:45
mwhudsonum00:45
mwhudsonno00:45
lifelessif not, make something small with a test_suite method (because thats something that stock pyunit, and thus testtools.run, can support)00:46
lifelessjust00:46
lifelessfrom testtools import TestCase00:46
lifelessclass foo(TestCase):00:46
lifeless def test_pass(self):pass00:46
lifeless def test_fail(self):self.fail('sad')00:47
brycehbzr question...  I have a branch with an html file in it.  I want whenever I commit to the branch that it updates a "last-updated-date" line in the footer.  Any way to set up bzr to do this easily?00:47
lifelessdef test_suite():00:47
jelmerbryceh: see the bzr-keywords plugin00:47
lifeless    return unittest.TestLoader().loadTestsFromNames('foo')00:47
lifelessin foo.py00:47
brycehjelmer, thanks00:47
lifelessmwhudson: we can test this works with 'python -m testtools.run foo.test_suite'00:48
lifelessmake another file, .testr.conf00:48
lifeless[DEFAULT]00:48
lifelesstest_command=python -m subunit.run $IDLIST00:49
lifelesstest_id_list_default=foo.test_suite00:49
lifelessEOF00:49
lifelessthen, testr init; testr run00:49
lifelessshould show you one failure00:49
lifelesstestr run --failing00:49
lifelessshould run the one failing test00:49
lifelesstour over00:49
lifelessfor more detail, keep chatting, and/or read /usr/share/doc/testrepository/MANUAL.txt00:50
mwhudsonok00:50
lifelessI totally totally depend on the 'run only failing' stuff now that I have it00:50
* jelmer admits to also being a total testr fanboy00:51
mwhudsonhm yeah that looks pretty neat00:51
mwhudsonpy.test had this --looponfailing thing that i remember using a bit, ages ago00:51
lifelesssounds similar00:52
lifelessthis is not coupled to test runner or python00:52
lifelessas long as there is an interface, and it can output subunit, it works ;)00:52
mwhudsonso where should discovery fit?00:53
mwhudsonas an alternative to test_id_list_default ?00:54
lifelessso00:55
lifelesssmall bit of glue in subunit.run00:55
lifelessthen you'd do00:55
lifelesspython -m subunit.run --discover [discovery arg]00:55
lifelesswhen running it by hand00:55
lifelessfor .testr.conf you'd do00:55
lifelesstest_id_list_default=--discover <whatever you decided on>00:56
lifelessthats the entire set of changes needed AFAICT00:56
mwhudsonah, so subunit needs to change a bit?00:56
lifelesstiny tiny00:57
lifelessnot the protocol, just the glue to setup a test list00:57
lifelessrather than calling the unittest loader with the parameters its given00:58
lifelessit needs to call the discover loader00:58
lifelessthats it00:58
mwhudsonright00:59
mwhudsonok well it doesn't sound too hard...00:59
lifelessnote that this workflow works with trial --reporter=subunit too00:59
lifelessfor huge value of entertaining00:59
mwhudsonright, and i guess trial already has its own approach to discovery01:00
lifelessyes01:00
lifelessI'd like bzr switch to stash the .testrepository with the branch01:04
lifelessor perhaps I want a push/pop thing in testr01:04
mwhudsonlifeless: i guess i could find this out myself, but does trial have anything like the load_tests() protocol?01:06
lifelessit honours test_suite01:06
lifelessI would like to teach it load_tests01:06
lifelessbecause load_tests is much better01:06
lifelessmtaylor: ^ also another reason to use cppunit -or- make gtest talk subunit01:07
mwhudsonlifeless: why is load_tests 'much' better?01:08
mwhudsoni can see how it's a bit more convenient01:08
lifelesstest multiplication is a lot easier with it01:09
lifelessless duplication01:09
lifelessand no hard-coding of TestSuite class01:10
lifelessand no hard coding of loader01:10
lifelessthe whole process becomes more easily mutated, 2-line patches to change things, rather than change-per-source-file01:10
mwhudsonah yeah, that makes sense01:12
marslifeless, you wouldn't happen to have any idea why the zope testrunner + subunit would produce a partial traceback like this?: http://pastebin.ubuntu.com/443072/02:39
lifelessmars: that looks truncated02:51
marslifeless, yes.  I thought a buffer in my own code was holding the output, but it turns out to be somewhere in the testrunner itself.02:52
marslifeless, is the subunit protocol written down anywhere?  I'm wondering if that "error: ..." line is correct?02:52
marslines that say "failure: " end with "[ multipart "02:53
marslifeless, found the protocol, EBNF in the README.  Clever.03:00
lifeless:)03:02
lifelessso you have the simple output there03:02
lifeless[\n03:02
lifelessthere should be a trailing ]\n03:02
lifelessand the output of a simple attachment like that is done at once, so it has nearly no chance of not completin03:03
lifelessg03:03
lifelessif its blowing up in stopTest03:03
lifelessone possibility is stdout being closed or something03:03
lifelessbut that would fly in the face of actually *getting* that traceback03:04
marsyeah :/03:09
marslifeless, could it be that the parent process (that watching the subunit stream) choked on some child process output?03:09
marssilently ate it maybe?03:10
marsthread dump in the parent says nothing out of the ordinary:03:11
marsThread 103:11
mars#0 0x00007f535ef0cdc2 in select () from None03:11
mars#1 0x00007f535ec39784 in time_sleep (self=<value optimized out>, args=<value optimized out>) from /build/buildd/python2.5-2.5.2/Modules/timemodule.c03:11
mars/var/launchpad/tmp/eggs/zope.testing-3.9.4-py2.5.egg/zope/testing/testrunner/runner.py (521): resume_tests03:11
marsaccording to the code and thread dump it looks like the parent is running on the while-input loop03:19
lifelesshow long does this take to trigger ?03:19
lifelessand is it reliable ?03:19
lifelessif its not too long, you might try running the child under strace03:19
lifelessas an ugly debugging hack03:19
marsnot reliable, maybe 40% failure rate, takes 2 hours to trigger with a full suite run.03:19
lifelessalso is it only on that test, or a general sort of thing?03:19
marsit happens anywhere in the windmill portion of the suite03:20
lifelessdoes it happen if you just run windmill?03:20
marsthat is why I really really wanted that full traceback :)03:20
marslifeless, not in my testing, no03:20
marsand it doesn't happen on buildbot either03:21
marsjust on ec203:21
lifelessand you can trigger it locally running everything ?03:21
lifelessor on ec2 w/windmill only ?03:21
marsnope03:21
marsonly when running the full suite, including the windmill suite, on ec203:21
lifelessbugger03:23
lifelessuhm03:23
lifelessbuffer limit ?03:23
marshmm03:23
lifelessoh03:23
lifelessyou use wait() right03:23
lifelessIIRC that can trigger on anything in your process group03:24
lifelesswant to bet that there is a child of a child which is being allowed to zombie until the child goes, and you're getting a signal on that child-of-child, which you then close the pipe on the immediate child and things go boom03:24
lifelessor something03:24
marswell, this is without using my code, but I can check the zope testrunner - it may .wait() as well03:24
lifelessI'm not terribly convinced of my explanation there03:25
marslol03:25
marsmy first thought was "yay IPC is fun"03:25
marshmm03:28
marslifeless, looking at the zope testrunner code, what you say may be possible.  I would have to think through the process though03:28
marsthere is a note in there how reading the child process (the child layer) can be interrupted by EINTR if something sends SIGCHLD03:29
marsbut it would be really really odd that I have seen the traceback truncated on that stopTest line so many times03:32
lifelessthats true03:34
lifelessOTOH subunit writes in a very predictable pattern03:35
=== magcius_ is now known as magcius
lifelesshow do I tell what version of bzr-loom launchpad has ?04:14
lifelessmwhudson: thumper: ^04:22
mwhudsonlifeless: i guess look at utilities/sourcedeps.conf04:24
thumperprobably quite old05:33
ScottKpoolie: I was thinking about your comments about high dkim verification failure rates.  You might be better off doing dkim verification at the border too and then consuming an authresults header inside LP.05:50
pooliehi scottk06:22
pooliedo you mean my speculation that many of them may have inadvertently broken headers?06:22
poolietwo more thoughts there:06:22
poolie1- it's much easier for me to land code into the bit of launchpad that processes incoming mail than it is to do that _and also_ get sysadmins to set up something in the border MTA06:23
poolie2- i'd like to hope that we don't actually damage the mail on the way from our DC border in to the incoming queue06:23
poolieimbw06:23
pooliebut i thought i'd try verifying them there first and if it turns out 100% are broken, i guess we'll know06:23
=== almaisan-away is now known as al-maisan
mwhudsongiven that we successfully verify gpg-signed mail, we can't damage it that badly (although i guess that doesn't sign headers?)06:49
=== jtv is now known as jtv-eat
henningejtv-eat: the query looks acutally quite simple, given that I already have the product id and the sourcepackagename(s).09:18
henningehttp://paste.ubuntu.com/443212/09:18
=== mthaddon changed the topic of #launchpad-dev to: Launchpad down/read-only from 11:00 - 14:00 UTC for a code update | Launchpad Development Channel | Week 4 of 10.05 | PQM is in release-critical mode | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews | Use http://paste.ubuntu.com/ for pastes
deryckMorning, all.11:02
ScottKmwhudson: A dkim signature covers a lot more of the message than a gpg signature.  The one case I've managed to see real success data of a large enterprise trying to do dkim verification on a second tier MTA and not on the border it had a significantly lower verification reliability than cases where I've seen it done on the border MTA.11:29
mwhudsonScottK: that makes sense11:32
* mwhudson goes to bed11:32
=== jtv-eat is now known as jtv
deryckBjornT, ping12:53
BjornThi deryck13:01
=== matsubara-afk is now known as matsubara
=== mthaddon changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 4 of 10.05 | PQM is in release-critical mode | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews | Use http://paste.ubuntu.com/ for pastes
=== Angel is now known as AngelSpy
wgrant /builders is timing out on both production and edge.13:28
noodles775Yep... saw that too :/13:28
wgrantHow's it dying?13:29
noodles775view/other_builders13:29
noodles775wgrant: I'll paste the oops..13:30
wgrantHm. That's a bit odd.13:30
noodles775wgrant: http://pastebin.ubuntu.com/443300/13:31
wgrantAh.13:31
leonardrjamesh, i have a storm question13:37
jameshleonardr: shoot13:38
leonardris it possible to define a global hook equivalent to __storm_flushed__, or do i need to create a superclass/mixin and make everything inherit the behavior?13:39
jameshleonardr: there is an internal event for that, but it is not part of the public API13:40
jameshwhat would you want to use it for?13:41
=== henninge_ is now known as henninge
=== Ursinha-afk is now known as Ursinha
leonardrjamesh: see https://code.launchpad.net/~leonardr/launchpad/test-representation-cache/+merge/2651313:44
leonardri'm invalidating a memcached cache13:44
jameshleonardr: ah.  The event I was thinking of is just fired once in response to store.flush() -- not once per object13:48
leonardrah, ok13:50
leonardrit sounds like a superclass/mixin is the best bet13:50
jameshleonardr: there are also internal "flushed" events for each object, but no way to globally register for all objects13:51
jameshleonardr: note that not all data modifying Storm APIs will result in Python objects being flushed.13:52
leonardrjamesh: I'm talking to stub about that now. are you thinking of his "4) Using Storm for bulk updates, inserts or deletions."?13:53
jameshleonardr: right.  The ResultSet set() and remove() methods13:54
noodles775wgrant: temporary patch - can you check pls: http://pastebin.ubuntu.com/443324/13:54
jameshthere isn't a bulk insert method in Storm, but I doubt you care too much about inserts if you're working with a cache13:55
wgrantnoodles775: Looks fine.13:55
wgrantAre we blaming missing indices for the slow query?13:55
noodles775I'm assuming so, but haven't checked yet... want to get the page back up so we can fix it properly in time.13:56
wgrantYeah.13:56
stubjamesh: store.execute(Update({Person.displayname: 'foo'}, Person.name=='stub')) would be how to get Storm to do updates without clearing the cache (not that we do that, but it would be nice to be able to do that).14:02
jameshstub: you don't even really need to go behind Storm's back like that14:03
stubI thought that would be the blessed approach for bulk updates; didn't think that *was* going behind Storm's back ;)14:04
jameshstub: if I use ResultSet.set() to do a bulk update, you'll only see __storm_flushed__() calls for the objects that are actually live in memory14:04
stubAhh... that would be a better approach for bulk updates ;)14:04
jameshit is really only intended to help you keep local caches up to date (e.g. storing computed values on the Python object) -- not external ones like I assume you're talking about14:05
stubSo there is a check to see if the object is live. We could hook in there to clear the cache at that point... although there are still problems we can only solve at the database level. Not sure if they are problems we really need to worry about at this stage.14:06
stubOh... no we couldn't since we won't know the keys :-(14:06
=== thekorn_ is now known as thekorn
deryckDoes sinzui have a mark-released button feature again?  A script?  Or too much time on his hands? :-)14:47
sinzuideryck, I used my script from *before* the feature that I had to retracted. I discovered we failed to update a lot of bugs on 10.04, 0214:54
bacreviewers meeting starting now15:00
gmbderyck, bug 386757 has been fixed for malone, hasn't it?16:17
mupBug #386757: JavaScript for subscribing should be refactored for reuse <Launchpad Bazaar Integration:Fix Released by rockstar> <Launchpad Bugs:Triaged> <https://launchpad.net/bugs/386757>16:17
gmbAh, or am I getting confused about branches that have landed but don't actually fix the bug?16:18
deryckgmb, not really fixed completely.16:19
gmbderyck, Ah, okay.16:19
deryckgmb, I did some work, rockstar did some work, and once we have state on the bug subscriptions, then we can do more work to unify our approaches.16:20
deryckthough I think rockstar went really different from my work16:20
gmbderyck, Okay, I'll add it to the subs story.16:20
gmbAnd we can take a look at it later.16:20
deryckgmb, yeah, we should look again late in the UI refactor for this story.  It will most certainly have to touch the js subscribing code.16:20
gmbRight.16:20
rockstarderyck, I think my work was the culmination of discussions you and I had at the lazr-js sprint/UDS16:21
rockstarderyck, also, I have a branch that I've been trying to get back to that does the wizard widget, so we should have that at some point as well.16:22
deryckrockstar, right, I knew we talked about it.  I just meant it's more different than alike to what we have now in bugs.  but better, definitely.16:23
rockstarderyck, ah yes, because branch subscriptions have state, and you had planned to add the same to bugs.16:24
deryckrockstar, exactly.16:25
deryckSo I think it will line up nicely with our subscriptions refactor the next couple months.16:25
rockstarderyck, sweet.16:29
henningesinzui: I have a question about packaging if you have 2 minutes ;)16:34
sinzuiI can help16:35
henningesinzui: Is it correct that we are now copying packaging links whenever a new distroseries is created?16:35
sinzuiYes. they were copied.16:35
henningesinzui: for maverick or for all series?16:36
sinzuifor maverick using the script that bootstraps soyuz16:36
sinzuiWhen we copy the packages from lucid to maverick and started the builds, we also copied the packaging links16:37
henningesinzui: and that will happen on each new series?16:38
henningein the future?16:38
sinzuiyes.16:39
henningesinzui: thanks, great help. ;)16:39
sinzuiIt is only for Ubuntu because only Ubuntu uses soyuz16:39
=== Ursinha is now known as Ursinha-lunch
henningesinzui: well, it looks like only Ubuntu supports packaging anyway, at least UI-wise.16:41
henninge"+ubuntupkg" ...16:41
sinzuicorrect16:42
rockstarhenninge, yes, if you try and build for anything but Ubuntu, you can really bugger the build farm. abentley knows from experience.16:45
henningerockstar: cool, that makes things easier for me, too.16:47
=== matsubara is now known as matsubara-lunch
=== salgado is now known as salgado-lunch
=== al-maisan is now known as almaisan-away
abentleynoodles, why did you turn buildbase.queuebuild into a staticmethod?17:24
=== deryck is now known as deryck[lunch]
=== salgado-lunch is now known as salgado
=== Ursinha-lunch is now known as Ursinha
=== matsubara-lunch is now known as matsubara
=== leonardr is now known as leonardr-afk
=== deryck[lunch] is now known as deryck
=== leonardr-afk is now known as leonardr
=== EdwinGrubbs is now known as Edwin-lunch
thumperjelmer: http://launchpadlibrarian.net/49567000/chicken-chicken-git-mirror.log19:23
* maxb ponders creating a dev.launchpad.net/FailingBzrSvnImports to gather common failure cases, and wonders if some such thing exists already19:29
maxbAlso, what is the current situation with svn imports requiring a username password? Does that still require losa intervention on the import slaves?19:30
marsgary_poster, ping, buildout question, when you have some spare time19:30
gary_postermars, what's up?19:33
marsgary_poster, being annoyed by buildout picking the first zope.interface it sees, then barfing when it reads versions.cfg and realizes that it needs an older zope.interface19:35
marsgary_poster, just a sec, ran it through -vvvv, and it says there is a version conflict when loading zc.recipe.testrunner19:37
marsso it could be that zc.recipe.testrunner needs a newer zope.interface19:38
gary_posterok19:38
gary_posterare you specifying the version of zc.recipe.testrunner?19:38
marsgary_poster, yep.  According to zc.recipe.testrunner, it does not need an explicit zope.interface19:39
gary_postermars, sounds odd.  You have a branch for me to look at?19:40
marsgary_poster, yes, I'll push the changes19:40
gary_posterok19:41
marsgary_poster, bzr branch lp:~mars/lazr-js/1.019:42
gary_posterk19:42
marsgary_poster, also worth noting: the Makefile uses a LAZR_SOURCEDEPS_DIR variable, and mine points to ~/.buildout/19:43
gary_posterk19:43
marsgary_poster, zope.interface-3.5.1 is in the global download-cache, but it doesn't want to use it.  The global eggs/ directory only has zope.interface-3.5.3 (maybe because buildout refuses to build the 3.5.1 egg)19:45
gary_postermars, the buildout.cfg file is trying to do something that appears to be against your goals.  ...wanna talk on mumble?19:49
marsgary_poster, sure19:50
gary_posterk, I'm there :-)19:50
lifelessmars: there was a import failures wiki page some time back21:04
marsmaxb, ^21:05
lifelessbah21:08
lifelesssorry mars21:08
marsnp :)21:09
marslifeless, gary_poster, by the way, by hacking our testrunner I managed to get it to spit out the full windmill suite hang traceback: http://pastebin.ubuntu.com/443544/21:28
lifelessgrah21:28
mars?21:28
marsoh21:29
gary_poster"Look," Gary said intelligently, "a ValueError!"  Though it does look like something in subunit on the face of it.21:29
marslifeless, ?21:29
lifelesschecking the code21:29
lifelessso, error is not None - this is a plain pyunit api call21:30
lifelessrather than a lovely shiny testtools one21:30
lifelessstopTest was called21:31
lifelessand then the zope testrunner formatter is calling addError21:31
lifelessfrom within stopTest21:31
lifelessthats odd21:31
lifelessthe error object is failing in _exc_info_to_string21:32
lifelessso err is not a exc_info tuple21:32
lifelessits something else21:32
lifelesslook at zope/testing/testrunner/formatter.py21:32
lifelesswhats the easiest way to get that for me? I have a 2 month old checkout of lp21:32
lifelessmars: ^21:33
marslifeless, looking21:34
marslifeless, check in eggs/zope.testing-3.9.421:34
marsdo you have that version?21:34
lifelesssec, starting the vm21:35
lifelessyes, I do21:35
lifelesswell, a py2.5.egg21:35
lifelessshould be good enough21:35
marsthat's the one21:36
lifelessok so this is subunut glue21:36
lifelessand its calling _get_text_details21:36
lifelessyes, its buggy21:36
lifelessI'll put a patch up21:37
marslifeless, wow, thanks!21:38
lifelessok, grab lp:~lifeless/zope.testing/subunit21:41
lifelessI don't know if passes tests, because it blows up when I follow the getting started instructions21:42
marsok21:42
marslifeless, it will take a while to run a new round of tests.  A few hours :(21:42
marsit will probably have to wait for tomorrow.21:43
lifelesshttps://code.edge.launchpad.net/~lifeless/zope.testing/subunit/+merge/2663821:43
lifelessmars: so anyhow, its something blowing up in another thread, but the error reporting codepath was broken21:43
marsok21:44
* mars waits for the diff to update21:44
lifelessso we'll still expect an error21:44
lifelessbut it should be relevant to the windmill tests this time21:44
mars\o/21:44
marsthat would be a big step forward21:45
marsHurray for cascading failures!21:45
lifeless:)21:45
lifelessactualy, hurray for untested code :P21:45
marslifeless, many thanks.  I'll let you know how it goes.21:49
lifelessplease do21:49
lifelesssidnei: when you get back21:49
lifelesshttps://code.edge.launchpad.net/~lifeless/zope.testing/subunit/+merge/2663821:49
marsby coincidence, this may have been the source?  Exception in thread Thread-3 (most likely raised during interpreter shutdown):21:53
marsTraceback (most recent call last):21:53
mars  File "/usr/lib/python2.5/threading.py", line 486, in __bootstrap_inner21:53
mars  File "/usr/lib/python2.5/threading.py", line 446, in run21:53
mars  File "/var/launchpad/tmp/eggs/windmill-1.3beta3_lp_r1440-py2.5.egg/windmill/server/https.py", line 398, in start21:53
mars  File "/usr/lib/python2.5/SocketServer.py", line 218, in handle_request21:53
mars<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'error'21:53
lifelessvery likely21:53
lifelessthe check was a threading thingy21:53
marsso my 'reprint the exception' code in bin/test actually spat out the entire error21:55
marswho knows why it was getting truncated21:56
marswait, spoke too soon.  There is nothing in the on-disk capture file, just the console.  May have just been a luck break.21:57
=== salgado is now known as salgado-afk
maxbIs there a good way to hold a conversation with the requester of a vcs import?22:09
lifeless'contact this person' in launchpad22:09
maxb... and manually keep the whiteboard up to date with the state :-/22:10
lifelessyes :(22:10
maxbIn a most perplexing move, someone's trying to register a ~lrcshow-x/lrcshow-x/trunk vcs-import when ~vcs-imports/lrcshow-x/trunk already exists22:12
mwhudsonmaxb: hey, at least you can see who registered the import now22:12
mwhudsonthat was one of the more frustrating problems with the ye olde system22:12
maxbBut given the history of their svn repository, they clearly don't understand version control very well22:12
lifelessmwhudson: so what were your testing framework thoughts after looking at stuff yesterday22:17
mwhudsonlifeless: i admit to getting a little sidetracked22:18
mwhudsonlifeless: i think discover + subunit + testr run looks pretty nice though22:19
maxbCould someone look up OOPS-1614M3672 for me? (occurred attempting to rename a vcs-import branch)22:29
lifelesssec22:29
lifeless  Module lp.code.model.branchnamespace, line 135, in validateRegistrant22:29
lifeless    % (registrant.displayname, owner.displayname))22:30
lifelessBranchCreatorNotMemberOfOwnerTeam: Max Bowsher is not a member of lrcShow-X team22:30
lifelesszomg 500ms of sql time there22:30
thumpermaxb: arse22:30
thumpermaxb: was that over the api?22:31
maxbNo, web ui22:31
thumpermaxb: what did the form look like for the owner?22:31
thumpermaxb: you should have had a dropdown22:31
thumpermaxb: if you didn't, it is a bug22:32
maxboh, I see22:32
thumpermaxb: BTW I think you are doing an awesome job with the imports22:33
maxbI have edit perms by virtue of being in ~vcs-imports, but that means I can edit a branch of which I'm not in the owner team22:33
maxbSo the vcs-imports special edit hack has been incompletely applied22:33
thumpermaxb: you should be able to edit the branch yes22:34
thumpermaxb: however you can only assign to a team you are a member of22:34
thumpermaxb: the owner widget should be a drop down for you22:34
maxbI am not trying to change the branch owner. It is a dropdown. It's objecting about the fact that the existing owner of the branch is not one that I would be permitted to assign the branch to, despite the fact that I can edit the branch22:35
maxbi.e. it's over-aggressive validation. I suspect it's never been an issue before because ~vcs-imports have often been ~bazaar-experts previously22:37
thumperoh22:37
thumperarse22:37
thumperthis is exactly the same problem as with the source package branches22:37
thumpermaxb: can you file a bug please22:37
maxbSure22:37
thumperthanks22:37
maxblifeless: may I have some more of the traceback?22:44
mwhudsonthumper: an oops is a better result than maxb accidentally assigning the branch to himself i guess :-)22:46
sidneilifeless, i'm done for the day, but will look into it tomorrow22:58
lifelesssidnei: tresquis is on it22:58
lifelesssidnei: but thanks22:58
maxb588943 ftr23:08
=== matsubara is now known as matsubara-afk
sidneilifeless, even better. thanks!23:17
wgrantHmm.23:27
wgrantIt looks like if you have a 1.0 API override (because the devel API has changed, and we need to retain compat), beta (which came before 1.0) doesn't inherit it.23:27

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