/srv/irclogs.ubuntu.com/2011/09/20/#launchpad-dev.txt

wgrantlifeless: Hmm.00:06
wgrantlifeless: Why 'timeline.timeline' instead of 'timeline'?00:07
wgrantI have to say that I really question the utility of a 155 line diff to deduplicate a single line of code.00:08
wgrantThe python-oops-wsgi diff could be argued to be sensible. But I don't think python-timeline's is.00:10
lifelesswgrant: PEP 333300:11
lifelesswgrant: environ variables are namespaced00:11
wgrantBut even python-oops-wsgi's diff is probably better handled by passing a dict of stuff to preserve from the environment.00:11
lifelessso, which package do you think should define the location of the timeline in a wsgi stack ?00:12
lifelessAn implied aspect is that we should export a symbolic variable with the value 'timeline.timeline'00:13
wgrantDoes it need to be fixed?00:13
wgrantWhat's going to use it?00:15
lifelesswgrant: storm and other things that want to log events in a wsgi world00:21
lifelesswgrant: e.g. https://code.launchpad.net/~lifeless/storm/wsgi/+merge/7600900:21
wgrantErm00:22
wgrantWe have DNS breakage.00:22
wgrantLibrarianServerError: <urlopen error [Errno -2] Name or service not known><br />00:22
lifelesswgrant: note that this knows nothing about oopses00:22
wgrantJust got an OOPS for that page.00:22
lifeless-win-00:23
lifeless(sarcasm)00:23
wgrantAnd I forget to grab the OOPS ID.00:23
* wgrant greps.00:23
lifelesswas that a librarian fail or a find-librarian fail ?00:24
wgrantI think find-librarian,.00:24
wgrantTwo OOPS so far today with that error, both from soybean.00:24
lifelessI've asked in is00:25
lifelessthere was a dns reload00:26
wgrantAh00:27
lifelessanyhow00:28
lifelessback to our regularly scheduled program00:28
lifelessits about loose coupling00:28
lifelessconnecting storm to timeline in a wsgi environment is one step00:28
lifelessconnecting timeline to oopses in a wsgi environment is another00:29
wgrantJust got another one.00:29
lifelessthus a change to storm, to timeline, and to oops-wsgi00:29
wgrantAQ400:29
wgrantAre they still reloading DNS?00:29
lifelessjames_w: I'm trying to use testr_recipe, but it says 'installing test.. cannot find distribution for test' (where test is the part in the buildout.cfg00:43
lifelesswgrant: ok, now where were we.00:48
wgrantlifeless: Having storm.wsgi.make_app be time-line specific seems odd.00:56
wgrantI'm all for factoring out common code sensibly, but I really don't think the python-oops-wsgi and python-timeline changes are examples of that. They save three lines of code, all of which are trivial and two of which could be reduced to one with a more generic python-oops-wsgi solution.00:59
lifelesswgrant: you'll need to spell out what you mean, because I don't see it01:01
wgrantlifeless: Which bit?01:01
lifelessmore generic python-oops-wsgi solution.01:01
wgrantThe oops_wsgi change would probably be better as a general facility to specify values from the environ to put in the context.01:02
lifelessI can do that01:02
wgranteg. pass in a {'timeline.timeline': 'timeline'} dict or so.01:02
lifelessI don't see it eliminating the needed for the other changes01:02
lifelessI'd also like to have it do that particular one by default, as a sane-default01:03
wgrantSo, to tie the bits together I need to import a module and have a special-case in oops_wsgi, or I can specify a tiny dict and construct a timeline myself.01:03
wgrantWhich takes roughly 1.5 lines.01:03
lifelessI am rather allergic to copy and paste of undifferentiated code01:04
lifelesswhen there is really local policy, its fine. This isn't one of those times01:04
wgrantThis code is actually going to be shorter.01:04
wgrantThe other one just happens to be entirely symbols.01:04
lifelessper PEP333301:05
lifelessthe timeline module is what gets to use timeline.*01:05
lifelessif we call it oops.timeline or oops.context['timeline'] then oops-wsgi could set it01:06
lifelessif we call it storm.timeline, storm could set it01:06
lifelessanything else is asking for trouble, and all those other names are (hopefully obviously) undesirable01:06
wgrantI don't think any of those need to set it.01:09
wgrantThe only glue code that is useful here is the stuff in storm.wsgi.01:09
lifelesswhich would be totally the wrong place to create the timeline object01:12
lifelessas its used for more than just storm lookups01:13
wgrantSure, I don't think you should create it there.01:13
wgrantI think the app should do it.01:13
wgrantPass the name into Storm.01:13
wgrantAnd ask oops-wsgi to map it into the report.01:13
lifelessthat would force configuration onto everything that wants to talk to a timeline01:13
lifelessI think thats undesirable01:13
wgrantThat's possibly true.01:14
lifelessI'm happy to make oops-wsgi more configurable01:14
lifelessbut it would be a mistake to do that and then say 'now everyone has to use that'01:14
wgrantBut we also have a 155 line diff to add one line (41 characters) of very trivial.01:14
wgrantvery trivial code.01:15
lifelessshrug01:15
wgrantI think *that* is probably undesirable.01:15
lifelessthe major cost - writing and testing it - is sunk01:15
wgrantThis smells, and I don't have enough WSGI experience to say if it is sane. I'm afraid I can't sensibly approve this myself.01:16
wgrantThis is an interface that other projects are going to use, so I am going to be more cautious than I would be for an internal LP interface.01:18
lifelesssure01:27
lifelessthis is what jamesh and I agreed on01:27
lifelessI don't agree that it smells01:27
lifelessseparate but related01:28
lifelessoops-tools has code to infer request duration01:28
lifelessby examining the last item in a timeline01:29
lifelessI think it might be sane for Timeline() to have a 0 duration initial action01:29
lifelessto seed things01:29
lifelessbut Timeline can't tell when its finished with, so it needs to be told [exact details for doing this could vary]01:29
lifelessman, really want yield from01:30
wgrantThat didn't make it into 3.2, did it?01:31
lifelessI don't think so01:31
wgrant:(01:31
lifelessit would make some of these wsgi wrappers better and faster01:31
wgrantIndeed, accepted for 3.3.01:31
lifelesssuch as the next change to the timeline one which I'm about to self review01:32
lifelesswgrant: other than the structural thing which you've abstained on01:43
lifelesswgrant: were there code quality comments; I have one noted from the discussion - why doesn't oops-wsgi let the map be done arbitrarily01:43
lifelesswgrant: which I will execute on as I'm in the area01:44
wgrantlifeless: It all looks fine, apart from the workaround for lack of 'yield from', which I believe is pretty standard anyway.01:46
lifelessyah01:46
lifelessthanks01:47
lifelessdo you want to see the generalisation before I land (I plan to supply a default mapping dict which folk can use as a template, and a mapping param which None means 'use the default dict'01:47
wgrantThat sounds fine. I'm about to wander out for a few hours, so won't be around much.01:48
wgrantAnyone want to review https://code.launchpad.net/~wgrant/launchpad/no-config-names-in-store-names/+merge/76135? Simple code changes, potentially non-simple consequences, but the test suite is fine with it.01:48
lifelesswhat about the impact on session query filtering ?01:50
wgrantThe store name there is just 'session'01:50
wgrantAlways has been.01:50
wgrantI don't think it even uses LaunchpadDatabase.01:50
wgrantYeah, see PGSessionBase in canonical.launchpad.webapp.pgsession01:51
lifelessok01:51
wgrantThanks.01:53
jtvnigelb: noticed that too… no idea; frankly I don't know why other MPs don't get empty diffs once they're merged.01:59
jtvwgrant: looks like gina's done with sid.02:03
jtvSyncing logs to see what happened to squeeze.02:03
jtvOh come on oneiric, please don't do this… I need to shut down _somehow_ so I can carry this laptop to the office.02:04
wgrantsudo pm-suspend ftw02:04
lifelessjtv: sudo pkill e*02:05
lifeless?02:05
jtvlifeless: why e*?02:05
lifelesserlang, can't remember the process name02:06
lifelesshas been known to cause 'issues'02:06
wgrantbeam.smp? :)02:06
lifelessyeah :P02:06
lifelessthere are two though02:06
lifelessbeam and a broken02:06
wgrantepmd?02:06
lifelessbroker02:06
lifelessyes02:06
wgrantYay, I remember erlang crap properly.02:06
jtvIn my case: can't move mouse pointer, and can't log into text console because it keeps typing /////////////02:07
jtv(Actually my GUI session has been doing that as well, but _there_ at least it stopped)02:07
jtvAnd since suspend/hibernate don't work, I need to shut down.  But since the shutdown option doesn't work, what I normally do is log out and then switch to a text console to shut down.02:08
jtvI think I'll take a bug-filing day this week.02:08
jtvWell, the pkill didn't work.  :(02:09
jtvWhy is epmd running as rabbitmq even after I stopped rabbitmq?02:15
jtvAnd why was it still there after the pkill?02:16
jtvI killed it by pid, but no change.  :(02:16
lifelessanything in dmesg?02:16
jtvA lot of screensaver segfaults02:17
jtvComplaints about the CD that's in my drive, I think.02:17
jtvforcedeth, which sounds like a cover band.02:17
jtvComplaints about unknown SCO packets on hci0.02:18
jtvSorry no, about SCO packages for an unknown connection handle.02:19
jtv“apm: BIOS not found” is probably not as exciting as it sounds.02:19
StevenKYou're on a MacBook which uses EFI02:20
jtvNot as exciting as it sounds.02:20
jtvI'll try the pm-suspend then I guess.02:21
lifelesswin 19978  OOPS-2088HWDB303  None04:09
StevenKwallyworld_: *prod*04:38
wallyworld_StevenK: hello04:38
StevenKwallyworld_: var co = Y.one('.yui3-overlay.yui3-lp-app-confirmationoverlay');04:38
StevenKThat still results in co being null04:38
wallyworld_no work?04:38
wallyworld_maybe try removing one of the css class selectors04:39
wallyworld_just to see what happens04:39
StevenKCan I see all CSS classes at that point int time?04:40
wallyworld_yes, node.getClass()04:40
wallyworld_but i thought you looked using firebug04:41
wallyworld_to see what the classes were04:41
StevenKI meant in the test itself04:41
wallyworld_oh, ok, yes that will give you the classes04:42
wallyworld_once you have the node04:43
wallyworld_wgrant: wrt the conversation about only removing subscribers for bugs associated with projects with private_bugs=true - it is acceptable to simply look at the default_bugtask to get the project (if any) whose 'private_bugs' may be true/false?04:43
StevenKwallyworld_: Yes, but I'm having trouble getting the node!04:44
wallyworld_StevenK: yes. so you probably are best to loosen the selection constraint on css class04:45
wallyworld_to try and get a node that matches04:45
wallyworld_you can also use Y.all() and iterate over the node list04:45
wallyworld_so if you make the constraint .yui3-overlay you can see what overlays there are04:46
StevenKY.all('.yui3-overlay'); ?04:46
wallyworld_yes, i think so04:46
wallyworld_so long as yui3-overlay is correct in terms of a css class that they have04:46
mwhudsonI couldn't get Y.one('.class-one.class-two') to work the other day04:48
mwhudsoncould it be some kind of bug?04:48
wallyworld_mwhudson: perhaps. i think we are running a rc version of yui 3.4. maybe time to look at upgrading04:48
StevenKThat was silly04:48
StevenKalert(i) gives me an alert box for each attribute of the node04:49
mwhudsondoh04:49
wallyworld_StevenK: no i lie. we are running 3.304:49
wallyworld_but 3.4 is now out i think04:49
wallyworld_StevenK: Y.log is your friend04:50
StevenKAH04:50
* mwhudson asks in #yui, though i expect everyone is asleep04:50
StevenKY.all('.yiu3-overlay') has a _nodes property that is [ ]04:50
wallyworld_StevenK: that implies there are no matching nodes04:51
wallyworld_since Y.all returns a NodeList afaik04:51
mwhudsonStevenK: don't look behind the curtain04:51
StevenKClearly04:51
mwhudsonStevenK: .size() == 0 is a better check :)04:51
mwhudson(and as for gratuitous differences between Array and NodeList...)04:52
StevenKAh ha04:53
StevenKThat function never gets called with "unsubscribe"04:53
StevenKwallyworld_: Does Y.log() hit stdout/stderr when running under bin/test?04:53
StevenKmwhudson: My JS knowledge is ... heavily fragmented and mostly missing.04:54
wallyworld_StevenK: not sure but doubt it. it goes to the console in the browser when you run the test via loading the html page04:54
wallyworld_i find that the best way to debug04:54
mwhudsonStevenK: mine is heavily fractured but i'm gradually filling in the gaps :)04:54
wallyworld_since i can also use break points, watches etc etc04:54
StevenKwallyworld_: Running it via the browser it keeps complaining that "Y.lp.app.confirmationoverlay" is undefined.04:58
wallyworld_StevenK: that explains a lot04:58
wallyworld_StevenK: you need to include the module in the html harness04:58
StevenKOh, at the bottom of the test js?04:59
wallyworld_sort of near where the other imports are done nearish the top i thin04:59
wallyworld_thinkl04:59
StevenKOh, in the HTML itself04:59
wallyworld_yes04:59
wallyworld_see the <!-- Come required dependencies -->04:59
wallyworld_comment05:00
wallyworld_Some, not Come05:00
wallyworld_can't type05:00
StevenKWhich doesn't appear in that HTML05:00
wallyworld_StevenK: bin/test tends to hide a lot of errors and just reports failure for whatever reason05:01
wallyworld_see test_personpicker.html for an example05:01
wallyworld_bin/test is good for once stuff is debugged and working05:01
wallyworld_but to see setup errors etc, use the browser and firebug05:02
StevenKExpected: null (object)05:05
StevenKActual: DIV#yui_3_3_0_2_13164951130961890 yui_3_3_0_2_13164951130961894 (object)05:05
StevenKSUCCESS05:05
wallyworld_StevenK: excellent!05:05
wallyworld_StevenK: now you can try the "proper" css class selector05:06
StevenKThat is with the proper CSS class selector05:06
wallyworld_even better05:06
StevenKvar co = Y.one('.yui3-overlay.yui3-lp-app-confirmationoverlay');05:06
wallyworld_at least now you know you test fails and you can write the code to fix it05:06
StevenKDoes that strike you as 'proper' ?05:06
wallyworld_well, so long as it is specific enough to select the confirmation overlay you are trying to get at05:07
wallyworld_and not find any others05:07
StevenKwallyworld_: I'm now un-breaking the JS itself to only show the overlay on private bugs05:07
wallyworld_sounds good05:07
StevenKAnd then if the test passes, I can start writing my own05:08
wallyworld_yep05:10
* wallyworld_ has to go and pick up car from getting new tyres fitted05:11
StevenK>1 day for 3 lines of JS and 2 lines of HTML05:11
StevenK /wrists05:11
wallyworld_StevenK: at least you know how to do it quicker now :-)05:11
wallyworld_all the things to look out for05:11
wallyworld_StevenK: what doesn't kill you makes you stronger :-)05:12
nigelbExcept those that make you want to die.05:34
nigelb;)05:34
nigelbWhy does the MP have "Empty diff" ocassionally?05:35
nigelbI saw it for one of MPs and the other day with one of jtv's MPs.05:35
StevenKCan I grab hold of a button in JS by using Y.one() ?06:09
huwshimiStevenK: Does the button have an ID?06:10
StevenKIt does not06:10
StevenK<button class="lazr-pos lazr-btn ok-btn" type="submit">OK</button>06:11
StevenKIt has a surrounding div (<div class="yui3-lazr-formoverlay-actions">), which I guess I can grab with var div = Y.one('.yui3-lazr-formoverlay-actions');06:11
wallyworld_StevenK: you can grab a button using attribute matching also eg "button.ok-btn[type='submit']" or something like that06:31
=== jtv is now known as jtv-eat
=== jtv-eat is now known as jtv
adeuringgood morning08:02
nigelbGood Morning adeuring & mrevell08:05
mrevellyo08:05
wgrantstub: Hmm, so it turns out that all but two of the storm_cache and storm_cache_size directives in the configs are unused.08:16
stubwgrant: Just the appserver overriding?08:18
stubwgrant: We currently have a huge value for the appserver because it hasn't been instrumented and are scared of reducing the size.08:19
stubwgrant: And are scared of using high values in scripts to stop memory ballooning.08:20
wgrantstub: Well, that's what I thought, but it's a little bit simpler than that.08:20
stubIts busted and only works in rare cases?08:21
wgrantThe 'launchpad' section is used for everything, except for the librarian (which uses 'librarian').08:21
stub\o/08:21
wgrantlaunchpad is 10000 on production, 100 on dev.08:21
wgrantSomeone somewhere along the line stopped calling setConfigSection in production code, except for the 'launchpad' default in lib/canonical/config/__init__.py, and one other case in librarian.tac.08:22
wgrantlibrarian seems to really only care about overriding the dbuser and isolation_level.08:22
wgrantWhich, conveniently, is what everybody else cares about overriding too.08:22
stubDo we currently have any script memory hogs?08:23
wgrantApart from nasty gina and process-death-row worstcases recently, not really.08:23
wgrantThat I know of.08:24
stubdbuser and isolation_level should really be hardcoded anyway, isolation because things break if you change the config and dbuser because we never make use of the fact we can change the config.08:24
wgrantYeah, apart from in tests.08:24
wgrant... and formerly in buildd-manager, but that was fixed a year ago.08:24
wgrantSo, I'm probably removing config section support, merging launchpad's settings into the main database section, changing librarian.tac to override directly. And due to the fix I landed this morning, that means that dbconfig.override() is pretty much a direct replacement for initZopeless, and ZTM can finally BURN.;08:25
wgrantAnd this stuff that has been a shim for 4 years can finally die :/08:26
wgrantUhoh.08:34
wgrantcanonical.lp won't die.08:34
wgrantIt somehow got revived today.08:34
* wgrant blames jtv.08:34
jtvwhuwhuwhu?08:34
wgrantmessage: [r=benji][no-qa] Fix lots of lint in recently-changed files.08:34
wgrantadded: lib/canonical/lp/08:34
wgrant:(08:34
* wgrant remurders.08:34
jtvPlease do.08:34
wgrantBah.08:42
wgrantLooks like I need to keep respecting config.launchpad.dbuser, as it's what all the appserver configs use.08:42
pooliejtv, i think you mean "symptom, search internet, selfdiagnosis, treatment, conspiracy theories"08:44
jtvpoolie: I am _not_ taking you to any more coffee shops.08:45
pooliehaha :)08:45
bigjoolslifeless: how's the python-oops-twisted thingamujig?08:46
lifelessbigjools: good news and bad news09:09
lifelessbigjools: the good news is I figured out what all the tech debt meant09:09
lifelessbigjools: the bad news is that the new project isn't done yet, because of the good news09:09
lifelessbigjools: pretty close though, just tests to write now09:09
bigjoolslifeless: well, thanks, you've saved me a bunch of work so it's all good AFAIAC: )09:12
=== gmb changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | On call reviewer: gmb | Critical bugs: 256 - 0:[########*** stack smashing detected ***: kees pinged
pooliejelmer, hey that's a really interesting point about the code ui09:26
jelmerpoolie: thanks; I think it's one of those things that are hard to notice once you've gotten used to the existing UI.09:28
poolieyeah09:29
pooliei was actually talking to huw about this the other day09:29
pooliebecause we did a little on it at the o'rally and it's been idle since then09:29
pooliei would love to see it reactivate09:29
jelmerOnce the last code-import<->mirror integration branch lands, I'd really like to kill the "Register a branch" button.09:29
pooliei think it's one of those topics that can hurt user experience a lot, but that won't clearly come up in bug reports or user requests09:29
poolies//hurt or help09:30
jelmeryeah09:30
=== StevenK changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | On call reviewer: gmb | Critical bugs: 256 - 0:[#########]:256
lifelessbigjools: turns out our current twisted integration can silently block the librarian etc09:50
lifelessbigjools: we're calling blocking apis without deferToThread09:50
bigjoolslifeless: awesome09:50
lifelessI will be fixing one of the two cases09:50
bigjoolswhat scenarios?09:50
lifelessoops creation writes files to disk09:50
lifelessand can trigger a re-read of the directory09:51
lifelessbut the key bit is we thunk logObserver to python logging09:51
lifelessand thats documented in the twisted docs as 'can block'09:51
lifelesswe should be doing deferToThread09:51
lifelessand then doing the may-block stuff in a thread09:52
lifelessthis just became blindingly obvious when I started asking 'how to extract this nicely'09:52
lifelessfor bonus points we have two distinct twisted integrations atm09:52
stubI normally don't mind the spider, but it should get off my damn screen!09:52
lifelessroughly equally used.09:52
lifelessI'm not going to try and fix that, but I'm going to bless one - the one I extract :)09:53
bigjoolslifeless: well at least you spotted it09:53
jmllifeless: which is the blocking API being called?09:54
stubWe need to append pending log messages to a list, and deferToThread something that logs them in the correct order.09:54
jmlLogging a message doesn't normally need to be treated as a blocking operation.09:55
lifelessjml: PythonLoggingObserver09:55
lifelessjml: it does, and this is documented in the twisted docs as well as the logging docs.09:56
jmllifeless: where?09:56
lifelessjml: on the web page :) - sorry, past EOD and got stuff to do09:56
jmlthat's lame09:56
jmlbut I understand.09:56
lifelessthe twisted.log api docs specifically09:56
lifelesswherever they are09:57
stubOddities I foresee are log messages being spit out in the wrong order, timestamps being slightly off, and bound variables and stacks being mutated as the callsite proceeds and before the log message is generated.09:57
jmllifeless: thanks09:57
lifelessstub: failures already materialise the backtrace IIRC09:58
jmlthey do.09:58
lifelessstub: the rest are already happening because we're in a reactor environment09:58
stubcool. timestamps will be within precision.09:58
stubjust thinking of why it is blocking in the first place :-)09:58
lifelessits blocking because the python 'logging' module has a great big lock in the middle09:59
lifeless(and because file IO and directory listing can block too)09:59
jtvbigjools: do we have any way to watch the debian domination on production?10:06
bigjoolsjtv: the log file?10:06
jtvI mean the effects of.10:06
jtvSeeing whether the resulting status of Debian makes sense.10:07
bigjoolsjtv: yeah, find a package that's dead in Debian but not in LP's import10:07
bigjoolsalso see the count of packages in +missingpackages10:07
jtvOh, we derive Ubuntu from Debian in production now?10:07
bigjoolshave done for a while!10:08
bigjoolssee oneiroc10:08
bigjoolsoneiric, even10:08
bigjoolsthat's how this bug was noticed IIRC10:08
jtvOoh nice little beta bar10:09
jtvMind you, this is transitional domination so it shouldn't mark dead packages as deleted yet; it'll keep the last release alive for permanent domination to deal with.10:10
jtvAlso, gina's still dealing with squeeze.  :/10:11
bigjoolsdid it do sid yet?10:11
jtvNo, don't think so.10:11
bigjoolsif not, take a note of the number of packages now10:11
bigjoolscompare after10:11
jtvGood one.  We also did that on dogfood.10:11
jtvPackages and statuses, I think.10:12
* jtv cooks up some SQL10:12
bigjoolsjtv: you can just look at the package counts in the UI10:21
jtvThe ones that need linking?10:21
bigjools[11:07:42] <bigjools> also see the count of packages in +missingpackages10:22
jtvThat includes the DSD machinery as well… since I'm not expecting any package deletions, I'll want to watch the DB as well.10:23
jtvgmb: clearly, you're not bitter but just a tad disappointed in my review style?11:07
gmbjtv: No, I've just formed an emotional attachment to the branch because I've been working on it for a week and a half.11:12
gmb]11:12
gmbIt's been a royal pain in my backside.11:12
gmbjtv: One of your in depth reviews is always appreciated, unless the reviewee is feeling particularly lazy.11:12
jtvSays the self-proclaimed Lazy Reviewer.  :)11:12
jtvWe ought to form a duo à la Laurel & Hardy.11:13
gmb:)11:13
jtvHippie & Nazi, Reviewers™11:13
gmbYeah, I can see that going down a storm :)11:13
bigjoolslifeless: I need to do a txlongpoll test fixture - any opinion on whether that should be a separate project?11:16
jtvgmb: compared to what I got away with last week, it ain't so bad.11:17
lifelessbigjools: I'm torn11:18
lifelessbigjools: on the one hand it should clearly be reusable, so not part of LP11:19
bigjoolslifeless: we could not decide either :) It'll add more dependencies of course11:19
lifelesson the other hand if its part of txlongpoll it ties the client language to the server implementation, and implies that a client that can use the fixture could get at the server innards - thats undesirable11:20
lifelesson the gripping hand adding a new project has some cognitive overhead11:20
lifelessI think we should try separate-project: we can always massively consolidate later11:22
bigjoolsI was erring that way11:23
jtvgmb: your change to initialize() puzzles me.  Why assign a variable you're not going to use?  Are you trying to force evaluation of a property?11:25
gmbjtv: Yes; activity_and_comments is a cachedproperty. If it's not loaded at initalize() time you end up with recursion problems in tests (not in actual usage though). I can drop the variable assignment; it just looked odd to me without it.11:27
gmbjtv: I'm going to go and grab some lunch; feel free to stick any questions in the MP and I'll reply on my return.11:30
jtvAye-aye.11:31
danilosflacoste, lifeless: we can't triage bugs for launchpad-results (like https://bugs.launchpad.net/launchpad-results/+bug/854635), meaning that it's not really our duty, yet it's part of launchpad-project and we can't drive untriaged bugs count to zero: what shall we do about it?11:38
_mup_Bug #854635: unit model names have leading/trailing spaces <Launchpad Results:New> < https://launchpad.net/bugs/854635 >11:38
danilosbigjools, the following bug seems to be simple to fix (missing DB user), yet pretty critical: bug 854449. Do you think we should treat it as an incident and start working on it asap?11:41
_mup_Bug #854449: generate-contents-files.py failing on Ubuntu archive since September 11/12 <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/854449 >11:41
bigjoolsdanilos: yes11:41
bigjoolsdanilos: I suspect fallout from recent db user renamings11:42
bigjoolsdanilos: also it needs a script monitor11:42
danilosbigjools, right, thanks, I'd appreciate it if you (as someone with more authority on the subject) adds a note to the bug itself, and I'll ensure we get started on it soon11:43
danilossoon == today11:43
bigjoolsok :)11:44
wgrantdanilos: It is a pretty trivial puppet task.11:45
wgrantAn RT and a LOSA-poke may be in order.11:45
daniloswgrant, I can guess it is for someone who knows all about the script11:45
wgrantHm? It's not got much to do with the script :)11:46
daniloswgrant, (eg. what DB user it should use)11:46
wgrantif __name__ == '__main__':11:46
wgrant    script = GenerateContentsFiles(11:46
wgrant        "generate-contents", dbuser='generate_contents_files')11:46
wgrantProblem solved :)11:46
daniloswgrant, I'd appreciate if you add that to the bug as well, since I am doing my CHR rotation right now11:47
wgrantDone.11:49
danilosthanks11:50
=== almaisan-away is now known as al-maisan
wgrantbigjools: You might recall that I removed txlongpoll a while back.12:27
wgrantbigjools: lifeless forbids its inclusion in our setup.py.12:27
bigjoolsFFS12:27
wgrantFor it is to be a microservice.12:27
bigjoolswe need it for make run12:27
bigjoolsthat is all12:27
bigjoolsI don;t know how else to set it up12:28
stubIs there an RT for Bug #854449  yet?12:28
_mup_Bug #854449: generate-contents-files.py failing on Ubuntu archive since September 11/12 <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/854449 >12:28
wgrantbigjools: Neither do I.12:28
lifelessdanilos: -results is in a bit of limbo; we should either have it meet our governance rules or remove it from being part of 'launchpad-project'.12:28
lifelessdanilos: chat to flacoste when he's up, and/or cr3 about which route12:29
lifelessdanilos: cr3 wants to have it properly integrated as a microservice etc12:29
lifelessdanilos: so, I think the right thing is getting it under our regular rules for bug supervisor etc12:29
daniloslifeless, right, thanks for updating me on it12:29
lifelesswgrant: bigjools: you use a buildout recipe12:30
lifelesswgrant: that gets it executable with a bin/txlongpoll entry point, but not importable12:30
wgrantThis is going to get very ugly.12:30
wgrantBut maybe.12:30
lifelesswgrant: bigjools: my use-gpgfixtures branch on lp has/had an example of doing that for the new keyserver.12:30
lifelesswhich flacoste gave me.12:30
wgrantWe'll need a separate buildout target for each dep.12:30
bigjoolslifeless: there is no bin/txlongpoll entry point12:31
bigjoolsit's a TAP12:31
lifelessso, you need the egg unpacked (buildout can do that), and you need a script (the fixture) that knows how to run the tap12:32
lifelessno ?12:32
lifelessjust txlongpoll itself doesn't end up on our PYTHONPATH12:32
bigjoolscan you explain your aversion to setup.py changes?12:33
wgrantAh, that's right. You'll need to use buildout to create a second twistd.12:33
wgrantThat has the egg.12:33
lifelessI love setup.py changes12:33
bigjoolsin this context :)12:33
lifelesshttps://dev.launchpad.net/ArchitectureGuide/ServicesRequirements#Background_reasoning12:33
bigjoolsI'm not sure that answers the question12:34
lifelessthats the background reasoning12:34
bigjoolsI'm not really au fait with buildout so this is a learning exercise12:35
lifelessfor why I want the microservices to not be importable12:35
bigjoolshappy to be guided on this12:35
lifelesswgrant: yes, buildout a z3c.recipe.script that has the additional egg, probably a defaults=... and tada12:36
gmbjtv: I hadn't noticed the conflicts with devel; have pushed a fix.12:36
jtvgmb: thanks.  I'm… collating notes.12:37
gmbok12:37
lifelessbigjools: basically I want an ironclad avoidance of the sort of back-door dealing with API's we've had in LP with in-process stuff12:37
bigjoolsok12:37
lifelessbigjools: so that folk can *confidently* work to the interface, not the implementation12:37
lifelessthis has several corollaries:12:37
bigjoolsI'm still unsure what setup.py has to do with that12:38
lifeless - there will be some form of split-outs that we can't do, because we don't know how to write an interface that is fast+ etc etc etc12:38
bigjoolsI perfectly understand the rationale, just not the "how" :)12:38
lifelessoh12:38
lifelessso when you add something to setup.py, buildout adds the resulting egg to the PYTHONPATH12:38
lifelessit does this transitively.12:38
bigjoolsand a simple buildout recipe does not?12:38
lifelessif you have setup.py reference package A12:38
lifelessand A references B12:39
lifelessB will be in the PYTHONPATH setup by bin/py12:39
lifelessbigjools: the 'scripts' recipe can specify its own additional things12:39
bigjoolshow are we going to make a fixture figure out how it can run the TAP then?12:39
jtvgmb: done.  Frankly it was the name of the branch that attracted my attention in the first place.12:40
lifelessbigjools: thinking12:40
lifelessbigjools: got it12:40
lifelessbigjools: the fixture needs to know the command line to run the thing12:40
gmbjtv: Heh, thanks.12:40
bigjoolsyes, but it also needs to know where the twistd binary and plugin lives to do that12:41
lifelessbigjools: this doesn't mean importing, it just needs to know that 'bin/twistd-longpoll' will run a twistd invocation that can import longpoll, and it needs the tap file12:41
lifelessbigjools: yes, this will mean buildout.cfg stuff (sorry to be handwavy, nearly 1am etc)12:41
bigjoolsok, thoroughly confused here :)12:42
lifelesswgrant: are you less confused?12:42
bigjoolsmaybe someone who knows buildout better can do this12:42
gmbjtv: Once again, your review has me saying "Wait, what?" I never knew about zip() (or knew and have forgotten). I shall go and learn about it forthwith.12:42
jtvgmb: good sport12:42
lifelessdef sudo_make_me_a_fixture(twistd='bin/twistd-longpoll', tap='bin/longpoll.tap'):12:43
lifeless    return LongPollFixture(twistd=twistd, tap=tap)12:43
lifeless^ thats the thunk code to inject the custom twistd script and tap location12:43
lifelessthe other bit is teaching buildout to create the tap and twistd-longpoll12:44
wgrantbigjools: See txlongpoll's buildout.cfg.12:44
wgrantThe 'interpreter' section there does sort of what we want.12:44
wgrantExcept we probably want to use a script target directly, without an interpreter, if possible.12:44
bigjoolslifeless: how would it know where bin lives in your example?12:45
lifelessbigjools: in LP it will always be bin/twistd-longpoll12:45
bigjoolseven if we have a script that encapsulates the invocation12:45
bigjoolsah, so you want it in LP's bin12:46
lifelessthats what buildout is for12:46
lifelessits responsible for making that file12:46
lifelessthis is what flacoste showed me: http://bazaar.launchpad.net/~lifeless/launchpad/usegpgfixtures/revision/1375812:47
bigjoolstwistd is not entirely flexible in how it looks for TAPs is it ...12:47
lifelesswgrant: ^12:47
wgrantbigjools: Not at all. So we'll need a second twistd that has basically just txlongpoll in its path.12:47
bigjoolsright, we have something in the txlongpoll buildout.cfg that builds itself12:47
wgrantAhh, z3c.recipe.scripts, handy.12:48
wgrantAlthough that still generates an interpreter.12:48
lifelesswgrant: it didn't12:48
lifelessI don't know why the line is needed ;)12:48
bigjoolswhat does that code put in bin/ ?12:50
bigjoolss/code/config/12:50
lifelessit creates bin/gpgfixtures12:51
lifelesswhich has the buildout glue to set pythonpath etc12:51
bigjoolsnot in my dev area it doesn't :)12:51
lifelessand ends up running gpgfixtures.keyserver.main(argv)12:51
lifelessbigjools: what do you mean ?12:51
bigjoolsthere is no bin/gpgfixtures when I build latest trunk12:52
lifelessof course12:52
lifelessthats in a branch12:52
bigjoolsunlanded?12:52
bigjoolsok12:52
lifelessits demonstrating what you need to achieve, for a different but similar case12:52
bigjoolsinsomuch as I understand roughly what one of those lines is doing :)12:53
lifelessright12:53
lifelessthis is why I pointed wgrant at it12:53
lifelesshe has more overlap with you12:53
lifelessI'm dead :)12:53
bigjoolsFSVO overlap :)_12:53
wgrantWell, we actually both have zero overlap.12:53
wgrantBut yes.12:53
bigjoolsyeah, you were up at crazy o'clock12:54
bigjoolsthanks for the advice so far lifeless, rest well12:54
wgrantNight lifeless.12:54
bigjoolswgrant: ok so we might be able to get away with the one in txlongpoll, the only issue is what to do with the TAP directory abomination12:56
wgrantbigjools: What about it?12:56
wgrantThat's all in the egg.12:56
bigjoolswgrant: yes, but it needs to end up in $CWD12:57
wgrantNope.12:57
bigjoolsotherwise twistd doesn't find it12:57
wgrantIt's in twisted/plugins/blah12:57
bigjoolsis there a way of telling twistd where it is then?12:57
wgrantJust try that buildout rul.e12:57
wgrantShould work fine.l12:57
wgrantI can type, see.12:57
bigjoolsyou miss my point I think12:57
wgranttwistd looks in twisted.plugins12:57
wgrantThe plugin is in twisted.plugins in the egg.12:58
bigjoolswhere "twisted" is in $CWD12:58
wgrantNo.12:58
bigjoolsah12:58
wgrantIn pythonpath.12:58
bigjoolsah12:58
* bigjools experiments12:58
wgrantThe egg is all set up. It works fine.12:58
wgrantIf you add it to setup.py and rerun buildout, you'll see it listed when you run bin/twistd12:58
wgrantSo we just need to make a *second* twistd, that only has txlongpoll.12:58
bigjoolswe do?12:58
wgrantSince our normal twistd uses the deps from setup.py12:59
bigjoolsah right12:59
wgrantIt's for running LP stuff.12:59
bigjoolshow do you rename the generated script name?13:00
bigjoolsah never mind13:00
deryckMorning, everyone.13:02
jtvhi deryck13:02
bigjoolsmorning deryck13:02
bigjoolswgrant: know what's up here? "Error: Picked: Twisted = 11.0.0"13:02
wgrantbigjools: Possibly because you're using include_site_packages.13:03
bigjoolsok let's try false13:03
bigjoolsnope13:03
bigjoolsI have no idea what that error even means13:03
bigjoolsI'd not know it was an error if it were not preceded with "Error" ...13:04
bigjoolsah think I found it13:05
bigjoolsand no13:05
deryckabentley, adeuring -- can we standup at 20 after?  I have another call at the bottom of the hour today.13:14
adeuringderyck: sure13:15
abentleyderyck: sure13:15
deryckgreat, thanks guys.13:16
=== al-maisan is now known as almaisan-away
flacostebigjools: i'm hopping on call with deryck13:35
flacostebigjools: but I could help you with that buildout after it, you could also grab gary_poster or benji to help out in the mean time13:36
gary_posterbigjools: you need to set versions.cfg to specify Twisted = 11.0.013:37
wgrantjelmer: Did you intend to bump the bzr-git revision when you regenerated sourcedeps.cache?13:39
jelmerwgrant: argh, sorry. That should have been in the original commit.13:45
wgrantAh, sure.13:46
danilosflacoste, hi, do you have any suggestions on what we should do with launchpad-results (it's part of launchpad-project, but we don't have privileges to triage bugs)? lifeless believes we should make it match lp-project standards for bug supervision13:47
mrevellHey deryck or gary_poster, do you think you could spare someone to finish implementing Huw's 503 page? (https://code.launchpad.net/~huwshimi/launchpad/503-error-844631) Huw tells me he has taken it as far as he can.13:54
* gary_poster looking, mrevell13:55
gary_postermrevell, sure, I can put it in our (pretty short) backlog.  bonus points if you mark the bug escalated or critical :-P but not necessary13:57
mrevellThanks gary_poster! We consider Launchpad to be a stakeholder, so perhaps I could escalate it. It's producing an OOPs, which we want to continue logging, but I suppose that makes it critical. I'll mark it critical and ask lifeless' forgiveness if need be :)14:01
gary_postermrevell :-) ok cool14:01
wgrantmrevell, gary_poster: It's fastdowntime-related and an OOPS, so it can be critical. Doesn't need escalation :)14:03
mrevellsuperb14:03
gary_posterwgrant, cool :-)14:03
=== almaisan-away is now known as al-maisan
bigjoolsgary_poster: hello!14:15
bigjoolsmy buildout saviour14:15
gary_posterhey bigjools14:15
gary_posterheh14:15
bigjoolsgary_poster: what I am doing is adding a script recipe to generate a "microservice"14:15
bigjoolsversions.cfg already has Twisted = 11.0.014:16
gary_posterbigjools, script recipe from what14:16
gary_posterthis is in Launchpad14:16
gary_poster's setup.py I assume14:16
bigjoolsnot in setup, I am taking the txlongpoll egg and writing some buildout config to try and make it generate me a script14:16
bigjoolslifeless has banned changing setup.py for external scripts14:17
bigjoolswhich is fair enough14:17
gary_posterbigjools, ok.  Oh, interesting.  (I don't think I'm breaking that in my current branch..._14:17
gary_poster)14:17
gary_posterbigjools, my memory is a bit fuzzy on all this, but I bet if I look at it I'll have an idea.  Do you have a branch for me?14:18
bigjoolsI'll paste you my change, one sec14:18
bigjoolsgary_poster: http://pastebin.ubuntu.com/693799/14:19
bigjoolsgary_poster: argh14:19
bigjoolssorry hang on14:19
bigjoolsgary_poster: http://pastebin.ubuntu.com/693800/14:19
bigjoolsthe first one is the whole file, that's just the diff14:19
gary_posterbigjools, An error with "Picked" is definitely complaining about "You didn't tell me which version to use, so I had to guess, and you told me to complain, so I'm complaining".  So the question is, why isn't versions.cfg good enough14:19
gary_posterok14:19
bigjoolsgary_poster: oh I wonder if it doesn't like the txlongpoll egg then14:20
bigjoolssince that's the part that requires twisted14:21
gary_posterum14:22
gary_postermaybe.  I wouldn't have guessed so.14:22
gary_posterlemme try applying this.  1 sec14:22
bigjoolsyou'll need to update your eggs14:22
bigjoolswell, dists14:22
gary_posterk14:23
gary_posterbigjools, I see "Error: Picked: txlongpoll = 0.2".  Fixing versions.cfg for that...14:26
bigjoolsgary_poster: weird, I don't see that14:26
gary_posterbigjools, ok now duped Twisted problem.  Looking more...14:28
bigjoolsgary_poster: ah right sorry, I had already applied the change to versions.cfg and didn't tell you :)14:28
gary_poster:-) cool14:28
rvbagmb: Could you mentor a review of mine? (the branch it self is from allenap)14:28
gary_posterbigjools: txlongpoll says it depends on twisted not Twisted.  The name is Twisted, and everything else spells it as such.  Apparently this confuses setuptools and/or buildout code.  You can verify by editing eggs/txlongpoll-0.2-py2.6.egg/EGG-INFO/requires.txt to have Twisted, not twisted.  Then build will complete successfully.  I suggest changing setup.py in txlongpoll and rolling a new release.14:33
bigjoolsargh14:33
bigjoolsI thought it might be something like that14:33
bigjoolsthanks gary_poster14:33
gary_posterwelcome bigjools14:33
bigjoolsI can't do enough releases14:34
gary_poster:-)14:34
flacostedanilos: i agree with lifeless14:36
danilosflacoste, cool, so what do we do about it? ask cr3 to fix it all for us? :)14:36
cr3danilos: oh oh, what's this I hear about work?14:37
flacostedanilos: or ask a losa  if cr3 isn't responsive enough :-)14:38
cr3flacoste: good assumption! it would indeed make sense to have danilos on /ignore14:39
gmbrvba: Sorry, was otp. Certainly, I'd be happy to.14:39
rvbagmb: Thanks, here you go: https://code.launchpad.net/~allenap/launchpad/longpoll-storm-events/+merge/7621514:39
gmbrvba: Okay, I'll take a look shortly.14:40
cr3flacoste: seriously though, is this about builders, hardwaredb, results tracker or something else? I'm not seeing an obvious thread by scrolling above14:40
flacostecr3: it's about the bug supervisor for launchpad-results14:41
benjigmb: if you get a minute to look at a simple lazr.restful branch, I'd appreciate it: https://code.launchpad.net/~benji/lazr.restful/bug-854695/+merge/7623014:41
cr3aha! I see now, bugs in launchpad-results. where can I familiarize myself with lp-project standards for bug supervision, I'm all for following that too14:41
gmbbenji: I'll add it to my list.14:41
benjithanks14:42
cr3flacoste: someone did ask me to triage them more quickly before, which I've been doing so far.14:42
flacostecr3: we'd like to change the bug supervisor so that the lp team can triage the bugs14:42
cr3flacoste: I suspect that "critical" might appear as a big red light on your radar though14:42
flacostealso14:43
cr3flacoste: if you change the bug supervisor to launchpad itself and I'm not a member of launchpad engineers, won't that case problems for me?14:43
cr3s/case/cause/14:43
flacostecr3: we should create a new team and make ~launchpad part of it14:44
cr3flacoste: we've got ~launchpad-results, could we use that?14:44
cr3flacoste: I changed bug supervisor of launchpad-results to ~launchpad-results so, if you add that team to ~launchpad, we should be good to go14:46
sinzuigmb, do you have time to review https://code.launchpad.net/~sinzui/launchpad/dsp-official-branches-0/+merge/7612814:46
flacostecr3: we want to add ~launchpad to ~launchpad-results14:47
gmbsinzui: I'll add it to my queue. Shouldn't be a problem.14:47
cr3flacoste: done14:47
=== al-maisan is now known as almaisan-away
flacostecr3: thanks14:53
=== almaisan-away is now known as al-maisan
=== salgado is now known as salgado-lunch
=== matsubara is now known as matsubara-lunch
daniloscr3, thanks from me as well (if I am still not on your /ignore list :)15:12
daniloscr3, and I hope you won't be bothered with lp-devs mistriaging bugs for launchpad-results from now on, because that's what we do :)15:13
adeuringgmb: could you please review this MP: https://code.launchpad.net/~adeuring/launchpad/bug-739052-9/+merge/76241?15:14
gmbadeuring: There's a couple of branches in the queue in front of you, but I'll try to get to it.15:15
adeuringgmb: ok, thanks15:15
cr3danilos: bugs for launchpad-results are on my super sonic radar, so I'd like to see you try mistriaging bugs :)15:15
=== salgado-lunch is now known as salgado
bigjoolsflacoste: your guess was right about the clashing twisted paths15:53
flacostebigjools: do we need to use a plugins? can't we use a regular tac file?15:54
bigjoolsflacoste: we can't15:54
bigjoolstacs don't let you pass command line args15:54
bigjoolsflacoste: ah I may be talking cobblers15:55
bigjoolsit does find it but there's an import error that twisted was masking15:55
bigjoolshence ignoring the plugin15:55
=== al-maisan is now known as almaisan-away
bigjoolsgary_poster: I have an extra directory in txlongpoll that also needs to be in the egg. How do I make that happen?16:05
gmbsinzui: r=me with grammatical nitpicks16:09
sinzuithank you16:10
=== beuno is now known as beuno-lunch
nigelbsinzui: Heh, re: the mailing list thread - Of course, you're the expert in mass bug status changes :P (j/k)16:11
=== deryck is now known as deryck[lunch]
sinzuinigelb, indeed. This script is actually from my 18 month effort to make sense of Lp's bugs16:12
nigelbsinzui: Its interesting how LP bugs are all Critical, High, or Low.16:13
nigelbI liked what stub suggested16:13
nigelbCritical should be reserved for things that need overnight/weekend fixing.16:13
sinzuiThere are only three states. LP engineers like to bend Lp rules while telling other projects not to do it16:14
nigelbsinzui: Which turns out to be - "Now!", "Some time in the next 6 months", "not any time soon"16:15
sinzuinigelb, The three states are: do now (move to the top of the schedule), do next (schedule), do whenever (wait for an opportunity when fixing another bug)16:15
nigelbsinzui: ah! that makes sense, yes.16:17
nigelbI tend to pick bugs from the last queue since those are the most unloved.16:17
sinzuinigelb, right. The performance-bugs-critical experiment failed because we could not distinguish between operational-critical bugs. maintenance squads work on critical (yet tagged work), feature squads work on high(yet tagged work)16:18
nigelbAh.16:18
bigjoolssinzui: case in point being the fact that poppy is still not fixed16:19
nigelbI was curious how feature squads picked work16:19
bigjoolsit's down to the lead, who is the project manager for that feature16:20
sinzuiWe tag bugs to be part of a feature. We mark the required ones as high, and the optional ones as low.16:20
sinzuinigelb, oh, and we mark those that happen to be oopes/regressions/timeouts as critical to remind our selves they really need to be fixed16:21
nigelbah16:21
nigelbso, that explains the tags that I've seen16:21
nigelband somewhere in betweeen the escalated bugs also come into play. I'm guessing those go to maintenance queue.16:22
sinzuinigelb, I would like to user words that help developers and users know what is going to happen when the bug's importance is set. maybe essential, expected, optional16:22
nigelbsinzui: Actually, it would be awesome if teams had the ability to Change bug statuses.16:23
nigelbLike, a project says, we will rename Critical to -> X, High -> Y, Low -> Z. We won't use the others.16:23
nigelbs/teams/projects16:24
bigjoolsflacoste: do you know how to get a non-python file in an egg?16:26
sinzuinigelb, I put some thought to that. We already map external importance to Lp importance. We could support a project mapping that permits qualification of the importance. There could be three mapping to low, one meaning  a feature request, a bug in the rules, a rare oops that users can recover from16:26
nigelbsinzui: But those can be done with status + tags. I like having fewer statuses than more.16:27
=== matsubara-lunch is now known as matsubara
sinzuinigelb, me too. I never suggested we support that level of customisation. project owners sometimes ask for it, but that undermines inter-project collaboration16:28
sinzuiUser just want meaningful labels.16:28
gary_posterbigjools, /me lunching, but just saw your question.  The sarcastic solution is to use subversion, since setuptools has automatic support for that and only that.  The real solution is to use MANIFEST.in.  This is an underdocumented Python thingy.  Lemme see if I can find you the docs...16:29
bigjoolsgary_poster: ok thanks.  It's an xml file that the project needs to load at runtime :(16:30
gary_posterbigjools, ack.  So, the docs are http://docs.python.org/distutils/sourcedist.html and in particular http://docs.python.org/distutils/sourcedist.html#manifest-template .  A number of ye olde lazr.* packages have them, for .txt files and so on.  Here's an example: http://bazaar.launchpad.net/~lazr-developers/lazr.restful/trunk/view/head:/MANIFEST.in16:32
bigjoolsgary_poster: you rock, thanks16:32
gary_posterwelcome16:32
bigjoolsgary_poster: ah so does it override the packages= on the setup() ?16:33
nigelbsinzui: Agreed (sorry, connection is being flaky today)16:33
gmbadeuring: I'm not going to be able to get through your branch before my EoD. Might be worth asking the next OCR, which is... StevenK, if I'm not mistaken.16:34
adeuringgmb: sure, no problem.16:34
gmbThanks.16:35
=== gmb changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 256 - 0:[#########]:256
sinzuijcsackett, do you have time to mumble16:46
gary_posterbigjools, sorry, had wandered away again.  AFAIK, it is different.  It describes what files locally in this directory tree should be included.  I don't think you can tell python files specified in packages= to take a hike, but then I've never tried.  Maybe it does override.  I've always done both.16:48
bigjoolsgary_poster: yeah I have it working nicely now, thanks16:49
gary_posterawesome16:49
=== deryck[lunch] is now known as deryck
=== beuno-lunch is now known as beuno
jcsackettsinzui: i can mumble now--i was grabbing lunch when you pinged me. does now work for you?17:30
sinzuijcsackett, too late. I have a meeting with flacoste in 0 seconds17:30
sinzuiCan we talk in about an hour?17:30
jcsackettsinzui: certainly.17:30
flacostesinzui: skype time?17:31
sinzuiflacoste, I am ready17:31
cr3is there a difference between the verb "new" and "create" in the launchpad api? is one preferred over the other in some circumstances?18:00
flacostecr3: no. there isn't, fixing this inconsistency would be nice18:19
=== Ursinha is now known as Ursinha-lunch
sinzuihi jcsackett. Do you have time to mumble?18:59
jcsackettsinzui: sure, just a moment.18:59
jelmerabentley: I'm pretty sure bug 854654 is a dupe19:01
_mup_Bug #854654: Cyrylic nicknames in ADC are not allowed <FlexHub:Confirmed> < https://launchpad.net/bugs/854654 >19:01
jelmerehm, bug 85496419:02
abentleyjelmer: I couldn't find another bug like it.19:02
_mup_Bug #854964: 2a format permits fetching tree-reference entries <2a> <nested-trees> <Bazaar:New> < https://launchpad.net/bugs/854964 >19:02
jelmerI recall filing one in the past, but can't find it now either..19:02
abentleyjelmer: anyhow, it damages the prospects of converting the subtree branches to 2a, because we don't know what might be in their history.19:03
abentleyjelmer: even though lp:~ebbe/+junk/game is the only one that could not be pulled into a 2a branch.19:05
lifelesssinzui: your summary of medium bugs includes low bugs19:46
lifelesssinzui: is it stale?19:46
sinzuilifeless, I think I need to recheck the rules. I expected duplicates from multiple bug tasks, but not actual errors19:48
* sinzui rechecks the script19:49
lifelesssinzui: I just invalidated the bug about email processing not being tested enough19:49
lifelessas a not-useful-bug19:49
lifelessbut19:49
lifelessit was low19:49
lifelessand in your list of mediums :)19:49
lifelessyou made it low yourself not long ago19:49
sinzuiha, I tend to do that when I view a Medium bug. My new report will be done in a few minutes.19:51
lifelessit was bug 3013819:52
_mup_Bug #30138: Notifications generated by the email interface should be properly tested <email> <lp-bugs> <story-better-notification-sending> <test-system> <Launchpad itself:Invalid> < https://launchpad.net/bugs/30138 >19:52
sinzuiah, I am not getting open-only bugs. So much for the default search rules.19:53
lifelesssinzui: you are19:53
lifelesssinzui: I *closed* it when I saw it in the list.19:53
sinzui:)19:53
lifelesssinzui: my concern is that it was *low* since '2011-08-26'19:54
lifelessso your list must be a month old or something19:54
lifeless(a month old | buggy)19:54
lifelessif its a month old its fine. If its buggy its not :)19:54
sinzuiWhile the script pre-exists, the list was made this morning. I wonder if I have cached bugs19:55
timrcanyway to get at ppa creation date from the web service api?19:55
lifelessthen there was something significantly wonky19:55
timrcdoes not look like it from my cursory check :/19:55
lifelesssinzui: I see 967 medium bugs19:56
lifelesssinzui: ah, thats lp; lp-project: 106819:56
sinzuiyes, I am searching lp-project19:57
lifelesssinzui: I think we can just close many of these19:57
lifelesse.g. https://bugs.launchpad.net/launchpad/+bug/345419:57
_mup_Bug #3454: Should have a UI for assigning multiple tasks to a milestone <lp-bugs> <milestone-management> <Launchpad itself:Triaged> < https://launchpad.net/bugs/3454 >19:57
sinzuiWell I think that of many low bugs. as well19:57
lifelessits obviously a work item in planned work, rather than a defect report describing a users issue / limitation the user encountered.19:58
lifelessI will do a table scan of these.19:58
sinzuiI remind myself that if a user provided a patch, I would accept it19:58
* lifeless opens 100 tabs19:58
lifelessokok, 7519:59
nigelb...19:59
nigelblifeless: Aren't you supposed to be away today?19:59
sinzuilifeless, the feature aspect of the bug is an interesting point considering that many of the bugs are reported by us as an idea that seamed relevant 3 years ago19:59
lifelesssinzui: I agree20:00
lifelesssinzui: but I think for most things we have no shortage of ideas on how to improve; they don't generally have value like a report of how something affected a user.20:01
lifelesssinzui: I won't be cavalier20:01
lifelesssinzui: if you want to take the second page of a web search for medium bugs in -project, default sort order; we could triage 10% of the total in about 10 minutes.20:01
lifelessnigelb: yes, but thats never stopped me.20:02
sinzuijml said something similar. I wish I could remember the exact phrasing of his witticism.20:02
nigelblifeless: Good point. I was planning to pick your brains tomorrow morning.If you will be around later today, I might just do that :)20:02
lifelessnigelb: Think of it as priorities: today my priority is my family. But I may do somework. On work days my priority is work, but I may look after my family.20:02
nigelblifeless: Well said :)20:02
=== matsubara is now known as matsubara-afk
sinzuilifeless, the difference in my numbers and lp-projects numbers is that I not subscribed to all private bugs :)20:04
lifelesssinzui: sure, but how did that low bug get in the list ?20:06
sinzuilifeless, I cannot explain. My revised report only shows mediums: http://pastebin.ubuntu.com/694004/20:07
sinzuilifeless, sorry. I ran against qastaging!20:09
* sinzui runs against lpnet20:09
lifelesssinzui: haha :)20:10
lifelessdo we support debtags yet ?20:14
lifelessno :)20:15
lifelessbug 4730 - does the publisher have a --dry-run ?20:19
_mup_Bug #4730: Publisher tool option to only change the database, not the archive <lp-soyuz> <Launchpad itself:Incomplete> < https://launchpad.net/bugs/4730 >20:19
=== almaisan-away is now known as al-maisan
lifelesshah20:20
=== al-maisan is now known as almaisan-away
=== Ursinha-lunch is now known as Ursinha
sinzuijcsackett, r=me21:05
jcsackettsinzui: hurray!21:05
jcsackettsinzui: any chance this can wait a bit too land? i'd like to take some time to debug my ec2 issues and having a branch to send out would be nice. :-)21:05
jcsacketts/too land/to land/21:06
sinzuiland as you you wish21:06
lifelesssinzui: https://bugs.launchpad.net/launchpad/+bug/3434321:07
_mup_Bug #34343: Shouldn't allow task or blueprint reassignment to an upstream that doesn't use Launchpad <lp-blueprints> <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/34343 >21:07
lifelesssinzui: did we perhaps fix-by-driveby that ?21:08
sinzuihmm21:08
sinzuilifeless, I do not think so. I reported that bugs has the same error last month21:09
lifelessah, so there is a dupe out there ? :)21:09
sinzuilifeless, this they are not since we need three vocabs, each to represent valid spectarget, bugtarget, and questiontarget21:10
sinzuiThe current fields only require an active target21:10
lifelessahhh! - you know that librarian bug21:11
lifelesswaaaay old dup21:11
lifelesshttps://bugs.launchpad.net/launchpad/+bug/3475821:11
_mup_Bug #34758: librarian will set type to text/html though it should be text/plain <infrastructure> <librarian> <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/34758 >21:11
lifelessah no its not21:12
sinzuiI do not think it is either.21:12
lifelessdo we have a formatter for libraryfilealias ?21:23
lifelessnearly done21:28
lifeless\o/21:38
lifeless10% done21:38
lifelessI hope I didn't overwhelm anyone's mail queue :)21:53
sinzuiwallyworld_, wgrant, StevenK. I will be 15 minutes late to the standup22:40
wallyworld_sinzui: ok22:40
lifelessjames_w: hi22:50

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