/srv/irclogs.ubuntu.com/2011/06/27/#launchpad-dev.txt

lifelessdynamic port allocation \o/02:55
nigelblifeless: You aren't in Dublin?03:21
lifelessnope03:23
nigelbAh.03:24
lifelessgrah04:18
lifelessand it has no setup.py etc04:19
lifelessI think I'll extract code from LP04:19
nigelblifeless: any specific reason you picked web.py?06:49
lifelessit wasn't zope, it wasn't django, and it is in lucid06:50
nigelbheh06:51
nigelbI meant among the other microframeworks06:51
lifelessso do I06:51
nigelbah, in lucid.06:51
lifelessanother option would be pastedeploy06:51
lifelessbut its possibly so minimal as to not be a framework anymore06:52
nigelbNever heard of it. ::looks::06:52
=== Ursinha-afk is now known as Ursinha
baclifeless: ping09:36
lifelesshi bac09:37
baclifeless: abentley is trying to skype you so you can participate09:37
bacah, nm, i hear martin connected09:38
lifelessI will irc if I have stuff to interject09:38
lifelessiron stomach, no seasickness09:40
lifelesssomeone tell them not to fuss to much :)09:40
lifelessI see a long corridor between people at tables09:40
jcsackettlifeless: they seem to be enjoying it; we would hate to stop their fun.09:40
StevenKIt's a room!09:40
lifelesshi09:40
lifelessyes I hear you09:41
lifeless'I can see you alll... muahhahahahahaha'09:45
vila:)09:46
jmllifeless: watching here in case you want to interject. use my nick.09:46
lifelessjml: thanks09:46
lifelessjml: looking at the room is cute; looking at the slides might be better ?09:50
jmllifeless: ok.09:50
lifelessjml: thanks09:50
jmllifeless: np. is that an ok view? (I'm not very close to your laptop)09:51
lifelessits fine09:51
jmlcool.09:52
lifelessjml: at a convenient point please note 'if we are willing to spend more time on db patches, we have stakeholder goahead to make db patches go live 24 hours after landing'09:57
lifelessjml: we now have a lot of infrastructure/db work to do to to solve timeouts10:03
lifelesshttp://boom.cs.berkeley.edu/ is interesting (and totally unrelated to the talk going on :))10:08
=== daker_ is now known as daker
lifelessjml: whats thing flacoste is saying - I can't make out the noun10:17
jmllifeless: talking about using cloud stuff, incl ensemble, for developing Launchpad10:17
lifelessah10:18
wgrantlifeless: Any reason we shouldn't deploy today?10:19
jmlone thing, not worthy of interjecting, is that anything that makes it harder for new contributors also probably makes it harder for established developers on a day-to-day basis10:20
jmle.g. imagine if we could spin up a build farm with ten machines locally using LXC10:20
jmlwith one command10:20
lifelessI think for adhoc stuff like that, ensemble may be a wonderful fit10:21
jmlyeah, me too10:21
StevenKwgrant: Fixed.10:21
wgrantStevenK: Thankyou sir.10:21
wgrantNow I need to find wallyworld.10:21
StevenKHe's behind you!10:21
lifelessjml: for the unit test suite, things like lxc (alone, nevermind layers on top of) seem to be much slower than I would like to aim at10:22
jmllifeless: interesting.10:22
jmllifeless: do you want to watch benji's talk?10:25
lifelessjml: coffeescript?10:26
lifelessno; its pretty cool stuff though.10:26
lifelessbut I have stuff I need to go do.10:26
jmllifeless: ok. thanks.10:26
lifelesshave a great day guys; I'm signing off.10:41
lifelessbigjools: btw, I think bug 802335 is a side effect of the new packagecopyjob table10:46
_mup_Bug #802335: DistroSeries:+queue timeouts when filtering by package name <regression> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/802335 >10:46
lifelessbigjools: I can't talk now, but perhaps we can make 5 minutes tomorrow - *if* it is the new table, I raised the impact it would have on +queue during review - I'd like to drill into how we let this through10:47
lifelessbigjools: (I'm mentioning it now so you aren't surprised when I try to grab you tomorrow to talk about it :))10:47
bigjoolslifeless: jtv changed the query significantly so grab him :)10:48
bigjoolsbut happy to talk if you want10:48
Ursinhadanilos: salinas, right?10:58
NCommanderStevenK: pinbg where are you?12:18
jmllifeless: if you're around... where are the architecture values that were in your talk?12:24
jmllifeless: never mind.12:26
jml<https://dev.launchpad.net/ArchitectureGuide/ServicesRequirements> is what I was actually looking for12:28
jmlsince any long poll stuff we do has to comply with all of that.12:28
StevenKNCommander: I am on level 1. What's up?12:30
pooliespiv, danilos, jelmer, jtv, https://dev.launchpad.net/Projects/LiveBranches#preview12:31
NCommanderStevenK: infinity found my issue (LP gave a non-helpful error message on a reject)12:50
StevenKNCommander: How unhelpful?12:50
NCommanderStevenK: I did an upload to oneiric which was rejected due to a -20 existing in proposed, it complained my tarball was wrong (checksum mismatch)12:54
StevenKNCommander: Right, that isn't unhelpful. :-P12:54
LPCIBotProject devel build #840: FAILURE in 23 min: https://lpci.wedontsleep.org/job/devel/840/13:35
StevenKHmmm13:36
* StevenK pokes at Jenkins13:36
StevenKAh ha. Gary broke it.13:37
LPCIBotYippie, build fixed!14:03
LPCIBotProject db-devel build #671: FIXED in 5 hr 51 min: https://lpci.wedontsleep.org/job/db-devel/671/14:03
jmlgmb, wgrant: http://paste.ubuntu.com/633629/14:24
jmlbigjools: ^^14:25
jmlstorm, transaction, twisted14:25
jmltxamqp14:25
jmlzope.component, zope.schema, zope.interface, zope.configuration14:26
jmlhuwshimi: are you near deryck?14:34
huwshimijml: I think he's about 5 metres away14:35
huwshimijml: Certainly within throwing distance14:35
jmlhuwshimi: what about gary?14:35
huwshimijml: An equal distance away14:36
wgrantNeither is on IRC :(14:36
jmlhuwshimi: excellent. the build is broken, and gary broke it14:36
wgrantBut gary broke devel, somehow.. and it corrupts14:36
StevenKI have landed a revert14:36
wgrantcorrupts the setuptools egg.14:36
wgrantbuildbot is probably still broken.14:37
wgrantBecause its egg is broken.14:37
huwshimijml: Do you need me to throw something?14:37
StevenKjml: I am sitting next to deryck14:37
jmlStevenK: please ask gary to fix it :)14:38
StevenKjml: Both flacoste and gary are working on it right now.14:38
jmlsweet.14:38
jmlStevenK: thanks.14:38
flacostejml: we need to remove eggs/setuptools*14:39
flacostebecause distribute is evil14:39
flacostereally evil14:39
flacostemost evil force in the universe14:40
Ursinhahaha14:53
Ursinhamatsubara: do you know if soybean oopses are synced to devpad every 10 minutes or once a day?14:54
matsubaraUrsinha, I think it's every hour now for all oopses14:55
Ursinhaoh14:55
Ursinhathat's bad14:55
jmlgmb: dependencies: storm, transaction, twisted, txamqp, zope.component, zope.schema, zope.interface, zope.configuration15:06
jmlstub: http://as.ynchrono.us/2007/12/filesystem-structure-of-python-project_21.html (fwiw)15:13
jmlbigjools: http://twistedmatrix.com/documents/current/core/howto/tap.html15:19
allenapwgrant, jml, stub: http://paste.ubuntu.com/633675/15:52
wgrantallenap: You are a horrible person.15:53
allenapwgrant: Thank you :)15:54
StevenKHaha15:54
StevenKabentley: O hai.16:00
abentleyStevenK: Hai.16:00
StevenKabentley: Do you remember what the JS that is loaded after page load on projectseries/+setbranch does?16:01
nigelbIs it known that on the branch page, if I click diff, I see the diff. After that the links are no longer "clickable"16:02
abentleyStevenK: Nothing is coming to mind.16:02
jmlwgrant: http://www.cs.yale.edu/quotes.html16:06
jmlbigjools: http://twistedmatrix.com/documents/current/core/howto/application.html16:26
huwshimijcsackett: http://gfxmonk.net/shellshape/16:45
nhandlerIs https://help.launchpad.net/API/SigningRequests outdated? I keep getting an error saying oath is an unsupported authentication method when I attempt to post to /+request-token16:47
wgranthuwshimi: Huh, I know him.16:51
wgrantFrom uni.16:51
huwshimiwgrant: Oh right16:52
wgrantOddity.16:56
poolienhandler: nb it's oauth not oath17:01
pooliethey are both authentication mechanisms17:01
nhandlerBleh. Thanks poolie. I really shouldn't code before fully awake :)17:03
poolienot the best naming system in the world17:05
jcsackettbac: do you know if bug 705153 is still valid? it looks to me like the hover over data on subscribers has been removed outright, which might make this [wontfix|fixreleased].17:16
_mup_Bug #705153: "Subscribed by" hover is incorrect <Launchpad itself:Triaged> < https://launchpad.net/bugs/705153 >17:17
bacjcsackett: you are correct.  i've marked it invalid17:19
spivwgrant: here's some  loggerhead code you may like:17:48
spivdef dq(p):17:48
spiv    return urllib.quote(urllib.quote(p, safe=''))17:48
=== salgado is now known as salgado-lunch
wgrantspiv: Burn17:56
* maxb chuckles18:02
nhandlerAny ideas why I get a 'Missing Authenticate Header' client-warning in my script (OOPS-2004STAGING186) ? I have an Authroization header that follows the documentation (I already followed the guide to get a request token and then an access token)18:43
=== salgado-lunch is now known as salgado
=== beuno is now known as bueno
=== bueno is now known as beuno
AureeHi, I couldn't find it in the documentation, what is the limit for client applications to the Launchpad API?19:54
LPCIBotProject parallel-test build #75: STILL FAILING in 1 hr 19 min: https://lpci.wedontsleep.org/job/parallel-test/75/20:02
=== wgrant changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 204 - 0:[######=_]:256
LPCIBotYippie, build fixed!20:47
LPCIBotProject devel build #841: FIXED in 5 hr 49 min: https://lpci.wedontsleep.org/job/devel/841/20:47
lifelessmoin21:09
stubyo21:10
stubthink most people are at dinner21:10
lifelesscool21:10
lifelesshow was the day?21:12
stubSeemed to go ok. Getting some traction on rabbit.21:13
stubCatching up from last week too.21:14
stubNot sure how the other groups fared21:14
lifelessI haven't filed bugs for the fast-downtime stuff yet21:15
lifelessjames_w: speaking of which; ping21:16
lifelessstub: I will file a few today and assign to you so you can see them; they don't have to be worked on this week - do stuff with the folk there; (but if you do work on it its pretty exciting stuff :P).21:16
timrcwgrant, lifeless, jcsackett: thank you guys for such a quick turnaround time on our api enablement requests, greatly appreciated21:17
james_wlifeless, hi21:28
lifelessjames_w: I don't recall hearing back from linaro on stakeholders about db schema downtime21:28
james_wlifeless, I haven't heard anything, I'll prod, but otherwise we can take it as "silence is agreement" and move ahead21:29
lifelessthanks21:29
wgrantlifeless: You may have seen the rabbit layer land.22:49
wgrantlifeless: We sorted out the failures.22:49
lifelessgreat22:49
lifelesswhat were they ?22:49
wgrantAnd ripped canonical.amqp out of landscape, into lazr.amqp22:49
wgrantWell.22:49
wgrantThe problem was the config overlay is just about impossible to remove.22:50
wgrantSince it's written to disk.22:50
wgrantSo we just made the layer unteardownable.22:50
lifelessthat reminds me, I needed to talk with flacoste about lazr :P22:50
wgrantWe didn't want to call it lazr, but it was easiest for now.22:50
lifelesswgrant: what did you want to call it ?22:50
wgrantNo ide.22:50
wgrantidea22:50
wgrantWhich is why it's lazr.22:50
wgrantIt also currently uses the system rabbit for tests :(22:51
lifelesswgrant: unteardown makes me sad; we use config overlays on disk for librarian too, why is that different ?22:51
wgrantBut I've ported it mostly to the fixture.22:51
lifelessand db22:51
wgrantlifeless: I don't quite recall.22:51
wgrantlifeless: But the tests want the config overlay to be absent.22:51
lifelesscould someone file a bug? low tech-debt22:51
wgrantI suspect the librarian/db tests do not.22:52
wgranteg. the librarian hiding thing just sets a bogus port.22:52
wgrantAlso, how do I make efficient use of a fixture?22:52
wgrantie. use .reset() between tests?22:52
wgrantRather than restarting rabbit each time.22:52
wgrantWhich is slow.22:52
wgrant(this is in lazr.amqp, so no layer)22:53
jmlalso22:58
jmlstub was saying that zope now has a way to tear down the functional layer22:58
wgrantYeah.22:58
wgrantWe should be able to.22:58
wgrantBut lazr.config needs some wrangling before we can do it for everything.22:58
jmlif we get rid of that, the new unteardownable thing and wgrant gets his question answered, we could stop using layers22:58
wgrantYay22:58
wgrantBURN22:58
wgrantetc.22:58
=== salgado is now known as salgado-afk
jmlthat's three things that are non-trivial before we get to do the thing we actually want to do, which is also non-trivial :)22:58
lifelessjml: there is a zope.testing.functional or something which now has a tearDown23:00
lifelesswe need to test using it23:00
lifelessI don't knove if the CA has a teardown yet23:00
lifelesswgrant: .reset() exists for use between tests, yes.23:00
jmlyou could probably hack one up23:00
wgrantlifeless: But how do I use it?23:00
jmlreplace globalregistry with a new one23:00
jmlwgrant: aye, and therein lies the rub23:01
lifelesswgrant: you use the unwritten testfixtures optimiser code23:01
lifelesswgrant: -or-23:01
lifelesswgrant: and I recommend this, use testresources and write a -very- shallow thunk from a ResourceManager to the fixture.23:01
wgrantHmm. Perhaps.23:02
wgrantThanks.23:02
jmlif it's run with zope testrunner, that won't help though23:02
wgrantIt is the zope testrunner at present :(23:03
lifelessif its run with zope testrunner you can use a layer23:03
wgrantTrue.23:03
wgrantBut it also workswith trial, which I don't reallly want to break.23:03
lifelesswhen you said foo so no layer, I assumed a good testrunner23:03
lifelesswgrant: choose.23:03
wgrantSo there's no cross-runner compatible way to do it?23:03
wgrantSad.23:03
lifelesswgrant: there is, if you fix zope testrunner to not destroy test suites23:03
lifelesse.g. make it compatible23:04
wgrantlolz23:04
lifelessFWIW, I'd do the following:23:04
lifeless - make testr the primary runner for it (implies trial compat)23:04
lifeless - use testresources23:04
lifeless - profit23:04
wgrantPossibly.23:05
lifelessyou can use trial --reporter=subunit23:06
wgrantWe're using zope.testrunner now because it was easy with buildout, but I gues we can just use testr with something.23:06
wgrantAha.23:06
wgrantHandy.23:06
lifelessit doesn't have load-by-id for broken-test-iterations or parallel support23:06
wgrant:(23:06
lifelessbut if you use jmls' most excellent twisted support in *testtools*23:06
wgrantAsny suggestions for something better?23:06
wgrantAh.23:06
lifelessthen you're sitting pretty23:07
wgrantI looked at that, but it said it was highly experimental and not to be used.23:07
lifelesslies23:07
lifelesswe use it in Launchpad23:07
lifelessits more 'subject to change'23:07
wgrantAh.23:07
lifelesswgrant: jml: I'm glad you guys are hacking on this.23:07
wgrant"testtools provides highly experimental support for running Twisted tests – tests that return a Deferred and rely on the Twisted reactor. You should not use this feature right now. We reserve the right to change the API and behaviour without telling you first."23:08
wgrantBut I guess if you and jml tell me otherwise...23:08
lifelesswgrant: so what does lazr.amqp do?23:08
jmlwgrant: we use it consistently in Launchpad23:08
lifelesswgrant: is it landscapes long poll service?23:09
lifelesswgrant: or just glue code?23:09
wgrantlifeless: Mostly a Twisted HTTP server for rabbit-based long-polling, yes.23:09
wgrantIt also has a rabbit job runner.23:09
lifelessso, I think the name is totally misleading23:09
lifelesslazr.longpoll perhaps23:09
wgrantPossibly.23:09
jmlit's actually more "I don't want people to complain too much if it's broken"23:09
wgrantThe name is not really defined.23:09
jmltxlongpoll?23:10
wgrantIt was canonical.amqp, and Julian JFDI.23:10
lifelessjml: +123:10
lifelessjml: that would be so much better23:10
jmllifeless: our main aim is to get something working end-to-end23:10
lifelesssure, cool23:10
wgrantIt's not *just* long polling, as it turns out.23:10
lifelessso the reason I asked23:10
wgrantBut that's one of its modules.23:10
jmllifeless: I'm very much in favour of a better name, but will only change it if I'm confident that we'll have something demonstrably functional before EOW23:11
jml(of course anyone else can change it)23:11
lifelessso, you've seen ServicesRequirements23:12
jmlfwiw, I am pretty confident :)23:12
lifelessI want to highlight a couple of the implications there23:12
jmllifeless: yes, https://dev.launchpad.net/Projects/LongPollNotes links to it23:12
lifelesswe shouldn't be importing *any* of the code in this project into LP itself.23:12
jmllifeless: how is that implied?23:13
lifelesshttps://dev.launchpad.net/ArchitectureGuide/ServicesRequirements#Test fake23:13
lifelessits not mandatory [yet]23:13
lifelessit will be soon23:13
jmlahh good. NTH.23:13
lifelessNTH ?23:13
jmland also something that can be fixed late23:13
lifelessso when I say test fake23:14
jmllifeless: nice-to-have. sorry, it turns up a lot in my notes for things.23:14
lifelessI mean 'live network service that is -fast- to startup, uses dynamic allocated ports and supports error injection23:14
lifelessI specifically do not want in-process fakes23:14
lifelessbecause they increase coupling and tighten version dependencies23:15
jmllifeless: why do you object to the package having its own client code & test double?23:17
lifelessI want to thoroughly decouple things23:18
lifelesswe're going to be deploying entirely separately23:19
lifelessif its physically impossible to do a lockstep change to the client and server23:19
lifelessI think it will really help people avoid such disasterous changes23:19
lifelessit also works better when we rewrite a service to be in a faster language23:19
lifelessand avoids fugly around needing N clients (one for tx, one for python, one for javascript) in the same tree - or alternatively inconsistently blessing one as 'this one is in-tree, the others are not'23:20
lifelessthats the angle for client code23:21
lifelessfor test double, I *do* want the service to provide its own test double.23:21
mwhudsonlifeless, jml: did you know that the django test runner manages to be EVEN MORE terrible than the zope one?23:21
lifelessI just want that to be an actual network service23:21
lifelessmwhudson: thats quite an achievement23:21
jmlmwhudson: no, I didn't.23:21
jmlmwhudson: I didn't even know it *had* its own test runner23:21
wgrantDjango manages to be pretty terrible.23:21
jmllifeless: you don't mind having multiple language implementations for a protocol in one tree :P23:21
wgrantWithout the few redeeming qualities that Zope has.23:21
mwhudsonlifeless: it rips apart testsuites in the same way zope's does, and has database management baked into the runner directly23:22
jmleww23:22
lifelessjml: I don't, but its been pretty awkward23:23
mwhudsoni may try to convince them this is a bad idea23:23
* jml nods23:23
lifelessjml: and I'm a bottleneck on changes in that project, something I want to structurally avoid for our services23:23
jmllifeless: ok. I think that's fair enough.23:23
lifelessjml: another facet here23:24
lifelessjml: we're aiming for 'crisp, clean and strongly defined layers'23:24
jmllifeless: the main thing *I* want to avoid is perfect defeating good. Would rather work towards correctness from a starting point of functionality than from where we are now.23:25
lifelessjml: anything whose contract is in python is pretty poor at that :)23:25
jmllifeless: good point.23:25
lifelessjml: have you looked at my draft microservice for gpg signature checking ?23:25
jmllifeless: no, but your email about it is flagged for reading23:26
lifelessjml: I don't mind the path taken to reach correctness! I mentioned these things so you know where I want us to aim.23:26
jmllifeless: cool.23:26
lifelessjml: I *do* mind if we try to go live with something without either reaching these things or having and explicit ack from me to waive them in this case.23:26
lifelessjml: the point about importing stuff, is that if the rabbit fixture is moved into this other-server-tree, it becomes unusable by Launchpad23:27
jmlmultiplying tiny projects :(23:28
lifelessyes23:28
lifelessso we put them all in ~launchpad/+junk23:28
lifelessthis is something LP needs to be much better at23:28
jmlwell, LP doesn't even begin to help you answer the question "how the hell do I land stuff on this project"23:28
jmllifeless: I think the 'not importing' requirement should be made explicit in that doc, btw.23:29
lifelesswgrant: if there is more than long polling in the tree, exercise rm :)23:30
wgrantlifeless: s/rm/split/, I suspect.23:30
wgrantlifeless: We need to analyse tomorrow.23:31
lifelesswgrant: sure23:31
lifelessjml: I will transscribe this discussion in some form today23:31
wgrantI didn't look at the code until I was somewhat impaired.23:31
lifelessjml: after I get my slides ready23:31
wgrantToday was just spent getting it working.23:31
jmllifeless: thanks.23:31
lifelessjml: I am open to negotation on everything, but I think I have a cohesive story with interlocking supports23:32
jmlwgrant: and, (I do hate sounding like a broken record here), it's not actually working yet, insofar as it isn't doing what we want.23:33
wgrantjml: Sure.23:33
wgrantGetting it working, not succeeding in that endeavour :)23:34
jml:)23:34
jmlI'm off to catch some Zs23:42
jmlg'night.23:42

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