/srv/irclogs.ubuntu.com/2012/05/21/#launchpad-dev.txt

StevenKlifeless: ^ Did you get distracted?00:58
lifelessyes01:00
lifelessStevenK: uhm01:07
lifelessauditorfixture appears to be auditor ?01:07
StevenKHow the heck did I screw *that* up01:08
lifelessNFI01:10
lifelessbut01:10
lifelessyou did :)01:10
StevenKYeah, I'm just about to push --overwrite01:10
StevenKlifeless: It should look better now?01:14
lifelessp[-;;;;;;;;;;;;;;;;;;;;;xccccccccccccccccccbvvvvvvvvvvvvvvvvvvvvv01:20
lifelessuhm, cat.01:20
StevenKHah01:20
lifelessdoes runserver support dynamic port allocation ?01:21
StevenKlifeless: From what I saw, yes.01:23
lifelessStevenK: you did something similar to txlongpollfixture, I presume; that did what I did for rabbit, which doesn't support dynamic port allocation01:23
lifelessa better thing, if its doable is to just run runserver and watch what port it chooses01:24
lifelessStevenK: that said, if this works, great.01:24
StevenKWhich it doesn't.01:24
StevenKBut I've hit the limit of Django-ness -- I dislike the idea of forking off python to run it01:25
lifelessStevenK: my main concern looking at is is that we'll have the same bugs that rabbitfixture has had w.r.t. race conditions on startup (such as the timeout logic); we should perhaps consolidate the common code into fixtures01:25
lifelessStevenK: running django in a subprocess is entirely appropriate01:25
lifelessStevenK: we /do not want/ to try and import django into our python environment - for multiple reasons, including django having a honking great set of global variables that will collide01:26
lifelesshttps://docs.djangoproject.com/en/dev/ref/django-admin/#runserver-port-or-address-port suggests it does not do dynamic ports.01:26
lifelessStevenK: ok, so it doesn't work. What happens, specifically ?01:27
* StevenK rips out the devnull, so he can see what is going on01:29
lifelessStevenK: oh, I see the devnull. Don't do that :)01:29
StevenKHm, smoking gun01:30
lifelessStevenK: you can capture the stdout to e.g. the logfile01:30
lifelessStevenK: and you won't lose information that way01:30
StevenKdevnull is for stdin01:30
StevenKHowever, for this I wanted the output to the terminal01:30
StevenKpython manage.py is all well and good -- when you're in auditor's directory01:31
lifelessbleep, I misread.01:31
lifelessyes.01:31
StevenKSo I wonder if auditor is hiding somewhere I can call it ...01:32
lifelesswhy did you want terminal? To see what was up ?01:32
lifelessThe failure message should have given you the log file ocontents.01:32
StevenKlifeless: Nope, I was just getting the raise Exception("Timeout ....01:32
lifelessStevenK: so you have a fixture object01:33
lifelessthat.getDetails() should give you a path in, for future reference.01:33
lifelesse.g. f.getDetails().items()[0].itertext()01:33
StevenKlifeless: In _start(), that's going to be self, isn't it?01:33
lifelessStevenK: yes, but _start doesn't need to change.01:33
lifelessStevenK: you already attach the logfile; the caller can choose to look01:34
lifelessStevenK: TestCase.useFixture attaches the details before it sets up, IIRC, so it should be doing this.01:34
StevenKlifeless: I think _start() does need to change, since the error is "python: can't open file 'manage.py': [Errno 2] No such file or directory" :-)01:34
lifelessStevenK: doesn't need to change w.r.t. reporting :P01:34
lifelessStevenK: you need to introspect to get the path to the auditor egg, txlongpoll should have example code.01:35
StevenKtxlongpoll or txlongpollfixture?01:35
lifelessthe latter01:35
StevenKlifeless: Right, I see how txlongpollfixture does it. But auditorfixture doesn't have parts/auditor :-(02:00
StevenKlifeless: And I have a [auditor] section in buildout.cfg02:01
* wgrant cries02:08
wgrant            for team in administers_and_in:02:08
wgrant                if (bug_supervisor is not None and02:08
wgrant                    not team.inTeam(bug_supervisor)):02:08
wgrant                    continue02:08
wgrantinTeam is not preloaded02:08
lifelessStevenK: uhm, your auditor section doesn't define an entry point02:09
StevenKlifeless: It needs to? My buildout-foo is very weak02:09
lifelessStevenK: I *think* so, it generates the right interpreter etc02:10
lifelessI just realised, running 'python manage.py' is wrong because of that, it should be a buildout created python executable02:10
lifelesswhich the entry points are used to do02:11
StevenKlifeless: I still need a path to manage.py, I don't think it matters which interpreter I use.02:12
StevenKtxlongpollfixture somehow ends up with parts/txlongpoll02:12
lifelessuhm02:14
lifelessnot sure where to pull on this one02:14
lifelessyou don't run the manage.py from auditor directly02:15
lifelesspython version mismatch etc stuff02:15
StevenKNot even the unpacked egg?02:15
lifelessindeed02:15
lifelesstxlongpollfixture doesn't either.02:15
StevenKAh. So what should I do?02:18
lifelessso the basic idea02:18
lifelessis you have a function which can be an entry point02:19
lifelesse.g. def foo(argv=None):02:19
lifeless    if argv is None: argv = sys.argv02:19
lifeless    ...02:19
lifelessthat is probably inside manage.py already02:19
lifelessyou point at the *python path* to that function, which will be inside auditd (and you'll probably know far more about django glue than you want to by the time you're done)02:20
lifelessbuildout generates a local executable for you in bin/ when you set scripts=02:20
lifelesssee entry-points = twistd-for-txlongpoll=twisted.scripts.twistd:run02:20
lifelessscripts = twistd-for-txlongpoll02:20
lifelessfor instance, in LP's buildout.cfg02:20
lifelessso you'll have something like02:20
lifelessentry-points = auditord-manager=auditord.manager:run02:21
lifelessscripts = auditord-manager02:21
lifelessthen, the fixture runs bin/auditord-manager02:21
lifelessprobably adjusted to be os.path.join(os.getcwd(), 'bin/auditord-manager')02:22
lifelessbecause of the cwd param to Popen02:22
lifelessStevenK: does that make sense?02:23
StevenKlifeless: Barely02:23
StevenKlifeless: So I need a auditord module now?02:24
lifelessyou have one02:24
lifelessthe django app02:24
lifelesswhats the auditord project name ?02:25
StevenKauditor02:25
lifelessauditlog is your module name02:28
lifelessyou need to move / symlink or something manage.py within auditlog from the looks of things02:29
lifelessand ugh yeah the one thing I really don't like about django - settings02:29
wgrantUm02:30
wgrantThat's the one thing?02:30
StevenKHaha02:30
wgrantIt's one of the worst things, but lots of the rest is also hideous :)02:30
StevenKlifeless: And apparently a fixture would be *easy*02:30
StevenK... and other lies I've been told. :-)02:30
StevenKlifeless: I'm not sure what module you want me to jump into?02:32
StevenKauditor.manage seems pointless02:32
wgrantlifeless: Shouldn't manage.py be replaced by a buildout-generated bin/manage?02:34
lifelesswgrant: yes, thats what I'm describing02:35
lifelessStevenK: you have a package 'auditlog'02:36
lifelessStevenK: We have a project 'auditord', with a public name of 'auditor' and package 'auditlog' - I think you should choose one and go with it02:36
StevenKlifeless: I can't!02:37
lifelessStevenK: why not ?02:37
StevenKYou can't call the app 'auditor' if the project is.02:37
lifeless.expand()02:37
wgrantI'm pretty sure you can.02:37
StevenKlifeless: I never picked the name auditord, that was you02:38
wgrantIt just gets a bit odd, due to implicit relative imports.02:38
lifelessok, so, auditor, fine.02:38
lifelessWhat happens if you use the name auditor for the package ?02:38
StevenKsteven@undermined:~% django-admin startproject foobar02:39
StevenKsteven@undermined:~% cd foobar02:39
StevenKsteven@undermined:~/foobar% python manage.py startapp foobar02:39
StevenKError: You cannot create an app with the same name ('foobar') as your project.02:39
wgrantTry it anyway02:39
wgrantIt'll probably work02:40
StevenKI just did?02:40
wgrantYou tried using Django's stupid tool to do it.02:40
StevenKAnd?02:40
StevenKI'd been avoiding Django just fine until you two railroaded me into auditor.02:41
lifelesshttps://code.djangoproject.com/ticket/190802:42
wgrantWell02:43
wgrantI never suggested Django is a good fit.02:43
wgrantIt's really not.02:43
lifeless5 months ago02:43
lifeless    Triage Stage changed from Accepted to Fixed on a branch02:43
lifelessThe bug has been fixed in trunk, apps with same name as project name can be created now02:43
StevenKwgrant: I think that was lifeless02:44
lifelessStevenK: what was me ?02:44
StevenKSuggesting Django02:44
lifelessits a preferred tech02:45
lifelessI've said explicitly that I think its sufficient for the small targeted things we need02:45
lifelessthat it has some very good values around lean-ness, clean& understandable code, and performance02:45
wgrantUm02:46
lifelessand that it may be too heavyweight for some things (like gpg-httpd)02:46
wgrantThe problem is not that it's insufficient.02:46
StevenKAnd then you try and write a fixture and go insane02:46
lifelessStevenK: you're breaking new ground02:46
wgrantIt's that all of the awkward stuff it provides is entirely useless for this sort of service.02:46
wgrantFor auditordloger, the useful stuff it provides over raw WSGI is an ROM02:46
wgrantORM02:46
* lifeless notes that this is a distraction02:47
StevenKClearly you want the app to be called auditor too, which means I need to look at packaging Django 1.402:47
lifelessStevenK: auditlog is a package name, that is the package you need to make a manager.py exist in, it's probably easiest to have it be a new file with contents derived from the django made one.02:47
lifelessStevenK: I do, but even that is a distraction02:48
lifelessStevenK: and, its one that can be solved later. Because nothing in LP will know about *either* auditor or auditlog.02:48
StevenKlifeless: Why does it need to exist under auditlog?02:48
lifelessStevenK: so that buildout can import it.02:48
StevenKBut buildout can import from auditor too?02:48
StevenKauditor/__init__.py exists, so it import auditor should work02:48
lifelesswait, what02:49
lifelessOHHH02:49
lifelesscrazy f*d up layout.02:49
lifelessok, so yes, auditor.manage:run02:49
lifelessand edit manage.py to have a run() method02:49
lifeless(and the usual if __name__ == '__main__': boilerplate02:49
StevenKmanage.py already has __main__ boilerplate02:50
lifelessit does, it needs altering02:50
lifelesse.g. http://paste.ubuntu.com/998398/02:52
lifelessStevenK: btw, we probably want to change auditor from being a django project to being a django app (and then have a project which is for testing created on the fly, and one for prod deployment)02:54
lifelessStevenK: but again, Future Work.02:54
lifelessStevenK: I will make one note on the naming of things; the reason I propose auditord is so that auditor is available for a client library, if you were to decide you want one.02:55
lifelessStevenK: as it is, you'll have to use auditorclient or something instead.02:55
StevenKClient library? Err?02:56
StevenKIt returns JSON, how can that possibly require a client library?02:56
lifelessyou never know your own future :)02:57
lifelessI'm not asking you to rename it, I'm explaining why I'm sticky on the d's - its an easy default and makes it easier for me to think about names.02:58
StevenKI can see a gun and my temple in my future02:58
lifelessI don't think quake3 supports that.02:58
StevenKWho said anything about Quake 3?02:58
StevenKlifeless: bin/auditor-manage can not import auditor.manage02:59
lifelessStevenK: I did, because why not?.03:00
lifelessStevenK: so, thats python path debugging time03:01
StevenKsys.path = ['/home/steven/auditorfixture/parts/auditor', '/home/steven/auditorfixture/bin', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/steven/auditorfixture/eggs/auditor-0.0.1-py2.7.egg', '/home/steven/auditorfixture/eggs/Django-1.4-py2.7.egg']03:02
lifelessand is manage.py present within /home/steven/auditorfixture/eggs/auditor-0.0.1-py2.7.egg ?03:02
StevenKSigh, no.03:03
StevenKI guess that's due to find_packages() in auditor's setup.py03:04
lifelessStevenK: yes, I suspect so03:12
lifelessStevenK: note that its not finding the top level __init__.py at all03:13
lifelessStevenK: so your egg only contains auditlog.03:13
StevenKYes03:13
lifelesshttp://paste.ubuntu.com/998418/03:18
wgrantlifeless: Oh yeah04:01
wgrantlifeless: I discovered on Friday evening that my optimisation of bugsummary was bad.04:01
wgrantlifeless: I'd accidentally typoed so it flushed the journal into the journal, so it was writing to a temp table, not a real one.04:02
wgrantSo it's only about 2.5x faster than before.04:02
wgrants/flushed the jounral into the journal/flushed the temp journal into the temp journal/04:03
wgrantAnd that's with journal FKs removed.04:03
lifelesswgrant: still, 2.5x is fast enough to run two in parallel04:04
wgrantlifeless: I have a cunning plan to avoid having to do that.04:05
wgrantA couple of unresolved issues, but it should work.04:05
lifelessStevenK: that pastebin was to you, should work.04:08
wgrantStevenK, wallyworld_: https://code.launchpad.net/~wgrant/launchpad/bugsummary-v2-app-no-fixed-upstream/+merge/10655704:10
* wallyworld_ looks04:11
wallyworld_wgrant: looks ok to me. lots of code deletion :-)04:17
wgrantwallyworld_: Yup. Thanks.04:17
mwhudsonhttps://bugs.launchpad.net/lava-deployment-tool/+bug/1000819/@@+huge-vocabulary timeouts are known?04:47
_mup_Bug #1000819: uwsgi 1.0.3 no longer available <LAVA Deployment Tool:New> < https://launchpad.net/bugs/1000819 >04:47
mwhudsonhttps://lp-oops.canonical.com/oops.py/?oopsid=OOPS-f6d562060ee52035ead5254827fee6ab\04:48
wgrantmwhudson: Yeah, branch search is criminally bad04:52
mwhudson:(04:53
mwhudsonis it just select from branch where unique_name like '%${TERM}%' or something?04:54
wgrantThe query is awful awful awful04:54
wgrantBut it shouldn't be as slow as it is.04:54
* mwhudson looks at the code04:55
wgrantIt's in the OOPS04:55
wgrantTop statement.04:55
mwhudsoni think my bad version is a lot better than this04:55
wgrantOh04:55
wgrantwut04:55
wgrantSELECT Branch.id04:56
wgrantFROM Branch,04:56
wgrant     Product04:56
wgrantWHERE Branch.product = Product.id04:56
wgrant  AND Product.name LIKE u$STRING)04:56
wgrantI'm pretty sure that comes under "who could possibly think that was useful or a good idea"04:56
wgrantI didn't realise it did that too04:56
mwhudsonOR Branch.url = u$STRING) is my favourite useless bit i think04:56
wgrantWhy?04:56
mwhudsonbranch.url is NULL for !mirror branches04:57
wgrantOh, so it is.04:57
mwhudsonand noone case about mirror branches any more04:57
wgrantNot unique_name, right04:57
wgrantYeah04:57
mwhudsonProduct.name LIKE u$STRING is pretty special yes04:57
wgrantThe theory behind it seems to be "find ALL the things"04:57
wgrantAnd then leave the user to page through the 9s batches.04:58
mwhudsonitym "try to find all the things, but timeout instead'04:58
StevenKApparently, find_packages() looks for __init__.py in directories. I think it lies. :-(04:58
wgrantIt works sometimes!04:58
wgrantmwhudson: Part of the problem is bugtasks.04:58
wgrantmwhudson: Because there's no logical context to search in.04:58
mwhudsonoh right04:58
mwhudsonwell04:58
wgrantSo you have to search everywhere, probably.04:59
mwhudsonyou could look in the context for all the extant bugtasks i guess?04:59
wgrantYeah04:59
mwhudsonbut that gets a bit complicated04:59
wgrantWe introduced that concept with disclosure.04:59
wgrantIt's possible.04:59
mwhudsoncool04:59
wgrantThen I'd do name LIKE '%foo%' or unique_name = 'foo', I think...04:59
mwhudsonseriously though unique_name like $string would be as good as this04:59
wgrantNot sure it needs much more than that.04:59
lifelessStevenK: it does, but it starts with listdir()04:59
lifelessStevenK: did you apply my patch ?04:59
wgrantunique_name LIKE '%foo%' is a bit bad, as it matches the product name.04:59
wgrantBut maybe.05:00
mwhudson(of course, unique_name is only 4 years old or whatever, so much newer than this code)05:00
StevenKlifeless: I was out for lunch with a friend, so if it was a patch to setup.py, I'm sorry but I missed it05:00
mwhudsonwgrant: not saying mine is good, just better than existing05:00
lifeless15:18 < lifeless> http://paste.ubuntu.com/998418/05:00
wgrantmwhudson: With 9.1 we can even use trigram indices to make LIKE '%foo%' very fast.05:00
lifeless(its now 17:00 and EOD)05:00
mwhudsonbug 37259105:00
_mup_Bug #372591: Branch vocabulary and search needs thought and cleaning up <lp-code> <tech-debt> <Launchpad itself:Triaged> < https://launchpad.net/bugs/372591 >05:00
wgrantmwhudson: That title has a few too many euphemisms.05:00
mwhudsonit's a dup of https://bugs.launchpad.net/launchpad/+bug/793830 anyway05:01
_mup_Bug #793830: Branch:+register-merge time out due to substring matching many tables <critical-analysis> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/793830 >05:01
wgrantYeah05:01
wgrantThat's the one that wallyworld was hitting a lot last week05:01
StevenKlifeless: Right, I did miss it -- I scanned backlog until I hit wgrant begging for a review and stopped.05:02
wgrantOh, the prereq or target branch you specified doesn't match a unique_name exactly? Let me just do a 10s search for you.05:02
mwhudsonheh05:02
mwhudsonthat makes the pain less avoidable i guess05:02
mwhudson(my oops was from the suggestions in the 'link a branch' overlay)05:03
StevenKlifeless: error: can't copy 'uditor.egg-info/PKG-INFO': doesn't exist or not a regular file05:09
StevenKEWTF05:09
wgrantmwhudson: I don't know about you, but my distribution of searches is roughly this: 95% of the time it's one of the last 5 branches I touched; 4% I want to search by substring of name in the current project; 1% I want to search by full unique_name (optionally including lp:)05:09
mwhudsonwgrant: certainly "last branch i touched" is a good guess a lot of the time05:12
mwhudsonand in this case it was a mixture of the first two points05:13
wgrantYeah, but ranking like that is hard.05:13
wgrantSo we tend to try to avoid combining them like that.05:13
mwhudsonsolr-as-a-service!05:14
* mwhudson goes back to real work05:14
StevenKmwhudson: We know where you live!05:15
* StevenK stabs PlainPackageCopyJobTests.createCopyJob() for failing05:38
lifelessmwhudson: patches solicited06:08
lifelessmwhudson: if you get tired of doing easy things06:08
StevenKwgrant: Should I need to do anything after running acceptFromQueue() on the PU and then re-running the PCJ?06:19
StevenKwgrant: Since IArchive.getPublishedSources(name=) is returning [] :-(06:20
wgrantStevenK: Sounds like the PCJ is not running.06:23
StevenKOh, it does run, it just raises CannotCopy06:29
StevenKWhich it doesn't tell me06:29
StevenKunique-from-test-packagecopyjob-py-line361-100000 1.0-1 in breezy-autotest (The signer of this package has no upload rights to this distribution's primary archive.  Did you mean to upload to a PPA?06:30
StevenKRight06:30
lifelessStevenK: how are you going ?06:52
=== jam1 is now known as jam
StevenKlifeless: I gave up in disgust07:13
StevenKTrying to get my SPPH linked to PUs working with PCJs07:14
bigjoolswhy are you doing that?07:18
StevenKbigjools: Because we'd like to know who accepted something, and that information is directly realted to the PackageUpload, and PCJs create PackageUploads if needed.07:19
bigjoolssounds like a hack07:20
StevenKHow?07:20
bigjoolsdid you consider any other solutions?07:20
StevenKLike adding yet another column onto SPPH that shows who accepted it? Now that is a hack.07:21
bigjoolslike an audit trail table07:21
StevenKlifeless nacked it07:22
StevenKWhich is what auditor is for07:22
bigjoolslinking to PU is horrible07:22
StevenKBut the acceptance is for the *PackageUpload* there is no publication at that point07:22
bigjoolsnot all SPPHes result from a PU07:22
StevenKOf course07:22
bigjoolsso, yet another nullable FK07:22
StevenKLike sponsor? :-P07:23
bigjoolsyes :/07:23
wgrantNullable FKs are only a problem in theoretical relational algebra.07:23
bigjoolsI'm just interested in how you arrived at this solution07:23
bigjoolsif it's the least horrible then fair enough07:24
StevenKbigjools: It was the solution that made the most sense -- with auditor being used and keeping track of a PU as it moves through the queue, we needed a way to easily look up the PU for an SPPH07:24
wgrantI think it's least bad for now.07:25
bigjoolsthe whole model is a mess :/07:25
wgrantEventually we should replace PU with something that tracks each operation on the archive.07:25
wgrantCopies and uploads.07:25
wgrantAnd overrides.07:25
wgrantAnd deletions.07:25
bigjoolslike an audit table ...07:25
wgrantAudit tables have been vetoed.07:25
wgrantAudit services have not.07:26
wgrantSo StevenK is writing an audit service.07:26
bigjoolswhat SPPH should have been07:26
wgrantSPPH only tracks sources.07:26
bigjoolsnot audit audit ... just a history07:26
wgrantThat'll work OK if we can convince Ubuntu to turn into Gentoo.07:26
wgrantBut I think cjwatson might not approve.07:26
bigjoolslol07:26
bigjoolsthe lack of any recording on who did what action was a terrible omission from the start07:27
bigjoolsbut what is done is done07:27
wgrantAs long as we learn from our mistakes.07:28
wgrantWhich we haven't classically done, but we're hopefully getting better.07:28
bigjoolswe mostly do07:28
wgrantThe audit service will hopefully mean we can do it easily.07:29
wgrantFor everything.07:29
wgrantFor every action.07:29
bigjoolswell I see auditing as two things07:30
bigjoolshysterical data for later analysis07:30
bigjoolsand stuff that affects immediate decisions07:31
bigjoolsI can't see how a service helps with the latter07:31
lifelesswgrant: bigjools: is there a link from bug(task) -> packageupload for fixed bugs?07:41
lifelessbigjools: the service lets you query the actions on an object, so it should handle the latter nicely.07:41
StevenKwgrant: https://code.launchpad.net/~stevenk/launchpad/populate-spph-pu/+merge/105601 now knows about PCJs. You can review it now if you wish, or tomorrow when you're OCR. :-P07:42
StevenKlifeless: Fixing bugs does not use the PU, but the changesfile07:42
wgrantlifeless: There isn't. You'd have to look for the comments07:42
lifelessStevenK: so if ev wants to get from bug -> BPPH, he goes bug -> changesfile -> SPPH -> BPPH  or some insanity ?07:42
wgrantStevenK: I'll do it tomorrow07:42
bigjoolslifeless: the upload code scans the changelog07:43
lifelessbigjools: yah, is the other way round we want07:43
bigjoolsI know :)  just telling you how shit it is right now07:43
lifelessbigjools: so, schema work needed? Thats ok, just want to be sure.07:43
bigjoolsit doesn't store the refs07:43
bigjoolsjust pokes the bugs07:43
StevenKlifeless: Absolutely schema work needed07:43
StevenKlifeless: Anyway, you want the SPPH, not the BPPH07:44
lifelessStevenK: no, we want the BPPH07:44
bigjoolslifeless: bear in mind that ultimately it'd be really nice to serviceify soyuz07:44
lifelessusers don't download sources to fix bugs07:44
StevenKlifeless: The bug is closed when the *source* is uploaded, not the binaries07:44
lifelessbigjools: orly :P :P :P07:44
lifelessStevenK: I know07:44
bigjoolslifeless: bugs are not filed on binaries07:44
lifelessI know that too07:44
lifelessexpand your minds07:45
StevenKI've been dealing with buildout and setuptools today. Maybe my mind will uncurl from the fetal position tomorrow morning.07:45
bigjoolslinking at schema level adds more hurdles to serviceifying07:45
lifelessbigjools: it changes the work needed, thats true.07:46
bigjoolslifeless: what is it that you're trying to achieve?07:46
bigjoolscoz you're breaking your own rule here :)07:47
lifelessotp right now, happy to expand later07:49
lifelesswhat rule am I breaking ?07:49
bigjoolslifeless: report the problem not a proposed solution07:50
bigjoolsno prob anyway, I am about to scoot off for dinner07:50
lifelessThe problem is how to map from bugs (apport ones specifically) to the binary packages that fix problems for users07:51
lifelessev and I are discussing how to do that, and trying to identify big stroke work needed to do that07:51
wgrantPutting that in LP seems like entirely the wrong thing to do.07:53
wgrantIsn't that a daisy thing?07:53
bigjoolslifeless: This info is in the bug comments07:55
lifelessyah, we established that07:55
lifelesssorry, really otp07:55
bigjoolsso where's the problem?07:55
wgrantLike07:56
lifelessparsing bug comments in a service07:56
bigjoolsah "parsing", you didn't say that ;)07:56
wgrantWhy not have an external service do the same thing.07:56
lifelesswe're discussing that as an option07:56
wgrantKeep a list of (bug#, package, version)07:56
adeuringgood morning07:56
wgrantDone07:56
wgrantProblem solved07:56
wgrantNo LP crap :)07:56
lifelesswgrant: needs to cross reference tasks07:56
=== adeuring changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugs: 3.47*10^2
lifelesswgrant: so no, its not that simple.07:56
wgrantlifeless: package is there07:56
wgrantpackage + bug => task07:56
wgrantdone07:56
wgrantno LP crap :)07:56
lifelesswgrant: + series.07:56
wgrant(bug#, series, package, version)07:57
wgrant=> task07:57
wgrantdone07:57
jamwasn't there a simple script (that isn't setuplx08:06
jamsetuplxc) for setting up a dev environment? Just rocketfuel?08:06
jamFor some reason I remember a different command (like lpsetup) from the mailing list08:06
lifelessev: http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm08:10
lifelessev: you have frozen08:28
lifelessev: http://www.apple.com/xsan/08:28
lifelessev: or rather, my desktop has08:28
evI'm back at "connecting..."08:28
evheh08:28
lifelesspower button pushed.08:28
lifelessdoo be doo08:28
wgrantjam: lpsetup is being written.08:29
evhaha08:29
wgrantjam: But I don't think it's ready yet.08:29
lifelessfrankban is working on it in slack time08:29
wgrantjam: https://dev.launchpad.net/Running/LXC is the recommended thing to do these days08:29
lifelessvonderbar, hung on BIOS on reboot08:31
lifelessOTOH it may have been probing RAM or something; silly quasi-server that it is.08:31
rick_h_morning10:13
wgrantstub: Does avahi work for you?10:14
wgrantstub: It normally fails because the initscript sets a ulimit for the user process limit10:14
wgrantstub: Which prevents more than ~1.5 avahi instances from running on a single kernel10:14
wgrantUnless you were lucky and got different UIDs over your two installations.10:15
=== almaisan-away is now known as al-maisan
=== benji changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: benji | Firefighting: - | Critical bugs: 3.47*10^2
rick_h_benji: morning, time for a quick review when you get a sec please? https://code.launchpad.net/~rharding/maza-server/sso_cleanup/+merge/10661512:17
benjirick_h_: sure, it will be a few minutes (on a call)12:18
rick_h_benji: no rush, thanks12:18
mgzso, my after-lunch question, when running launchpad and it gives a 503 on https://launchpad.dev/ where do I go to find out more?12:19
mgznothing in logs is very helpful12:19
wgrantmgz: Sounds like it's not running.12:19
wgrantHave you started it?12:19
wgrant(make run or make start)12:19
mgzI did make run12:19
mgzand get the :( page12:20
wgrantOh12:20
wgrantThat sort of 50312:20
wgrantThat means there's no DB .12:20
wgrantPossibly postgres isn't running12:20
mgzthat's something neither rocketfuel nor make run do?12:20
* mgz unskips the building step12:21
wgrantmgz: launchpad-database-setup12:22
mgzseems not, looks like new log to me12:22
wgrantHm?12:22
mgzI'd wrongly assumed that would be done as part of the bootstrap12:23
wgrantIt wipes out your postgres installation.12:23
wgrantSo doing it implicitly would be a little impolite.12:23
mgzthe output lives in the launchpad tree under database?12:24
mgzor in a system dir?12:24
wgrantIt rebuilds and reconfigures and populates your default system postgres instance.12:25
wgrantUsually /var/lib/postgresql/9.1/main12:25
mgzace, thanks, so will need this as part of my instance setup12:25
wgrantThat's why it's in the instructions :)12:26
mgzI blame the red rectangle for making me want to ignore that section12:27
mgzokay, looks good, thanks wgrant12:28
mgzreally lunchtime12:28
wgrantHeh12:29
=== al-maisan is now known as almaisan-away
jamjtv: there seems to be a problem with the clean-up-the-database script that we were running trying to get Q translations working again.13:55
jamI've heard that you're the guy who knows whats up, if you can give me a pointer, I can try to take it from there.13:56
jamestunnicliffebenji: Hi, could I get a review started? https://code.launchpad.net/~dooferlad/launchpad/upcomingwork_show_incomplete_bp14:12
benjijamestunnicliffe: you have good timing, I was just looking at it14:12
jamestunnicliffebenji :-)14:12
benjijamestunnicliffe: I approved your branch with a couple of small suggestions.14:21
jamestunnicliffebenji: Thanks. I have another branch waiting you have a moment, but I don't want to hog all your reviewing time!14:22
benjijamestunnicliffe: I just started on it too14:23
jamestunnicliffebenji: Ah, thanks for the tal:conditional tip. I could not find a code example showing that. Clearly google was broken on Friday...14:23
benjimy pleasure14:24
benjijamestunnicliffe: review done; I saw that you could remove a couple of (pre-existing) calls to float that aren't needed, if you feel like it.  Other than that the branch looks good.14:47
jamestunnicliffebenji: I am up for changing to <tal:upcoming_work_class_name define="global upcoming_work_class_name string:expanded"/> but I have a question. The tal:<string> seems to be required but <string> doesn't seem to matter. Is it just convention that we match it (namespace?) with the name of the thing we are defining?14:48
benjijamestunnicliffe: right, the element name can be whatever you want, people often use "<tal:block>" for those, so that's an option too14:49
jamestunnicliffebenji: Thanks.14:50
benjinp14:51
jamestunnicliffebenji: I have uploaded a new branch. I don't have merge privs though. Can you kick that into action?14:55
benjijamestunnicliffe: sure14:55
jamestunnicliffebenji: Will get rid of those float calls and ping you to merge that in a moment.14:56
benjijamestunnicliffe: cool14:56
jamestunnicliffebenji: lp:~dooferlad/launchpad/postponed-is-done is ready as well now. Thanks!15:02
benjik15:02
=== deryck is now known as deryck[lunch]
=== deryck[lunch] is now known as deryck
=== matsubara is now known as matsubara-lunch
lifelessmorning18:24
jelmerhey lifeless18:30
lifelesshey jelmer18:32
lifelessany luck on subunit ?18:32
cjwatsonbenji: Thanks for your review of https://code.launchpad.net/~cjwatson/launchpad/germinate-stale-files/+merge/106626; I've made adjustments.  Can you set Status to Approved if you're happy with that, and I'll land it?19:06
lifelessjelmer: ^?19:07
benjicjwatson: I've set it to approved.  You should feel free to do so too.19:08
cjwatsonThanks19:09
benjioh, and cjwatson: yes, you're weird ;)19:11
cjwatsonheh19:12
cjwatsonI guess I find it easier to be consistent about using context managers everywhere possible rather than having to think about (even trivial) exceptions19:13
cjwatsonor something.  hard to cognitively unpack19:13
=== matsubara-lunch is now known as matsubara
cjwatsonOr possibly that it means that the safest ways to create an empty file and create a non-empty file are spelled more similarly19:39
=== benji changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugs: 3.47*10^2
wgrantWebOps: how many OpenIDs are on https://launchpad.net/~dachary/+reviewaccount?22:25
spmwgrant: just the 122:29
wgrantOh hm22:32
wgrantspm: SELECT * FROM openidrpsummary WHERE account = (SELECT id FROM account WHERE openid_identifier='dnTeEXH');22:32
wgrantOn SSO22:32
wgrantOr equivalent web UI if there is one.22:32
spmitt, we learn that wgrant is single handedly responsible for wvg task queuing22:33
spm>:)22:33
wgrantNo, that's users who somehow create more than one SSO account without noticing.22:33
czajkowskispecial22:36
spmczajkowski: yes, yes I am. thanks for noticing!22:37
* czajkowski peer at spm have you been taking lessons from mr. StevenK 22:38
* StevenK raises an eyebrow.22:38
spmpfft. try other way around. the grasshopper learns from the master22:38
StevenKwgrant: Is bug heat dead enough to nail bug 705713 shut?23:26
_mup_Bug #705713: Bug:EntryResource Timeout trying to set bug private - death by sql / late evalation <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/705713 >23:26
StevenKOh my god, I know what I need to fix23:28
wgrantStevenK: Indeed, thanks.23:28
StevenKRARGH23:56
StevenKAny OOPS I've tried to see from following links in bug reports gives no such oops23:57
StevenKAnd then Firefox crashed23:57

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