[02:55] dynamic port allocation \o/ [03:21] lifeless: You aren't in Dublin? [03:23] nope [03:24] Ah. [04:18] grah [04:19] and it has no setup.py etc [04:19] I think I'll extract code from LP [06:49] lifeless: any specific reason you picked web.py? [06:50] it wasn't zope, it wasn't django, and it is in lucid [06:51] heh [06:51] I meant among the other microframeworks [06:51] so do I [06:51] ah, in lucid. [06:51] another option would be pastedeploy [06:52] but its possibly so minimal as to not be a framework anymore [06:52] Never heard of it. ::looks:: === Ursinha-afk is now known as Ursinha [09:36] lifeless: ping [09:37] hi bac [09:37] lifeless: abentley is trying to skype you so you can participate [09:38] ah, nm, i hear martin connected [09:38] I will irc if I have stuff to interject [09:40] iron stomach, no seasickness [09:40] someone tell them not to fuss to much :) [09:40] I see a long corridor between people at tables [09:40] lifeless: they seem to be enjoying it; we would hate to stop their fun. [09:40] It's a room! [09:40] hi [09:41] yes I hear you [09:45] 'I can see you alll... muahhahahahahaha' [09:46] :) [09:46] lifeless: watching here in case you want to interject. use my nick. [09:46] jml: thanks [09:50] jml: looking at the room is cute; looking at the slides might be better ? [09:50] lifeless: ok. [09:50] jml: thanks [09:51] lifeless: np. is that an ok view? (I'm not very close to your laptop) [09:51] its fine [09:52] cool. [09:57] jml: 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' [10:03] jml: we now have a lot of infrastructure/db work to do to to solve timeouts [10:08] http://boom.cs.berkeley.edu/ is interesting (and totally unrelated to the talk going on :)) === daker_ is now known as daker [10:17] jml: whats thing flacoste is saying - I can't make out the noun [10:17] lifeless: talking about using cloud stuff, incl ensemble, for developing Launchpad [10:18] ah [10:19] lifeless: Any reason we shouldn't deploy today? [10:20] one 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 basis [10:20] e.g. imagine if we could spin up a build farm with ten machines locally using LXC [10:20] with one command [10:21] I think for adhoc stuff like that, ensemble may be a wonderful fit [10:21] yeah, me too [10:21] wgrant: Fixed. [10:21] StevenK: Thankyou sir. [10:21] Now I need to find wallyworld. [10:21] He's behind you! [10:22] jml: 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 at [10:22] lifeless: interesting. [10:25] lifeless: do you want to watch benji's talk? [10:26] jml: coffeescript? [10:26] no; its pretty cool stuff though. [10:26] but I have stuff I need to go do. [10:26] lifeless: ok. thanks. [10:41] have a great day guys; I'm signing off. [10:46] bigjools: btw, I think bug 802335 is a side effect of the new packagecopyjob table [10:46] <_mup_> Bug #802335: DistroSeries:+queue timeouts when filtering by package name < https://launchpad.net/bugs/802335 > [10:47] bigjools: 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 through [10:47] bigjools: (I'm mentioning it now so you aren't surprised when I try to grab you tomorrow to talk about it :)) [10:48] lifeless: jtv changed the query significantly so grab him :) [10:48] but happy to talk if you want [10:58] danilos: salinas, right? [12:18] StevenK: pinbg where are you? [12:24] lifeless: if you're around... where are the architecture values that were in your talk? [12:26] lifeless: never mind. [12:28] is what I was actually looking for [12:28] since any long poll stuff we do has to comply with all of that. [12:30] NCommander: I am on level 1. What's up? [12:31] spiv, danilos, jelmer, jtv, https://dev.launchpad.net/Projects/LiveBranches#preview [12:50] StevenK: infinity found my issue (LP gave a non-helpful error message on a reject) [12:50] NCommander: How unhelpful? [12:54] StevenK: 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] NCommander: Right, that isn't unhelpful. :-P [13:35] Project devel build #840: FAILURE in 23 min: https://lpci.wedontsleep.org/job/devel/840/ [13:36] Hmmm [13:36] * StevenK pokes at Jenkins [13:37] Ah ha. Gary broke it. [14:03] Yippie, build fixed! [14:03] Project db-devel build #671: FIXED in 5 hr 51 min: https://lpci.wedontsleep.org/job/db-devel/671/ [14:24] gmb, wgrant: http://paste.ubuntu.com/633629/ [14:25] bigjools: ^^ [14:25] storm, transaction, twisted [14:25] txamqp [14:26] zope.component, zope.schema, zope.interface, zope.configuration [14:34] huwshimi: are you near deryck? [14:35] jml: I think he's about 5 metres away [14:35] jml: Certainly within throwing distance [14:35] huwshimi: what about gary? [14:36] jml: An equal distance away [14:36] Neither is on IRC :( [14:36] huwshimi: excellent. the build is broken, and gary broke it [14:36] But gary broke devel, somehow.. and it corrupts [14:36] I have landed a revert [14:36] corrupts the setuptools egg. [14:37] buildbot is probably still broken. [14:37] Because its egg is broken. [14:37] jml: Do you need me to throw something? [14:37] jml: I am sitting next to deryck [14:38] StevenK: please ask gary to fix it :) [14:38] jml: Both flacoste and gary are working on it right now. [14:38] sweet. [14:38] StevenK: thanks. [14:39] jml: we need to remove eggs/setuptools* [14:39] because distribute is evil [14:39] really evil [14:40] most evil force in the universe [14:53] haha [14:54] matsubara: do you know if soybean oopses are synced to devpad every 10 minutes or once a day? [14:55] Ursinha, I think it's every hour now for all oopses [14:55] oh [14:55] that's bad [15:06] gmb: dependencies: storm, transaction, twisted, txamqp, zope.component, zope.schema, zope.interface, zope.configuration [15:13] stub: http://as.ynchrono.us/2007/12/filesystem-structure-of-python-project_21.html (fwiw) [15:19] bigjools: http://twistedmatrix.com/documents/current/core/howto/tap.html [15:52] wgrant, jml, stub: http://paste.ubuntu.com/633675/ [15:53] allenap: You are a horrible person. [15:54] wgrant: Thank you :) [15:54] Haha [16:00] abentley: O hai. [16:00] StevenK: Hai. [16:01] abentley: Do you remember what the JS that is loaded after page load on projectseries/+setbranch does? [16:02] Is 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] StevenK: Nothing is coming to mind. [16:06] wgrant: http://www.cs.yale.edu/quotes.html [16:26] bigjools: http://twistedmatrix.com/documents/current/core/howto/application.html [16:45] jcsackett: http://gfxmonk.net/shellshape/ [16:47] Is 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-token [16:51] huwshimi: Huh, I know him. [16:51] From uni. [16:52] wgrant: Oh right [16:56] Oddity. [17:01] nhandler: nb it's oauth not oath [17:01] they are both authentication mechanisms [17:03] Bleh. Thanks poolie. I really shouldn't code before fully awake :) [17:05] not the best naming system in the world [17:16] bac: 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:17] <_mup_> Bug #705153: "Subscribed by" hover is incorrect < https://launchpad.net/bugs/705153 > [17:19] jcsackett: you are correct. i've marked it invalid [17:48] wgrant: here's some loggerhead code you may like: [17:48] def dq(p): [17:48] return urllib.quote(urllib.quote(p, safe='')) === salgado is now known as salgado-lunch [17:56] spiv: Burn [18:02] * maxb chuckles [18:43] Any 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) === salgado-lunch is now known as salgado === beuno is now known as bueno === bueno is now known as beuno [19:54] Hi, I couldn't find it in the documentation, what is the limit for client applications to the Launchpad API? [20:02] Project parallel-test build #75: STILL FAILING in 1 hr 19 min: https://lpci.wedontsleep.org/job/parallel-test/75/ === wgrant changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 204 - 0:[######=_]:256 [20:47] Yippie, build fixed! [20:47] Project devel build #841: FIXED in 5 hr 49 min: https://lpci.wedontsleep.org/job/devel/841/ [21:09] moin [21:10] yo [21:10] think most people are at dinner [21:10] cool [21:12] how was the day? [21:13] Seemed to go ok. Getting some traction on rabbit. [21:14] Catching up from last week too. [21:14] Not sure how the other groups fared [21:15] I haven't filed bugs for the fast-downtime stuff yet [21:16] james_w: speaking of which; ping [21:16] stub: 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:17] wgrant, lifeless, jcsackett: thank you guys for such a quick turnaround time on our api enablement requests, greatly appreciated [21:28] lifeless, hi [21:28] james_w: I don't recall hearing back from linaro on stakeholders about db schema downtime [21:29] lifeless, I haven't heard anything, I'll prod, but otherwise we can take it as "silence is agreement" and move ahead [21:29] thanks [22:49] lifeless: You may have seen the rabbit layer land. [22:49] lifeless: We sorted out the failures. [22:49] great [22:49] what were they ? [22:49] And ripped canonical.amqp out of landscape, into lazr.amqp [22:49] Well. [22:50] The problem was the config overlay is just about impossible to remove. [22:50] Since it's written to disk. [22:50] So we just made the layer unteardownable. [22:50] that reminds me, I needed to talk with flacoste about lazr :P [22:50] We didn't want to call it lazr, but it was easiest for now. [22:50] wgrant: what did you want to call it ? [22:50] No ide. [22:50] idea [22:50] Which is why it's lazr. [22:51] It also currently uses the system rabbit for tests :( [22:51] wgrant: unteardown makes me sad; we use config overlays on disk for librarian too, why is that different ? [22:51] But I've ported it mostly to the fixture. [22:51] and db [22:51] lifeless: I don't quite recall. [22:51] lifeless: But the tests want the config overlay to be absent. [22:51] could someone file a bug? low tech-debt [22:52] I suspect the librarian/db tests do not. [22:52] eg. the librarian hiding thing just sets a bogus port. [22:52] Also, how do I make efficient use of a fixture? [22:52] ie. use .reset() between tests? [22:52] Rather than restarting rabbit each time. [22:52] Which is slow. [22:53] (this is in lazr.amqp, so no layer) [22:58] also [22:58] stub was saying that zope now has a way to tear down the functional layer [22:58] Yeah. [22:58] We should be able to. [22:58] But lazr.config needs some wrangling before we can do it for everything. [22:58] if we get rid of that, the new unteardownable thing and wgrant gets his question answered, we could stop using layers [22:58] Yay [22:58] BURN [22:58] etc. === salgado is now known as salgado-afk [22:58] that's three things that are non-trivial before we get to do the thing we actually want to do, which is also non-trivial :) [23:00] jml: there is a zope.testing.functional or something which now has a tearDown [23:00] we need to test using it [23:00] I don't knove if the CA has a teardown yet [23:00] wgrant: .reset() exists for use between tests, yes. [23:00] you could probably hack one up [23:00] lifeless: But how do I use it? [23:00] replace globalregistry with a new one [23:01] wgrant: aye, and therein lies the rub [23:01] wgrant: you use the unwritten testfixtures optimiser code [23:01] wgrant: -or- [23:01] wgrant: and I recommend this, use testresources and write a -very- shallow thunk from a ResourceManager to the fixture. [23:02] Hmm. Perhaps. [23:02] Thanks. [23:02] if it's run with zope testrunner, that won't help though [23:03] It is the zope testrunner at present :( [23:03] if its run with zope testrunner you can use a layer [23:03] True. [23:03] But it also workswith trial, which I don't reallly want to break. [23:03] when you said foo so no layer, I assumed a good testrunner [23:03] wgrant: choose. [23:03] So there's no cross-runner compatible way to do it? [23:03] Sad. [23:03] wgrant: there is, if you fix zope testrunner to not destroy test suites [23:04] e.g. make it compatible [23:04] lolz [23:04] FWIW, I'd do the following: [23:04] - make testr the primary runner for it (implies trial compat) [23:04] - use testresources [23:04] - profit [23:05] Possibly. [23:06] you can use trial --reporter=subunit [23:06] We're using zope.testrunner now because it was easy with buildout, but I gues we can just use testr with something. [23:06] Aha. [23:06] Handy. [23:06] it doesn't have load-by-id for broken-test-iterations or parallel support [23:06] :( [23:06] but if you use jmls' most excellent twisted support in *testtools* [23:06] Asny suggestions for something better? [23:06] Ah. [23:07] then you're sitting pretty [23:07] I looked at that, but it said it was highly experimental and not to be used. [23:07] lies [23:07] we use it in Launchpad [23:07] its more 'subject to change' [23:07] Ah. [23:07] wgrant: jml: I'm glad you guys are hacking on this. [23:08] "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] But I guess if you and jml tell me otherwise... [23:08] wgrant: so what does lazr.amqp do? [23:08] wgrant: we use it consistently in Launchpad [23:09] wgrant: is it landscapes long poll service? [23:09] wgrant: or just glue code? [23:09] lifeless: Mostly a Twisted HTTP server for rabbit-based long-polling, yes. [23:09] It also has a rabbit job runner. [23:09] so, I think the name is totally misleading [23:09] lazr.longpoll perhaps [23:09] Possibly. [23:09] it's actually more "I don't want people to complain too much if it's broken" [23:09] The name is not really defined. [23:10] txlongpoll? [23:10] It was canonical.amqp, and Julian JFDI. [23:10] jml: +1 [23:10] jml: that would be so much better [23:10] lifeless: our main aim is to get something working end-to-end [23:10] sure, cool [23:10] It's not *just* long polling, as it turns out. [23:10] so the reason I asked [23:10] But that's one of its modules. [23:11] lifeless: 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 EOW [23:11] (of course anyone else can change it) [23:12] so, you've seen ServicesRequirements [23:12] fwiw, I am pretty confident :) [23:12] I want to highlight a couple of the implications there [23:12] lifeless: yes, https://dev.launchpad.net/Projects/LongPollNotes links to it [23:12] we shouldn't be importing *any* of the code in this project into LP itself. [23:13] lifeless: how is that implied? [23:13] https://dev.launchpad.net/ArchitectureGuide/ServicesRequirements#Test fake [23:13] its not mandatory [yet] [23:13] it will be soon [23:13] ahh good. NTH. [23:13] NTH ? [23:13] and also something that can be fixed late [23:14] so when I say test fake [23:14] lifeless: nice-to-have. sorry, it turns up a lot in my notes for things. [23:14] I mean 'live network service that is -fast- to startup, uses dynamic allocated ports and supports error injection [23:14] I specifically do not want in-process fakes [23:15] because they increase coupling and tighten version dependencies [23:17] lifeless: why do you object to the package having its own client code & test double? [23:18] I want to thoroughly decouple things [23:19] we're going to be deploying entirely separately [23:19] if its physically impossible to do a lockstep change to the client and server [23:19] I think it will really help people avoid such disasterous changes [23:19] it also works better when we rewrite a service to be in a faster language [23:20] and 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:21] thats the angle for client code [23:21] for test double, I *do* want the service to provide its own test double. [23:21] lifeless, jml: did you know that the django test runner manages to be EVEN MORE terrible than the zope one? [23:21] I just want that to be an actual network service [23:21] mwhudson: thats quite an achievement [23:21] mwhudson: no, I didn't. [23:21] mwhudson: I didn't even know it *had* its own test runner [23:21] Django manages to be pretty terrible. [23:21] lifeless: you don't mind having multiple language implementations for a protocol in one tree :P [23:21] Without the few redeeming qualities that Zope has. [23:22] lifeless: it rips apart testsuites in the same way zope's does, and has database management baked into the runner directly [23:22] eww [23:23] jml: I don't, but its been pretty awkward [23:23] i may try to convince them this is a bad idea [23:23] * jml nods [23:23] jml: and I'm a bottleneck on changes in that project, something I want to structurally avoid for our services [23:23] lifeless: ok. I think that's fair enough. [23:24] jml: another facet here [23:24] jml: we're aiming for 'crisp, clean and strongly defined layers' [23:25] lifeless: 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] jml: anything whose contract is in python is pretty poor at that :) [23:25] lifeless: good point. [23:25] jml: have you looked at my draft microservice for gpg signature checking ? [23:26] lifeless: no, but your email about it is flagged for reading [23:26] jml: 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] lifeless: cool. [23:26] jml: 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:27] jml: the point about importing stuff, is that if the rabbit fixture is moved into this other-server-tree, it becomes unusable by Launchpad [23:28] multiplying tiny projects :( [23:28] yes [23:28] so we put them all in ~launchpad/+junk [23:28] this is something LP needs to be much better at [23:28] well, LP doesn't even begin to help you answer the question "how the hell do I land stuff on this project" [23:29] lifeless: I think the 'not importing' requirement should be made explicit in that doc, btw. [23:30] wgrant: if there is more than long polling in the tree, exercise rm :) [23:30] lifeless: s/rm/split/, I suspect. [23:31] lifeless: We need to analyse tomorrow. [23:31] wgrant: sure [23:31] jml: I will transscribe this discussion in some form today [23:31] I didn't look at the code until I was somewhat impaired. [23:31] jml: after I get my slides ready [23:31] Today was just spent getting it working. [23:31] lifeless: thanks. [23:32] jml: I am open to negotation on everything, but I think I have a cohesive story with interlocking supports [23:33] wgrant: 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] jml: Sure. [23:34] Getting it working, not succeeding in that endeavour :) [23:34] :) [23:42] I'm off to catch some Zs [23:42] g'night.