/srv/irclogs.ubuntu.com/2010/08/24/#launchpad-dev.txt

wgrantlifeless: Our requests don't have an IAnnotations adapter?00:02
=== Ursinha is now known as Ursinha-afk
gary_posterlifeless: there is a .annotations attribute for that purpose00:31
gary_posterI hope it is available as an IAnnotations adapter, but I don't remember if it is00:31
gary_posterBut, obviously, the direct access is pretty clear00:32
lifelesswgrant: well, webapp/adapter uses thread locals rather than looking up the request and using that00:36
lifelessgary_poster: thanks00:36
lifelessgary_poster: so its .annotations.thing ?00:37
gary_posterlifeless, .annotations is a dict00:41
lifelessok; request.annotations[00:41
lifeless'thing']00:41
gary_posteryeah00:41
lifelessI don't think I can use it for this work anyway, because webapp.adapter is involved00:41
lifelessbut I may do a pass at that to make it better in future.00:42
lifelesswgrant: gary_poster: did you see my question above about timelines ?00:42
gary_posterno, looking00:42
lifelessin case you didn't, would value both your responses to :00:42
lifelessIf I said object X is "a request timeline", what would you think it does ?00:42
gary_posterI would think it would what I called in another context an "object log":00:42
gary_posteran iterable of records of things that happened to the object00:43
gary_posterin order of when they happened00:43
gary_posterwhere each record is an object or a dict or something else code-friendly00:44
gary_poster(as opposed to just a string)00:44
gary_posterso, that, for the request00:44
wgrantI'd think it would record events like request start, traversal start, traversal finish, template rendering times, that sort of thing. Possibly SQL too.00:44
gary_posteryeah, that's what I'd expect to see in what I described00:45
lifelessok cool00:52
lifelesslp.services.timeline is born00:52
lifelesslast 'boy don't you wish robert knew zope well' question00:53
lifelessis there a way to 'get me the current request please' ?00:53
mwhudsonlifeless: get_current_browser_request()00:53
lifelessmwhudson: thanks00:53
mwhudsonlifeless: it's in canonical.launchpad.webapp.mumble00:53
mwhudsonprobably .publisher00:53
lifelessok00:54
lifelessand for tests, how does one set that ?00:54
mwhudsonreq = ...00:54
mwhudsonlogin(ANONYMOUS, req)00:54
lifelessah sweet00:58
lifelessgary_poster: was that previous code open ? Could we just grab it ?01:02
gary_posterlifeless, ZODB based IIRC.  I'll look...01:02
gary_posterlifeless, not ZODB directly, actually, but I don't think it is quite what you want: http://pypi.python.org/pypi/zc.objectlog FWIW01:05
lifelessyeah, different focus01:10
lifelessthis is small enough, I hope, that any duplication of effort will be minimal01:10
lifelessif not, we can merge the common bits later01:10
lifelessthanks01:10
lifelessI'm off to sign back the rental property01:11
thumper<lifeless> lp.services.timeline is born ?!?01:14
thumperlifeless: is this what I think it is?01:14
lifelessI don't know, what do you think it is?01:18
lifelessthumper: ok, really gone; back ~ 3 and we can diskuss then01:20
lifelessthumper: turns out I can leech some wifi here :P02:18
thumper:)02:18
=== Ursinha-afk is now known as Ursinha
lifelessthumper: so you were asking what lp.services.timeline is02:23
thumperI was02:24
lifeless+"""lp.services.timeline provides a timeline for varied actions.02:24
lifeless+02:24
lifeless+This is used as part of determining where time goes in a request.02:24
lifeless+02:24
lifeless+NOTE that it is not LP's timeline-view for products, though they are similar in02:24
lifeless+intent and concept (If a better name presents itself, this package may be02:24
lifeless+renamed).02:24
lifeless+02:24
lifeless+Because this part of lp.services, packages in this namespace can only use02:24
lifeless+general LAZR or library functionality.02:24
lifeless+"""02:24
thumper:(02:26
lifelesswhat were you thinking it was?02:26
wgrantA project timeline, which everybody has wanted for approximately ever?02:27
wgrantAh, I see that's covered in the docstring. Heh.02:27
lifelessgrep for timeline in the source; there is a timeline thing already02:28
lifelessproduct timeline that is02:28
wgrantEr.02:28
wgrantI've never seen one.02:28
thumpernot an aggregated timeline of interesting events02:29
wgrant(which every other hosting site has)02:29
thumperI have a half-baked plan for project timeliens02:29
thumperI really should put it back in the oven some more02:29
lifelessI'd love timelines02:29
lifelessfor objects02:30
lifelessrss feeds interact with this02:30
* thumper nods02:30
lifelesseverything in a timeline should be in the feed02:30
lifelessand vice verca02:30
lifelessIMNSHO02:30
thumperagreed02:30
wgrantYep.02:30
thumperlifeless: perhaps we (two) should have a sprint on this?02:30
thumperlifeless: you could come down02:30
wgrantBut feature development doesn't seem to happen much these days.02:30
lifelessor you could come up :)02:30
thumperlifeless: or we could just remote sprint02:30
lifelessthumper: I'd be delighted to help you scratch that itch02:31
thumperlifeless: but actually dedicate time to it02:31
thumperlifeless: it'd have to be after francis is back02:31
lifelesswhen we have RFWTAD I'll have a slot open in kanbam02:31
thumper:(02:32
thumperjust noticed I have a crack in my laptop keyboard02:32
thumperprobably from carrying it around badly02:32
lifeless:<02:36
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
thumperis there any way to do a reverse view lookup?02:52
thumperfrom a name to get the layer?02:52
lifeless'the', not 'a' ?02:52
thumperlifeless: a view may or may not have a layer defined02:56
thumperlifeless: I'm after a way to simplify some of the tests02:56
thumperlifeless: so instead of having to specify the rootsite of 'code' for the +recipe view02:56
thumperwe know that the +recipe view is only ever on the 'code' site02:57
thumperso we shouldn't have to pass it in02:57
lifelessmakes sense to me02:57
mwhudsonthumper: basically you want to know 'for which X will queryMultiAdapter((context_object, X), name='+recipe') not return None' ?03:04
thumpermwhudson: yeah03:05
mwhudsonthumper: doesn't look easy at all03:09
thumpermwhudson: no03:09
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Jorjao
=== Jorjao is now known as Ursinha
lifelessthis stuff isn't half crufty05:32
lifelessalso, I hate the import fascist with a vengeance05:33
StevenKlifeless: Well, *duh*, it's a fascist.05:33
lifelessjust saying05:33
=== StevenK changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 2 of 10.09 | Performance Tuesday! | PQM is OPEN | firefighting: - | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews
lifelessalso05:34
lifelessits a bit annoying that set_request_started *doesn't take a request*05:34
lifelessanyhoo05:34
lifelessI think I'll have a timeline happy by EOD05:34
lifelessstub: thanks for fixing the ppr05:36
lifelessstub: did you have a chance to look at the dba tagged bug ?05:36
stubDidn't fix a thing. Just devpad being its usual reliable self I guess.05:37
lifelessthe test suite breaks -hard- when set_request_timeout is naffed05:37
lifelessstub: heh, well you can take the credit :)05:37
stubAlways do05:37
wgrantWTF05:48
wgrantWhy am I in the db_lp blamelist?05:48
wgrantI haven't had anything landed for quite a while.05:49
lifelessstub: so05:53
lifelessstub: dba bugs - did you have a chance, or not ?05:54
=== Ursinha is now known as Ursinha-afk
stubdid one, can't remember the other05:54
lifelesshttps://bugs.edge.launchpad.net/launchpad-project/+bugs?field.tag=dba05:55
lifelessboth pending your input05:55
spmwgrant: oh didn't we tell you about that patch to buildbot? lp:~spm/buildbot-configs/always-blame-wgrant we figured you'd understand05:57
* spm runs away on the school run; so as to allow a colder dish of revenge to be savoured by M. Grant.05:58
wgrantHeh.06:00
lifelessmatsubara-afk: hi06:05
* thumper EODs for now, prolly back later for more chats :)06:11
lifelessthumper: ciao, we should have a weekly when you're back06:14
lifelessthumper: bug 615647 needs your input06:40
_mup_Bug #615647: BranchMergeProposal:+index timeout <dba> <timeout> <Launchpad Bazaar Integration:Triaged> <https://launchpad.net/bugs/615647>06:40
lifelessstub: did the OOPS on that one help at all ?06:40
stubit demonstrates that the normally fast query can block. I suspect branch scanner inserting 10k or more rows to that table in a big transaction.06:53
lifelessok06:53
lifelessis there something we can do to gather data about the cause of blocks like that ?06:53
stubIt also shows the master db is being used, but for this page that is silly06:53
lifeless(I thought MVCC is meant to help)06:54
stubNot yet.06:54
stubMVCC does help. We are maintaining indexes on half a billion rows remember.06:54
lifelesstrue06:54
lifelessI wasn't meaning to be critical -- I just thought that the design meant readers weren't blocked06:55
stubSo PG 8.4 will help. Code team has eventual plans to drop this table entirely. There is a branch that has been lost dealing with dropping the id column (narrower table will perform better and speed replica and staging rebuilds noticeably and save several gigabytes of disk)06:55
stubThe design does mean readers should not be blocked. To be honest, I don't understand why it could be blocking for that long.06:57
lifelessshould we escalate to our support mob ?06:57
stubThey might be able to tell us why. Not sure if that helps us though.06:57
stubNormal pg mailing lists would give the same or better answer.06:58
lifelessWould depend on the answer I think.06:58
lifelessI think we should contact someone ;)07:00
lifelessspm: yes, i can see the issue there; the respondant isn't all charm either.07:01
spmlifeless: oh yes. I wasn't going there. A sledgehammer has *two* faces after all. :-)07:01
wgrantSo, seriously, what's with that db_lp failure?07:02
spmI killed the ec2 instances. i suspect they should be focibly restarted.07:03
wgrantYes, but why am I in it!?07:03
lifelessbecause you have a godlike demeanor07:04
wgrant...07:04
lifeless^W^Wchildlike demeanor ?07:05
lifelesswgrant: seriously, noone knows.07:05
stubStart with #postgresql07:05
lifelesswgrant: is it worth digging ?07:05
wgrantlifeless: Probably not.07:05
lifelessstub: cool, thanks07:05
wgrantJust wondering if there was any obvious reason (eg. it started two weeks ago and hung).07:06
wgrantIt concerns me when the CI system does inexplicable things.07:06
StevenKI don't think db_lp and lp have been building for a while ...07:06
StevenKSince lucid_{db_,}lp is the new hotness07:06
lifelessStevenK: I repeat, I checked07:16
lifelessStevenK: they are both meant to build until we migrate completely.07:16
lifelessbbiab, foodingk.07:16
stub<xmlrpc@launchpad_prod_3:21247> 2010-08-08 21:19:20 BST LOG:  process 21247 still waiting for ShareLock on transaction 1884213882 after 1000.106 ms07:23
stubDifferent problem, but some insight into the xmlrpc slow stuff07:24
spmouch07:24
henningeMorning! ;)07:50
henningeDoes anybody have an idea how an error like this can happen on an EC2 test run?07:50
henningehttp://paste.ubuntu.com/482770/07:51
henningejtv: ^ that's on the recife branch after merging db-stable.07:51
jtvhenninge: looking...07:51
jtvhenninge: on ec2, that's strange.07:53
jtvstub: any idea why ec2 might give the "you need to run make schema" error? ^^07:53
jtvmaybe need to rebuild the sampledata?07:54
stubI don't know why that would happen07:57
stubPerhaps a badly named db patch, which is picked up by the has-this-patch-been-applied checks but not picked up by the apply-patches script.07:58
jtvPerhaps something broke the patch, and we ignore that failure (e.g. because we know that this check will cover it)?07:58
stubLook for oddities in the patch filename, such as _ instead of -, not enough digits, typo in 'patch' or 'sql'...07:59
henningeDespite that message the test suite runs without fail or error.08:00
jtvstub: it says patch-2207-96-0.sql has been applied to the db but is not in the source tree… anything weird about that name?08:00
stubYes, it is old. The new baseline landed and patches are now 2208, not 220708:01
stubIs LaunchpadDatabaseRevision in the sampledata?08:02
jtvdunno08:02
jtvstub: yup, it is08:03
henningestub: So we need to rename the patch to 2208-96 ?08:03
jtvSo chances are the patch was removed from the directory but not from the sampledata.08:03
jtvhenninge: is that our Recife patch by any chance?08:04
jtvIn which case we may need a new patch number for the 2008 series…08:04
stubhenninge: Yes - patches numbered 2207 will explode. I can give you a new number of you had an official one given out.08:04
henningejtv: yes, of course. ;)08:04
henningestub: I don't think it was an official number.08:05
jtvThe Translations team frantically digs for the DB review...08:06
jtvhenninge: my version of the recife branch doesn't have that patch any more.  :( :( :(08:09
jtvhenninge: hmm… looks like our patch was numbered 99, not 9608:12
jtvSo what was in 9608:13
jtv?08:13
jtvWas there ever a patch-2207-96-0.sql?  Google says no.08:13
henningeNo idea08:13
henningeWow, the mystery of the patch that never was ...08:14
jtvI just found one hit on google, but I'm fairly sure it's not supposed to redirect to 01proxy.com08:14
henningeDON'T CLICK!08:14
henninge;)08:14
jtvToo late08:14
jtvIt's actually a hit on 01proxy.  :(08:15
jtvGoogle's cached version of the 01proxy.com page shows an MP by Curtis, rejected by himself... MP 22810.08:16
jtvbug 53802408:16
_mup_Bug #538024: No way of saying "This project is not packaged" <qa-ok> <Launchpad Registry:Fix Released by sinzui> <https://launchpad.net/bugs/538024>08:16
lifelessI need a tip/hand with 'requests' in 'scripts'08:16
jtvPatch description: "Added date_last_packaging_check column to Product."08:16
lifelessspecifically :-08:16
lifelessI have some code08:16
lifelessit keys off of request as its context08:16
lifelessbut scripts which haven't setup a 'current_browser_request' try to use it.08:17
lifelesse.g. checkwatches.08:17
lifelessis calling 'login(ANONYMOUS, ScriptRequest())' there sane ?08:17
lifelessor should I just make my code (which is the sql gathering oops helper) silently do-nothing ?08:17
lifeless(its defined as doing nothing in that case anyway)08:18
lifelessmwhudson: ^ I hear you've done a bit of out-of-appserver-stuff, care to comment ?08:18
henningeWhy do I keep seeing this when running make clean?08:19
henningerm: Entfernen von „/var/tmp/bazaar.launchpad.dev/rewrite.log“ nicht möglich: Permission denied08:19
henninge(No, I am not talking about the German text for "removal not possible" ... ;)08:19
lifelessls -l /var/tmp/bazaar.launchpad.dev/rewrite.log ?08:19
bigjoolsbecause it gets created as root by Apache08:19
bigjoolsit's seriously annoying08:20
henningelifeless: I already sudo deleted it ...08:20
bigjoolsnot to mention having the rewrite process running all the time (which I disabled)08:20
henningebigjools: Thanks, it's not on my end, then.08:21
spmhenninge: "export LANG=C ; make clean" should sort out the german text problem? <== not helping :-P08:21
henningeHi spm! ;-)08:21
spmheya!08:21
bigjoolsLANG=queens_en.utf808:21
adeuringgood morning08:22
jtvbigjools: that'd be en_QUEENS.UTF-8 and it'd probably be taken by Queens, NY08:22
jtvhi adeuring08:22
bigjoolsjtv: impossible!08:23
adeuringhi jtv!08:23
jtvbigjools: not at all.  They invented democracy and English, so why shouldn't they have grabbed this one as well?08:23
lifelessso, any comment on my login query ?08:25
lifelessit feels wrong to use lp.testing.login() in a script.08:25
bigjoolsjtv: ha :)08:25
jtvlifeless: no idea on this end, sorry08:26
lifelessthanks08:26
jtv(just saying: you're not being ignored in favour of jokes)08:26
lifelessjtv: hey, I havne't reviewed your thing yet.08:26
jtvlifeless: careful—Quotes is just a few clicks awa08:26
jtvy08:26
lifelessjtv: please get a general review of it done and land it; I'll look at it when I get a cycle08:26
jtvlifeless: ok.  Not much there, it's really tiny.08:27
jmlgood morning08:35
thumperlifeless: why are you logging in for a script?08:35
thumperjml: hi08:35
jtvhi jml, hi thumper08:35
thumperjtv: do you know the recursive sql syntax for postgresql?08:36
thumperjtv: or put it another way, could you write a correct recursive query?08:36
thumperjtv: mine didn't work08:36
jtvthumper: haven't tried yet08:36
thumperjtv: ack08:36
jtvStill too intimidated by the SQL Mandelbrot08:36
jtvAll I remember is the "with" is basically a pipe, and you can feed the outcome of the query back into that pipe as it were08:37
jtvthumper: what kind of problem are you trying to solve?  Transitive closure-type stuff?08:37
thumperjtv: trying a recursive query to identify if a revision is in a branch based on the revision and revision parent tables avoiding the branch revision table08:38
thumperI'd love to be able to test the query on the staging db08:39
thumperjtv: part of the problem though is that the tree we are traversing is likely to be deep and narrow08:39
=== almaisan-away is now known as al-maisan
jtvthumper: this was actually one of the test questions I was asked as part of the hiring process… guy named Pool.08:40
jtvWonder what made him think of this problem.  :)08:40
lifelessthumper: we should have a participation in place08:41
thumpereh?08:41
lifelessthumper: for security proxies etc to work08:41
lifelessthumper: and for things keyed off of that to work too08:41
thumperlifeless: ah, EOLDCONTEXT08:41
thumperare we in testfix mode?08:43
lifelessthumper: I've refactored get_request_statements to not use a thread local variable08:43
lifelessthumper: and to store much more than sql08:43
lifelesslike email, rabbit, memcache, bzr times08:43
lifelessbut, sadly, I now need to learn about our scripts stuff08:44
jmlthumper, I guess so, since the last build "failed"08:45
lifelessjml: ah, you know about this stuff; see my question above08:46
jmllifeless, which one?08:46
lifeless19:16 < lifeless> I need a tip/hand with 'requests' in 'scripts'08:47
lifeless...08:47
jmllifeless, in answer to your question, yes, I think using ScriptRequest() there is sane08:48
jmlhmm08:48
lifelessjml: so, setupInteraction(ANONYMOUS, participation=ScriptRequest()) ?08:48
lifelessor will we need a celebrity or some such to represent the scripts (do we have one already) ?08:49
jmllifeless, I think so. No celeb.08:49
wgrantDon't scripts mostly run with PemissiveSecurityPolicy?08:49
jmlit's been so long since I needed it.08:49
wgrantSoyuz ones do, at least.08:49
lifelesswgrant: I've not heard of that08:49
jmlwgrant, they (almost?) all do08:49
jmllifeless, ahh, right.08:50
jmlsome more context for you then!08:50
lifelessbut if it means 'ANONYMOUS can write' then I'm happy08:50
jmlthey also load less zcml08:50
jmlin a half-hearted effort to have them run faster08:50
wgrantDo they really?08:50
* wgrant checks.08:50
jmlwgrant, they used to08:50
wgrantIt certainly doesn't feel like it.08:50
jmlwgrant, I should say "a subset of our zcml" to hedge my bets.08:51
wgrantHeh.08:51
jmlinitZopeless is key here, iirc.08:52
wgrantWell, sort of.08:53
wgrantexecute_zcml_from_scripts is a separate thing.08:53
wgrantBut they are usual called alongside each other.08:53
jmlahh right.08:53
wgrants/from/for/08:53
jmlit floods back like a wave of mutilation.08:53
wgrantinitZopeless does the transaction setup.08:53
wgrantexecute_zcml_for_scripts does ZCML and security and stuff.08:54
jmland exec_zcml_for_scripts sets up the interaction08:54
wgrantScripts call both.08:54
wgrantYep.08:54
jml    # This is a convenient hack to set up a zope interaction, before we get08:54
jml    # the proper API for having a principal / user running in scripts.08:54
jml    # The script will have full permissions because of the08:54
jml    # PermissiveSecurityPolicy set up in script.zcml.08:54
jml    setupInteractionByEmail(ANONYMOUS)08:54
lifelessso08:55
wgrantlifeless: Scripts shouldn't need anybody logged in.08:55
lifelessis it, in principle, as simple as adding ScriptRequest() to that ?08:55
wgrantIn PermissiveSecurityPolicy, all permissions are held at all times.08:55
wgrantThis, confusingly, does not mean that all operations are possible.08:55
lifelessshould is a strong term08:55
jmllifeless, not sure. It ought to be.08:55
jmllifeless, try it?08:56
lifelessjml: I will.08:56
jmllifeless, "should" is an ambiguous term.08:56
lifelessjml: what file was that ?08:56
jmllifeless, c.l.scripts.__init__08:56
bigjoolsjml: why do we use tac files instead of just running the reactor from a .py?08:58
jmlbigjools, because we get daemonization and logging and a bunch of other stuff from twistd for free08:58
bigjoolsok08:58
lifelessjml: its a bit annoying that that isn't a two-liner to get from a py file08:59
jmllifeless, yes. known bug.08:59
=== jamesh_ is now known as jamesh
jmlit's *also* a bit annoying that there are tac files and there are "twistd plugins", and that the latter are somewhat nicer to use but harder to write.08:59
lifelessagreed09:00
jmlHmm.09:00
jmlI was about to say that it was unfortunate that no-one pays me to hack on Twisted full time.09:01
lifelesshah09:01
lifelessAttributeError: 'ScriptRequest' object has no attribute 'interaction'09:01
jmlBut I've never really seriously pursued it as an option.09:01
jmlHmm.09:01
jmlI can't remember if the standard request object is a participation or whether it gets adapted to one.09:02
lifelessI'm digging09:03
lifelessthe root of this is me wanting to write clean code09:03
jmltsk tsk.09:03
lifelessand adapter._local being a) fugly and b) not in lp.services09:04
lifelesswgrant: going back to what scripts need.09:09
lifelesswgrant: I think its reasonable to say that scripts are always acting on *behalf* of someone modelled in the systme.09:10
lifelesswgrant: be it a celebrity or user09:10
wgrantlifeless: Probably, yes. But that's not how they're implemented.09:10
lifelesswgrant: being implemented differently gives us two environments to write code for, without justification for that split.09:11
lifelesswgrant: this is, I argue, harder than it needs to be. So we should change it.09:11
wgrantOh yes, and it results in ugly ZCML and probably security holes too.09:11
lifelesshowever, the trivial didn't work, so I'm going to workaround, bug is filed, putting details in it.09:11
thumperan interesting tidbit of information...09:13
thumperapproximately half of the 600 million branch revision rows are for launchpad branches :)09:13
lifelessjml: wgrant: I would appreciate comments on https://bugs.edge.launchpad.net/launchpad-foundations/+bug/62319909:15
_mup_Bug #623199: scripts do not establish valid zope partiticipations <Launchpad Foundations:New> <https://launchpad.net/bugs/623199>09:15
wgrantthumper: How hard would it be to remove the table itself, and not just the primary key?09:16
thumper:)09:16
thumperwgrant: there are half a dozen use-cases for it09:16
wgrantthumper: I mean, it's all redundant... but I guess postgres might not be excellent at dealing with that sort of data.09:16
thumperwhich I'd like to replace09:16
lifelesswell09:16
lifelessfor one, it needs to be migrated from SQLBase09:16
lifelessif it hasn't already09:16
thumperlifeless: it needs to be stabbed in the neck09:16
wgrantlifeless: No, it needs to be deleted.09:17
thumperwgrant: hi five09:17
lifeless'to delete the id column you cannot use SQLBase'09:17
StevenKIt's moving, kill it!09:17
thumperor high five09:17
wgrantlifeless: I want to delete the *table*.09:17
lifelessI was answering your fairly specific question09:17
wgrantNot just the column.09:17
lifelesssomeones09:17
thumperwgrant: jam had some interesting ideas to make it better09:17
wgrantStevenK: More "It's redundant, huge and slow, kill it!"09:17
lifelesswgrant: preprocessing is pretty standard for graph problem domains09:18
lifelessthis particular preprocessing layout isn't ideal.09:18
lifelessbut running from the adjacency list is also going to be terrible.09:18
lifelessif you're interested in tackling this, RMQ transform papers are a good place to start to get ideas.09:19
* thumper EODs again09:19
lifelesssomething like the graph db stuff twitter has opened source might be nice too09:19
mrevellMorning09:19
jmlmrevell, good morning.09:20
jmllifeless, what about storing it all in one big 2a repo?09:20
StevenKwgrant: Suprised you haven't commented on my latest branch, Stalker!09:20
jmllifeless, hey, you know what would help me write cleaner code?09:21
StevenKwgrant: And, "It's moving, kill it" is a movie reference, I just can't remember which.09:21
jmllifeless, usability improvements to testrepository :P09:21
wgrantStevenK: Uni workload is making my stalking less effective, sadly.09:23
wgrantA GINA BRANCH!?09:23
wgrantWhat is this?09:24
wgrantNobody works on gina.09:24
lifelessjml: yes, they are really high up09:25
StevenKwgrant: I just proved you wrong :-P09:27
wgrant:(09:29
stubWe delete the BranchRevision.id column because it is unnecessary and dropping the entire table is a larger, unscheduled and not ready to code task.09:29
stubThink of it like getting 10% more effective ram on the master database.09:30
stubWell, maybe not that much but quite noticible.09:32
stubnoticeable09:32
lifelessmpt: hey09:43
mpthi lifeless09:43
lifelessmpt: so, have you heard anything negative about the search changes we did?09:43
mptlifeless, nothing at all, negative or positive :-)09:43
lifelesswell, no noose is good noose09:43
wgrantSearch was bad... it's now very slightly worse.09:43
lifelesswgrant: really ?09:45
lifelesswgrant: which search is worse ?09:45
wgrantDupe search.09:46
lifelessyou're finding it noticable less powerful ?09:46
lifelessor you've seen folk comment on it ?09:46
=== jtv1 is now known as jtv
wgrantI've found a couple of cases where it wasn't really optimal.09:47
wgrantSpecifics I cannot currently recall.09:47
lifelessok09:47
lifelessand that you felt sure the other behaviour would have done bette r?09:47
thumperstub: I'll look at it with my new fella09:52
stubTa. There was work done at the Epic. jtv will recall the details. I don't recall who was actually doing the work and how far it got.09:52
jtvhuh?09:53
stubjtv: Dropping BranchRevision.id09:53
jtvah09:53
jtvI left it in Jon's capable hands, pushing him from time to time to bloody get on with it.09:53
jtvAs I recall, we:09:53
jtv * Stormified the class.09:53
thumperjtv: really?  did it land?09:53
jtvThe stormification did.09:53
thumperjtv: but not the id column removal?09:54
jtvThen, we removed a bunch of references to the id.  Not sure whether that landed.09:54
thumperjtv: thanks, I'll chase jam in the morning09:54
jtvAnd I prepared a branch for him to work off of that made it use (branch, revision) as the primary key.09:54
jtvIs "bloody" a documented permitted splitting of infinitives?09:55
jmlFowler's article on the subject is worth a read.10:00
bigjoolsto go bloody?  or to bloody go?  valid, and very different :)10:01
mptTo bloody go where no vampire has gone before!10:01
stubstop bloody wasting time10:02
stubto boldly split infinitives that no man had split before10:04
* bigjools eats shoots and leaves10:04
jtvnoodles775: argh—what script produces the BuildFarmJobs again?10:13
jtvor maybe bigjools knows10:13
=== adeuring1 is now known as adeuring
noodles775jtv: No script produces BuildFarmJobs on their own?10:14
bigjoolsjtv: what do you want to do?10:15
noodles775When BinaryPackageBuilds are created, BFJs are also created...10:15
* noodles775 thinks that's a better question.10:15
jtvOkay, when are BinaryPackageBuilds created?10:15
bigjoolsjtv: what do you want to do?10:15
jtvI want to verify that pushing an intltool-enabled branch that's set up to generate translation templates is really generating TTBJs10:16
bigjoolsok10:16
wgrantThe scanner creates TTBJs.10:16
jtvwgrant: thanks10:16
wgrantSo 'make sync_branches' will do it locally.10:16
jtvThis is on staging…  it's one of those changes that need verification on each environment we deploy them in.10:17
wgrant(also, TTBJs aren't BFJs yet -- but I hope you're going to fix that soon?)10:17
* bigjools hopes so too10:17
jtvYes yes yes, it's on our shortlist!10:17
bigjoolsstub: I'm trying to get dogfood running and it's bitching about patch-2207-00-0.sql being in the DB but not in the tree.  HALP.10:20
stubbigjools: I suspect you have patch-2207-* files in database/schema10:20
bigjoolsyes :/10:26
bigjoolsthanks10:27
lifelesswell, I'm going to halt(); this fallout is annoying :(.10:37
lifelessso gnight.10:39
wgrant:(10:59
wgrantMy branch to eliminate BuildBase is massively oversized.10:59
wgrantToo much code to move around.11:04
jmlwgrant, by oversized, do you mean "could be split up" or do you mean "more than 800 lines"?11:11
wgrantjml: The latter.11:12
wgrantIt could possibly be split, but it's mostly just moving content from a couple of files to a couple of other files.11:12
jmlwgrant, I'm happy to do the review11:12
jmlalthough maybe not before you sleep.11:13
wgrantIt's not exactly pretty yet, but I figure I'll get it all moved across before cleaning up.11:13
wgrantI'll propose the review shortly.11:13
jtvhenninge: any luck with the recife branch?11:37
henningeoh, you missed that, I guess...11:38
jtvyes, I was out for lunch11:38
henningejtv: It's landed.11:38
jtvthanks henninge—I'll land my branches11:38
henningejtv: .. and you were disconnected11:38
wgrantjml: https://code.edge.launchpad.net/~wgrant/launchpad/buildbase-must-die/+merge/33505, if you have time.11:49
jmlwgrant, sure. I'll do that now, in fact.11:50
wgrantAh, I feel less bad with that 1800-line rootsite change having just landed :)11:54
jmlsomething I'm not going to ask you to change, but feel is worth mentioning:12:00
jml> +            build.dependencies = unicode(slave_status.get('dependencies'))12:00
jml^^^ that is a point of fragility.12:00
wgrantIndeed it is.12:00
wgrantI've noticed that many times, but was never sure how to fix it.12:00
wgrantSince it is really a bytestring.12:00
=== al-maisan is now known as almaisan-away
deryckMorning, all.12:02
jtvhi deryck12:02
jmlwgrant, I guess for a start I would spell it as slave_status.get('dependencies').decode(), give it an encoding and tell it how to handle encoding failures12:04
jtvYay everyone, staging's back!12:04
wgrantjml: Well, yes, but the encoding is probably just ASCII, and I don't really know how best to handle failures here.12:06
wgrantSo it might as well just crash ;)12:06
jmlwgrant, perhaps. depends a lot on how helpful Python's exception is.12:09
jml_handle_status_OK is... interesting.12:12
wgrantUm, yes.12:12
wgrantIt's pretty awesome.12:12
wgrantIt's also largely untested :)12:12
bigjoolswhich planet's definition of awesome?12:13
jmlI meant "interesting" in the "May you live in interesting times" sense.12:14
wgrantSoyuz brings quite enough interestingness, TYVM.12:16
wgrantHmm. LP looks nice in UbuntuBeta.12:16
* bigjools orders another kilo of coffee from HasBean12:17
jmlwgrant, ooh, has it landed?12:18
wgrantjml: Apparently.12:18
wgrantSince launchpad.dev now uses it.12:18
wgrantAlthough it makes the badly aligned sprites look even more badly aligned.12:19
jml:(12:19
jmlhah, but one revision off from being on edge.12:20
wgrant:(12:20
jmlwgrant, review done.12:22
=== almaisan-away is now known as al-maisan
wgrantjml: :(12:24
wgrantBut will fix.12:24
jmlwgrant, thanks.12:25
jmlwgrant, I always feel a little lousy asking people to change code they've pretty much only moved, and for enforcing the trivial points of our coding standard, so it's very much appreciated.12:26
wgrantI'm all for enforcing the coding standard as much as possible.12:27
wgrantI was just hoping to avoid it in this already massive branch. But the changes you've requested are tiny, so I'll do them.12:27
jmlta12:28
* bigjools is currently making a lp.soyuz.enums12:35
* wgrant stabs the test suite for not working when a local buildd is already running.12:36
jmlwgrant, ping me once they're pushed up. I'll submit to ec2 immediately & then go to lunch instanter.12:36
* bigjools sighs at PackageCopyStatus.CANCELING and PackageCopyStatus.CANCELLED12:36
wgrantjml: Sure. It'll be a few minutes, since I need to do a test build manually.12:37
jmlnp.12:37
bigjoolsare we enforcing the multiline import style in doctests?12:39
jmlbigjools, probably yes.12:39
wgrantBut they weren't migrated.12:39
bigjoolsexactly12:39
jmlwgrant, a sound point.12:39
bigjoolsI'm not convinced it's a good idea in doctests12:39
wgrantAlternatively, we could just enforce no doctests.12:39
bigjoolsheh12:40
bigjoolsI like doctests when they're done properly12:40
bigjoolsadmittedly I don't like much here12:40
jmltbh, I don't care as much about the coding standard within doctests.12:40
jmlsince it's not actually code.12:40
bigjoolsgood point12:41
jmlbut I also see little point in being inconsistent12:42
jmlespecially since the documents have no target audience12:42
jtvmrevell: don't forget to dig up the text & link for the popup balloons… could you email them to me?  I'm pretty much at the point where my egg needs a chicken.12:44
jtvOr vice versa.12:44
mrevelljtv, Yes, no problem. Will do that now.12:45
jtvthanks :)12:45
wgrantbigjools: I am quite a fan of the new buildd-manager design.12:54
bigjoolsglad to hear it12:54
bigjoolsI lost most of my hear, some sweat and some blood making it12:55
wgrantNow we just have to fix updateStatus and others to stop pretending that it's all synchronous.12:55
bigjoolsyes, I have a sprint planned in September with jml to fix that12:55
wgrantExcellent.12:55
jmlthere will be a method that does a scan and returns a Deferred that fires when that scan is done.12:56
jmle12:56
jmland there will be much rejoicing among the people.12:56
bigjoolsalso jelmer has a fix in progress that puts build uploads in a queue that we can process outside of b-m12:56
wgrantYup.12:56
* jml relogs.12:56
wgrantI wonder how well it will scale after that.12:56
* bigjools rejoices with jml12:56
bigjoolsjml: but it's not as simple as that - there's a bunch of synchronous XMLRPC that we need to convert as well :)12:57
wgrantCurrently RecordingSlave lies by reporting success for everything :(12:58
bigjoolsyeah, I have that in my sights12:58
bigjoolswe can get rid of it and turn the existing BuilderSlave into a twisted implementation12:58
wgrantAnd that means we have a good reason to kill slave-scanner.12:59
bigjoolswe don't already?12:59
wgrantIIRC you wanted to keep it.12:59
wgrantIt's only like 30 lines, anyway.12:59
bigjoolsI did, but I rescind that desire13:00
wgrantYay.13:00
wgrantSince buildd-manager sucks less now?13:00
bigjoolssince we have more than zero confidence in it now :)13:00
wgrantHeh.13:00
=== matsubara-afk is now known as matsubara
jmlbigjools, sure. nothing is ever that simple. but "eyes on the prize" and all that.13:03
bigjoolsyarp13:03
maxbAnyone happen to know what to pass into archive.syncSource(to_series=....) in the api ?13:18
noodles775The distroseries name.13:19
maxb>>> ta.syncSource(from_archive=fa, source_name='subunit', version='0.0.4-4ubuntu4', to_pocket='Release', to_series='jaunty')13:19
maxb400 Bad request: subunit 0.0.4-4ubuntu4 in hardy (same version already has published binaries in the destination archive)13:19
* noodles775 is just reading the api doc.13:19
wgrantmaxb: include_binaries=True13:20
wgrantHm.13:20
wgrantBut they're different archives?13:20
wgrantMust already be in the target somehow, anyway.13:20
* maxb boggles... you're rigjt I was missing include_binaries=True in my interactive example... but my script which failed originally did have include_binaries=True13:21
wgrantSo it fails the same way, even with include_binaries=True?13:21
maxbYes13:21
maxbexcept not any more, because the publisher has run13:22
wgrantAh.13:22
maxbThe scenario is trying to syncSource the same source+binaries that is published in multiple series in one archive, into the same multiple series in another archive13:22
jmlgror13:40
bigjoolsjml: did you forget your pills today?14:10
jmlbigjools, no. my IRC proxy was playing up.14:11
jmlnow, some 90 minutes later than intended, I'm off to get lunch.14:11
leonardrjamesh, if you have a minute i'd like you to look at a workaround i wrote for bug 62050814:27
_mup_Bug #620508: Slicing a ResultSet breaks subsequent len() calls. <Storm:New> <https://launchpad.net/bugs/620508>14:27
leonardrjkakar, if you're available, you could do it instead14:27
=== Ursinha-afk is now known as Ursinha
noodles775james_w: did you see the second question in my lp-dev email (re. regarding comments per package or per version). (it was in a second email after my fat fingers sent the first prematurely ;) ).15:04
james_wyes, replying now15:05
noodles775Ta.15:05
bigjoolsjames_w: hi, while you're around, I need to remind you to add AGPL headers, module docstrings and __all__ to your new files :)15:15
james_wyeah, I sometimes forget, sorry15:16
bigjoolsyour reviewer should have seen that :(15:16
noodles775(see standard_template.py and standard_test_template.py in the lp root folder)15:17
* bigjools is still not sure about seeing PackagePublishingPocket in registry.interfaces15:17
sinzuiIt does not belong there15:17
sinzuibigjools, wgrant and I talked about moving it last year, but neither of us did it15:18
bigjoolsdidn't jml put it there?15:18
jtvmrevell: nag, nag.  :)15:18
jmlyes I did.15:18
jmlin early 2009, if memory serves.15:19
jmllp.code needs some way of referring to things like "karmic-backports"15:20
bigjoolsI think code depends on Soyuz really.15:20
bigjoolsCode, even15:20
jmlthat aspect of lp.code (i.e. basic branch mgmt) has nothing to do with archives, build farms, upload servers or anything else.15:21
bigjoolspockets are a soyuz thing15:22
sinzuibaltix, fedora and debian do not use them. Only Ubuntu and future derivatives can use them15:22
jmlI would be much more comfortable with code depending on soyuz if soyuz were itself more clearly defined15:22
bigjoolswhat is not clear about it?15:23
jmlsinzui, well, the fact that code needs to care about pockets at all is a bug.15:23
sinzuiyes15:23
jml<jml> that aspect of lp.code (i.e. basic branch mgmt) has nothing to do with archives, build farms, upload servers or anything else.15:23
jmlI don't want code to depend on all of that.15:23
jmland yet all of that is frequently called "soyuz"15:23
bigjoolsbuild farms are not soyuz15:23
bigjoolsmaybe I should put the publishing definitions in archivepublisher15:24
jmlif there were a Suite class, where would it live?15:25
bigjoolssoyuz15:26
jmlbut distro would stay in registry?15:27
* jml thinks15:27
bigjoolsyes15:28
bigjoolssoyuz is responsible for setting up and managing suites15:28
jmlI guess I don't know how distroseries & suites relate outside of an Ubuntu context15:28
jmlI mean, the current relationship is a distroseries has many suites; a suite has a single distroseries15:29
sinzuibigjools, jml, distroseries appears to be a nexus of circular imports. I do not know how to separate soyuz and registry. I am not sure what comes first, packages, or distros15:29
bigjoolsjml, sinzui: in the Debian world, suite is arbitrary.  Only Ubuntu formalised that into series-pocket.15:30
jmlbigjools: yeah, I know.15:30
bigjoolsjml: to refine your statement, a distrseries can have one or many suites15:32
jmlbigjools: is there any qualitative difference?15:32
bigjoolssort of, if there's only one suite then its name is the same as the series15:33
jmlisn't that an implementation detail?15:33
jmlI'm trying to figure out what "Target to release" means in relation to suites, if anything.15:33
bigjoolswhat is your context for "target to release" ?15:34
jmlhttps://bugs.edge.launchpad.net/launchpad-code/+bug/62229015:34
_mup_Bug #622290: Color of info box varies after subscribing to a branch <ui> <Launchpad Bazaar Integration:Triaged> <https://launchpad.net/bugs/622290>15:34
jmlugh, sorry.15:34
jmlhttps://bugs.edge.launchpad.net/ubuntu/+source/nspluginwrapper/+bug/17803815:34
_mup_Bug #178038: npviewer.bin crashed with SIGSEGV  <apport-crash> <metabug> <nspluginwrapper (Ubuntu):Confirmed for anthonyhunt55> <https://launchpad.net/bugs/178038>15:34
jmlany distro bug.15:34
bigjoolsok15:34
bigjoolsso they don't care about suites15:35
bigjoolsonly the series15:35
bigjoolsthe suite is selected on the basis of archive management15:36
bigjools(in the case of Ubuntu)15:36
jmlhmm. perhaps it's N:N rather than 1:N, and only 1:N for Ubuntu.15:36
bigjoolsthat wouldn't make sense to me I don't think15:37
bigjoolsbut maybe I'm too used to the status quo15:37
jmlwell, what I really mean is that a suite has a single distro, rather than a distroseries15:38
jmlbut of course that would make the way we currently do branches very tricky.15:39
jmlI should draw a picture.15:51
jmlI should make it easier to draw computer pictures15:52
jmlOr someone should port OmniGraffle to Linux.15:54
jmlback soon.15:55
jmlback16:16
=== Ursinha is now known as Ursinha-lunch
jmlwondering if I should buy http://www.amazon.co.uk/Fundamentals-Queueing-Theory-Probability-Statistics/dp/047179127X/ref=sr_1_1?ie=UTF8&s=books&qid=1282663085&sr=8-116:19
=== matsubara is now known as matsubara-lunch
bigjoolsjml: I fell asleep during a queuing theory lecture16:35
jmlbigjools, what? were you marked on attendance at your university?16:37
bigjoolsno16:38
bigjoolsit was just so uninteresting16:38
jmlhah16:38
jmlit appears to be rather useful though.16:38
bigjoolsthat's the bloody annoying part of it :)16:38
jmlalso, I have great faith in the ability of most lecturers to make any topic as dull as "Stephen Hawking reads the Yellow Pages"16:40
jtvjml: you attended that one?  How did it end?16:42
jmljtv, a surprise impromptu concert by ZZ Top16:43
jtvMan, I knew there was a surprise ending!16:43
jtvI'm definitely going next time.16:48
=== beuno is now known as beuno-lunch
bigjoolsjml: one of my lecturers has a sex change.  That was the most interesting thing about the lecture.16:52
bigjoolshad*16:52
jmlbigjools, not during the lecture, I hope.16:52
bigjoolshe announced it at the end of one, and turned up at the next as a bird16:52
bigjoolsGoodbye Frank, hello Frances16:53
jmlI'm sorry, but now I've got a picture of Owl from Winnie the Pooh giving you a lecture on queueing theory16:53
noodles775On that note, 'evening all :)16:54
=== benji is now known as benji-lunch
=== matsubara-lunch is now known as matsubara
=== Ursinha-lunch is now known as Ursinha
=== beuno-lunch is now known as beuno
=== benji-lunch is now known as benji
leonardrsalgado, quick question. given a request object, how can i determine which oauth token it was signed with?18:45
leonardri would expect to see that in IOauthSignedRequest, but that's just a marker interface18:45
salgadoleonardr, I think you'll have to poke at the request to get the OAuth header and extract the token ID from there18:46
salgadoIIRC, when we do that to authenticate, we extract the person associated with the token and throw the token away18:47
salgadoso you could also change that code to store the token somewhere along with the principal18:47
salgadoget_oauth_authorization(request) is how you'd go about extracting the OAuth header18:49
leonardrsalgado, i don't need the token per see, i just need principal.access_level18:50
leonardrthat should do nicely18:50
jmlg'night all. would really appreciate reviews of my two small outstanding patches.18:58
leonardri realize it may seem strange for me to ask this question, but has anyone published a field that's writable normally but read-only through the web service?19:11
=== al-maisan is now known as almaisan-away
lifelessmoin19:51
jelmerhi lifeless20:00
=== lifeless changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 2 of 10.09 | Performance Tuesday! | PQM is OPEN | firefighting: - | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in
=== lifeless changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 2 of 10.09 | PQM is OPEN | firefighting: - | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews
rockstarlifeless, it's still Tuesday last time I checked... :)20:14
lifelessrockstar: I can put it back if you like, but its been 24 hours; every has woken up to it like that on their tuesday :)20:17
lifelessrockstar: would you like it back? Are you doing performance?20:17
rockstarlifeless, I'm just bustin' your chops.  :)20:17
lifeless'pow'!20:17
* beuno stops doing performance20:18
rockstarlifeless, actually, I am doing performance checking on the javascript that I'm writing.20:18
* rockstar has nice tools for that, so it's easy.20:18
lifelessrockstar: nice20:39
lifelessabentley: did you want to talk more ?21:01
abentleylifeless, you bet.21:01
abentleylifeless, https://wiki.canonical.com/Launchpad/NewTaskSystemRequirements21:02
abentleylifeless, apparently, skype isn't a reliable system.21:15
=== almaisan-away is now known as al-maisan
=== Edwin is now known as Guest13428
mwhudsonlifeless: did you get an answer to your question?21:48
=== Guest13428 is now known as EdwinGrubbs
lifelessmwhudson: which one?21:50
lifelessabentley: sorry, was waterinating and chatting with Lynne21:50
mwhudson<lifeless> is calling 'login(ANONYMOUS, ScriptRequest())' there sane ?21:50
mwhudson<lifeless> or should I just make my code (which is the sql gathering oops helper) silently do-nothing ?21:50
mwhudson<lifeless> (its defined as doing nothing in that case anyway)21:50
mwhudson<lifeless> mwhudson: ^ I hear you've done a bit of out-of-appserver-stuff, care to comment ?21:50
lifelessoh right21:50
lifelesssee my mail to the list21:50
lifelessI got a bit of and answer21:50
mwhudsonah ok21:52
* mwhudson -> email 21:53
thumpermorning21:54
jelmer'morning thumper, mwhudson21:55
abentleythumper, morning.22:02
thumperabentley: hi22:02
=== matsubara is now known as matsubara-afk
lifelessmwhudson: see my changes to adapter.py to see the sort of mess i'm making22:14
jelmerthumper: So, I'm not really sure what to do about the chicken repository. It seems to be broken on the server side now.22:19
beunologgerhead hates bzr!22:19
abentleythumper, rockstar, I need to get going at 5:30.  Do you want to have a stand-up now?22:19
beunohttp://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev/annotate/head%3A/bzrlib/builtins.py22:19
jelmerthumper: I can confirm that at least some of the other http repositories get fixed by the newer version of bzr-git.22:19
beunoit won't load that for me22:19
beunooh, and NOW it does!22:19
rockstarabentley, it looks like thumper's busy with flacoste-like calls right now.22:19
jelmerbeuno: it seems to be doing that for a lot of branches - working after one or two refreshes22:19
thumperabentley: I'm talking with gary right now22:19
rockstarabentley, I'm happy to chat with you right now, but that might defeat the purpose...22:20
thumperabentley: if you want to chat with rockstar, he can fill me in later :)22:20
abentleythumper, isn't rockstar also unavailable later on?22:20
beunoplease make bzr files smaller so loggerhead is happy. kthxbye22:20
thumperabentley: he's coming back :)22:20
rockstarabentley, yeah, I just have class, and then I'll be back.22:20
abentleyrockstar, okay, so let's chat.22:21
rockstarabentley, cool.22:21
mwhudsonbeuno: in this case they should stop editing it so often!22:24
mwhudsonbeuno: of course, loggerhead shouldn't annotate by default either22:24
beunowe should contract someone to work on loggerhead22:25
* beuno ducks22:25
mwhudsonfantastic idea22:25
beunosinzui, I'm lovin the project set-up of each app22:28
beunothe progress bar not so much, as it may be incomplete for ever, which is a bit awkward22:28
beunobut it's awesome22:28
sinzuibeuno, not forever, only for the next week22:28
beunosinzui, aha!  I forgot you always have a deck of cards up your sleeve22:29
sinzuibeuno, we are landing the changes needed to make the progress bar now. We are landing the new app front pages this week and next,..22:29
* beuno will keep his eye on it22:30
sinzuiApps are off unless you tell Lp how it is used.22:30
sinzuiI expect a lot of blueprint pages to disappear until users users^h masochists decide they want to enable them22:31
beunoheh22:32
beunostill no takers to fix blueprints?22:32
sinzuimany volunteers, in the bug comments, but not many landings22:32
* beuno still remembers the 2 weeks he spent in blueprints and shivers22:33
=== al-maisan is now known as almaisan-away
rockstarbeuno, mtaylor said he wanted to fix blueprints22:34
beunobrave man22:34
sinzuiThe notification bugs are at least 2 man-months of work22:35
wgrantsinzui: It's really tempting to hide the option to turn Blueprint on unless people go looking for it.22:42
sinzuiwgrant, I think we can accomplish that in the next 7 days22:43
sinzuireally22:43
rockstarI want the same option for Answers.22:43
* rockstar heads to class.22:43
wgrantBecause Blueprint looks awful, and it's not clear that it's unmaintained.22:43
sinzuithat too will happen22:44
wgrantSo it should be hidden.22:44
sinzuiApps will behave like bugs. It is not on unless you choose to enable them. It can be implicit in the case or branches.22:44
wgrantCode should always be available. But the use flag needs to be explicit.22:45
sinzuiWe want people to tell use when the branch is. It is okay to be a mirror, "just tell us"22:46
wgrantAh, right.22:47
mtaylorbeuno: yup. I'm going to get them all fixed22:47
sinzuimtaylor, I assume you are bring a portable army to do that.22:47
beunomtaylor, I have  "personal heroes" page on my blog for people like you22:48
mtaylorsinzui: trying :)22:48
sinzuijust exposing api means you do not need to fix a lot of the issue...just build a simple replacement app22:48
rockstarsinzui, the problem with that is that the blueprint api is the scariest part.22:49
* rockstar heads out for real this time.22:50
wgrantjml: Thanks for landing that.22:52
thumpermtaylor: hey22:52
thumpermtaylor: getting started on LP hacking now?22:52
thumpermtaylor: also the location of the LP epic in January has been set as Dallas, TX22:53
wgrantDallas again!?22:53
mwhudsonwgrant: i think bigjools is very happy about this, to judge by fb22:53
thumperyup22:53
wgrantHeh.22:53
sinzui:(22:53
wgrantmwhudson: I saw that last night, but didn't know what it referred to...22:54
sinzuiI may have to contract marburg that week22:54
thumpersinzui: ?22:54
mwhudsonsinzui is not compatible with texas22:55
gary_postersinzui: hey.  If I want to change some css, is modifying style-3-0.css the right way to go to a first approximation?22:55
mwhudson(famously)22:55
* sinzui does not understand why Canonical does not see the upper or lower parts of North America as legitimate places to hold a sprint22:55
thumpersinzui: like Mexico?22:55
sinzuisure22:55
sinzuiCanada might have a conference facility22:56
gary_posterrunning, back later22:56
sinzuigary_poster, style-3-0.css.in if it is a non-app-specific hack22:56
mtaylorthumper: oh cool23:02
mtaylorthumper: and no - but _real_soon_now_23:02
lifelessmwhudson: if I can get some cycles form you on this issue I would love that23:03
mwhudsonlifeless: i've read all my other mail now :-)23:03
mwhudsonand am reading yours carefully23:03
lifelessmwhudson: thanks!23:03
mwhudsonlifeless: gnnaaaaaaaaar i hate this duplication of information across different thread-locals :(23:08
lifelessmwhudson: yes, and I want to reduce it23:08
lifelessthe primary lever seems to be 'really make interaction^WIRequest-in-an-interaction the context. I mean really.'23:09
mwhudsonyeah quite23:09
lifelessif thats wrong headed I'd like to back away quickly23:09
mwhudsonas discussed, no thread-locals would be nice23:09
mwhudsonbut if we have to have one for now, the interaction seems like it should be it23:09
lifelessif its right headed, I need some clue inserted - or collaborated on - to get over the initial hump23:09
lifelessafk for a few, need to unload more wood23:10
thumperwhere have the query counts gone from the bottom of the pages?23:11
thumperand why is LP even slower than normal today?23:11
thumperthis is insane23:12
mwhudsonthumper: they're still there for me?23:12
wgrantQuery counts are still there for me too.23:12
mwhudsonthey might not be present on pages that don't use the main template, or something like that23:12
wgrantAnd it was really slow yesterday, but it's not so bad now.23:12
thumper41 seconds to approve a code import23:13
thumperno time out23:13
thumpermwhudson: this was for a branch page23:13
thumperI think it didn't get the entire page23:13
thumperas it was missing everything after the ( in the footer23:13
mwhudsonthumper: as per rob's mail, maybe sending mail from the webapp is slower for some reason?23:14
thumper?!?23:14
thumperthat wouldn't impact loading a page23:14
thumperunless it was queued for ages23:14
thumperwaiting for a thread23:14
mwhudson*shrug*23:17
mwhudsonjust a guess23:17
lifelessback23:21
lifelessits entirely possible that a slow mail dispatch routine stalls a webapp request23:22
lifelessthere are two bugs23:22
lifelessone, on foundations, that this doesn't timeout-and-go-boom23:22
lifelesstwo, that we can't tell where the time is going.23:22
thumperyes23:25
* thumper goes to encaffeinate23:26
lifelessthird bug23:26
lifelessthat these external calls are not equipped with timeouts23:26
wgrantWhy karmaactions in the DB?23:54
wgrantThat's insane, and makes my bootstrap script fragile :(23:55
lifelesswgrant: expand please :)23:56
lifelessmwhudson: so, I tried using ScriptRequest23:56
lifelessbut it doesn't implement IRequest23:56
lifelesssubclassing BrowserRequest made it start failing to assign during __init__ :(23:57
mwhudsonwell23:57
lifelessI could use LaunchpadTestRequest in script/__init__.py but it may make some people cry23:57
wgrantlifeless: KarmaActions are basically constants stored in the DB. Code expects them to be there. If one is added to the code and you don't add it to the DB, the code will crash.23:57
mwhudsonthe fact that we're calling get_current_BROWSER_request suggests to me that it's perhaps not the thing to use in non-webapp specific code23:58
wgrantThey're rather like celebrities, except that they'd be much better handled by having a dict in the tree somewhere.23:58
lifelesswgrant: enums ?23:59
wgrantlifeless: Or that.23:59

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