[00:00] <kirkland> wgrant: ack
[00:12] <lifeless> kirkland: consider that other buildds can run arbitrary users arbitrary code
[00:12] <kirkland> lifeless: yeah
[00:13] <lifeless> now if you say I don't care about that, thats fine
[00:13] <lifeless> but we can't really offer a secure embargo *and* have such an obvious wart that we'd need to warn folk off
[00:16] <lifeless> we don't currently have a bi-directional channel for 'I need file X' from the buildd's.
[00:17] <lifeless> we probably need something like that to deal with arbitrary build-dependencies w/in the PPA (unless you say 'no build dependencies with hidden sources needed')
[00:17] <lifeless> $blah etc.
[00:17] <wgrant> lifeless: Huh?
[00:17] <wgrant> You don't build-depend on sources :)
[00:17] <lifeless> wgrant: I know. Still sickish.
[00:17] <wgrant> We know the needed source files before we start the build.
[00:17] <lifeless> wgrant: I regretted that bit as soon as I wrote it.
[00:18] <lifeless> well
[00:18] <lifeless> as soon as I hit ENTER.
[00:18] <wgrant> Heh
[00:18] <lifeless> anyhoo
[00:19] <lifeless> key thing - kirkland - if you want to work on this, by all means. The constraints are: soyuz assumes source available everywhere today; there is no guaranteed sequencing for htaccess changes and publication IIRC (different processes write it, IIRC), buildds are untrustable
[00:19] <lifeless> personally, I'd still try a TLT approach first and foremost.
[00:19] <wgrant> Indeed.
[00:19] <wgrant> It's easily doable now.
[00:20] <kirkland> lifeless: what's TLT?
[00:20] <lifeless> TimeLimitedToken
[00:20] <lifeless> a time limited access pass to one file in the private librarian
[00:20] <kirkland> lifeless: ah, tokay
[00:21] <lifeless> click on a bug attachment on a private bug, or a private build log, for instance.
[00:21] <lifeless> it will work for a day, but then stop working unless you go back to the LP web UI and click on the link there again
[00:21] <lifeless> which does a redirect dance to issue a token and forward you to the token-including url on the librarian
[00:31] <wallyworld__> wgrant: https://code.launchpad.net/~wallyworld/launchpad/fix-convoy-make/+merge/90225
[00:32] <wallyworld__> wgrant: i'll need to ask to to lp-land also since it's broken on my system
[00:40] <wgrant> wallyworld__: What creates build/js/yui/yui-3.3.0?
[00:40] <wgrant> buildout?
[00:44] <wallyworld__> wgrant: yui-dep.py
[00:45] <wallyworld__> ah, hang on, yui-deps uses that dir
[00:45] <wallyworld__> i think it's buildout.cfg, yes
[00:45] <wallyworld__> is where it's defined
[00:46] <wallyworld__> yes, just refreshed my memory, it is buildout
[00:47] <wgrant> Great.
[01:29] <james_w> lifeless, so, thinking about it over dinner, I'm not sure that we would get any benefit from txlongpoll in this bit of the system, but we may well want to use it for updating the browser when the this backend processing job gets all the way back to the user-facing web service to update browsers. Is there a reason that we would want to use it between that user-facing service and the backend jobs that I'm missing?
[01:30] <james_w> lifeless, if it's not a good time then this can obviously wait
[02:15] <lifeless> james_w: sorry, was on the other machine
[02:15] <lifeless> james_w: uhm,I don't know what you're putting together at the moment, so I can't really comment ;)
[02:16] <james_w> Yeah, I realize it's a bit vague
[02:17] <james_w> We're basically adding an async job system to developer.u.c that packages tarballs
[02:17] <lifeless> and you wanted webhooks in there somehow
[02:17] <lifeless> ?
[02:18] <james_w> We have webhooks between d.u.c and the service that coordinates the workers
[02:19] <james_w> pkgme-service is the second system
[02:19] <lifeless> any reason for webhooks in particular?
[02:19] <james_w> Not strong reasons
[02:20] <james_w> In fact it's probably pointless
[02:20] <lifeless> so for LP I've advocated PSHB as the public event system for a while
[02:20] <lifeless> with rabbit internally
[02:20] <james_w> Given that rabbit is used as well
[02:20] <lifeless> txlongpoll isn't quite PSHB, but a little refactoring and it could be the browser side, with our own internal PSHB hub
[02:21] <lifeless> james_w: I presume you would like events out of LP too
[02:22] <james_w> For this? Eventually
[02:22] <james_w> For other things, definitely
[02:23] <lifeless> hah, '404 Bugs reported by me '
[02:23] <james_w> heh
[02:25] <lifeless> anyhow, broadly speaking:
[02:25] <lifeless>  - I think one event system internally, and one publically is fine
[02:26] <lifeless> public/internal being split on *data* protection not teams.
[02:30] <lifeless> and I'm massively pro using event systems to let different bits be built separately
[02:30] <lifeless> I presume you've seen the guidelines for things in LP done this way?
[02:30] <lifeless> they dont' apply directly to you but may still be useful
[02:38] <james_w> I think so, you mean ServicesRequirements?
[02:40] <lifeless> yes
[02:40] <lifeless> .
[02:40] <lifeless> I hate my ISP. Hates.
[02:41] <lifeless> They couldn't keep DSL reliable if they were paid to.
[02:47] <james_w> Yeah, we look over that doc frequently
[02:52] <lifeless> james_w: I love feedback, if you ever have any :)
[02:54] <james_w> sure will
[02:55] <lifeless> this is totally unrelated but you may find it fun - http://piumarta.com/software/maru
[03:04] <StevenK> lifeless: You *do* pay them to keep your DSL reliable.
[03:07] <lifeless> StevenK: I know
[08:28] <stub> What is the easiest way to get a package from Oneiric universe into a PPA for Lucid? Copy without rebuild should be fine, but I think that is only point and drool when the source is a PPA?
[08:44] <wgrant> stub: You can't copy it directly; the source name conflicts with the 8.4 one.
[08:44] <wgrant> You'll need to rename it to postgresql-9.1-debversion, like the binary already is.
[08:45] <stub> I'm not that far. Can't even see a link to download the sourcepackage so am bzr branching atm.
[08:48] <wgrant> http://launchpad.net/ubuntu/oneiric/+source/postgresql-debversion
[08:48] <wgrant> Scroll down a little, and there is the link.
[08:50] <stub> I still don't see it
[08:50] <stub> oh.. not looking for a .deb am I
[08:51] <adeuring> good morning
[09:58] <bigjools> lifeless: yo
[10:01] <bigjools> I can haz testresources release please?
[12:29] <rick_h> wgrant: still around? wondering about the combo loader/convoy setup
[12:30] <StevenK> rick_h: Did you get the convoy MP approved?
[12:31] <rick_h>  StevenK I did from U1, I'm waiting to hear back from landscape folks
[12:31] <rick_h> they're not as sure how the heck it works on their end
[12:31] <StevenK> Well, they don't need to upgrade to it right away ...
[12:32] <rick_h> StevenK: right, I'm pinging sidnei right now to let him know I talked with landscape and we should be good
[12:33] <rick_h> so I'm prodding to get the MP merged
[12:33] <rick_h> they both had to check their apache configs because my change would break things on their end
[12:33] <rick_h> however, sidnei says they have rewrite rules that negate my change for them so it should be all good
[12:34] <rick_h> StevenK: he says all sounds good to him, so hopefully sidnei will merge soon now
[12:37] <rick_h> StevenK: did you follow how it is that not all prod machines will have convoy installled and avail in their setups? I kind of assumed they'd have to because the same apache config/etc was serving the combo files so they appeared to be from the app server?
[12:39] <StevenK> rick_h: Right, it makes sense.
[12:41] <rick_h> So then convoy and the combo loader live on one app server?
[12:42] <wgrant> rick_h: Apache doesn't run on the appservers
[12:42] <wgrant> Icing is served from the Apache on the frontends, banana and nutmeg.
[12:42] <wgrant> They run apache+squid+haproxy
[12:42] <wgrant> They are the only things in production that need to run convoy.
[12:46] <rick_h> ok, so the app servers need a config to pass the requests up a level then and then they'll cache the combo files?
[12:47] <wgrant> rick_h: The appservers aren't involved.
[12:47] <wgrant> rick_h: The frontend Apache on banana+nutmeg will intercept /+combo and send it to the local WSGI app
[12:47] <rick_h> ok
[12:47] <wgrant> All the appservers do is generate the +combo URL.
[12:47] <rick_h> ok, gotcha
[12:48] <StevenK> wgrant: lifeless' opinion was WSGI was too risky to run on banana/nutmeg
[12:48] <StevenK> So we'd proxypass to the appservers
[12:48] <wgrant> That's my opinion too, but I thought webops said otherwise.
[12:48] <StevenK> webops agreed with lifeless
[12:48] <rick_h> no, at Budapest we ping'd webobs on it and they said it'd be fine I thought
[12:49] <wgrant> That's what I thought, yeah.
[12:49] <rick_h> heh, so we're definitely not doing this on a friday :)
[12:49] <StevenK> I don't even want to set up qas/staging on a Friday
[12:50] <StevenK> rick_h: Oh yeah -- do you remember how you wanted +combo at the end of the URL? So say someone generates a branch called 'make-use-of+combo' == game over
[12:51] <StevenK> Since then the branch URL ends with it
[12:51] <rick_h> StevenK: well it would have to be /+combo has the branch namne
[12:51] <rick_h> the / is improtant I believe
[12:51] <wgrant> What benefit does that provide?
[12:52] <wgrant> It's important for +login, but that's all.
[12:52] <rick_h> nothing, it was just the initial thought that urls that end in /combo would be sent to convoy so that things worked kind of like a normal url routing. /prod1/combo /prod2/combo etc
[12:53] <rick_h> it's something that got changed based on StevenK's advice so we should be good
[12:59] <nigelb> WCPGW
[13:00] <StevenK> I'd rather qas wasn't on fire over the weekend.
[13:59] <james_w> hi, would someone have a few minutes to do a wadllib release for us to put in Debian/Ubuntu?
[13:59] <james_w> I assume it's just a few minutes to do a release at least
[14:01] <rick_h> james_w: that's a good question. I suppose that'd fall under my territory and I'm not sure how that's done.
[14:01] <rick_h> but fortunately I see deryck just joined in here so I can pester him about it :)
[14:01] <james_w> :-)
[14:02] <rick_h> deryck: james_w> hi, would someone have a few minutes to do a wadllib release for us to put in Debian/Ubuntu?
[14:02] <deryck> oh, hmmm, that's not my thing either. :)  Let's look around the room.
[14:03] <deryck> maybe flacoste or lifeless?
[14:03] <james_w> https://dev.launchpad.net/HackingLazrLibraries#releases
[14:03] <james_w> maybe that helps?
[14:03] <deryck> dang, there's always a wiki page.
[14:03] <deryck> just once I want to punt. ;)
[14:03] <rick_h> james_w: yea, just looking at that and checking the branches/etc
[14:03] <deryck> rick_h, back to you. ;)
[14:04] <james_w> heh
[14:04] <james_w> deryck, "accidentally" delete the wiki?
[14:04] <rick_h> james_w: so we're just looking to create a tarball of the latest lp:wadllib right?
[14:04] <deryck> ha!
[14:04] <james_w> rick_h, I believe so
[14:04] <james_w> the branch I want has landed at least :-)
[14:05] <rick_h> james_w: excellent, I'll get it checked out and work my way through this, give me a few
[14:06] <james_w> thanks rick_h, much appreceiated?
[14:06] <james_w> err, that's not a question
[14:06] <james_w> it surely is
[14:07] <rick_h> heh
[14:14] <rick_h> james_w: in looking over the changes this would be a 1.2.0 -> 1.2.1 change?
[14:15] <rick_h> oh nvm, add py3 would seem a bigger point
[14:23] <jcsackett> james_w: rick_h and i have been looking at your MP for python-oops, and rick_h has pointed out that it doesn't look like the code actually requires bson. what was the situation you encountered leading to this change? did something break on you, or is it just in response to other comments in the code about "must be bson serializable"?
[14:24] <jcsackett> james_w: i see other parts of our oops infrastructure require bson, which is what i believe prompts the comments in lp:python-oops.
[14:28] <james_w> jcsackett, rick_h, that's a very good point
[14:28] <james_w> I think I just invented that dependency
[14:29] <james_w> it's actually python-oops-datedir-repo that doesn't mention it in the README
[14:29] <james_w> I think I just read the mailing list thread and assumed
[14:29] <jcsackett> james_w: easy thing to do; it took me a few moments of digging through the related code to figure out what might be going on. :-)
[14:31] <james_w> I've pushed a new revision that drops bson
[14:31] <james_w> thanks for catching it
[14:49] <james_w> it seems download-cache is pruned without regard to other projects that rely on it (e.g. python-oops)?
[14:51] <rick_h> james_w: got a sec to give me a hand here? I've branched this and run bootstrap, buildout, and running tests are failing
[14:51] <james_w> rick_h, wadllib?
[14:51] <rick_h> I'm guessing there's a step I'm missing here?
[14:51] <rick_h> james_w: yes, do you need to run a python setup.py develop kind of thing first?
[14:52] <james_w> I don't think so
[14:52] <james_w> let me buildout a copy and see what I get
[14:52] <james_w> rick_h, thanks for the thorough review on https://code.launchpad.net/~james-w/python-oops/update-readme-dependencies/+merge/90028 you were correct about iso8601
[14:53] <abentley> rick_h: could you please review https://code.launchpad.net/~abentley/launchpad/data-download-view/+merge/90269 ?
[14:53] <rick_h> abentley: sure thing, will be a few.
[14:53] <abentley> rick_h: thanks.
[14:53] <rick_h> james_w: awesome, glad those weren't needed.
[14:55] <rick_h> james_w: with wadllib, the doctests import wadllib, but that would mean there was an egg for it for it to import from right?
[14:55] <rick_h> since the doctest it in the wadllib directory, I think
[14:59] <james_w> rick_h, yeah, I would expect buildout to take care of that though
[14:59] <rick_h> james_w: yea, I think I'll ping benji
[14:59] <rick_h> benji: got a sec to give me a hand with this wadllib fun?
[15:00] <benji> rick_h: sure, what's up?
[15:00] <rick_h> benji: I've been asked to do a release of it and I"m trying to get the env setup so I can run tests and increment versions and all that fun
[15:00] <rick_h> benji: my understanding is I need to branch, bootstrap.py, and buildout and from there .bin/test should work ?
[15:01] <rick_h> benji: except the tons of the doctests blow up on me and I'm not sure I've got things setup right
[15:01] <benji> rick_h: that's the right steps; let me see if I can reproduce the problem
[15:02] <james_w> I can't even bootstrap
[15:02] <james_w> it's complaining about the version of distribute in a seemingly contradictory way
[15:02] <rick_h> james_w: yea, I had to create the download-cache directory to bootstrap
[15:02] <james_w> ah, I'll try that
[15:02] <james_w> I was using lp-sourcedeps
[15:03] <rick_h> james_w: if you do it in a virtualenv like the docs say, it gives a giant warning that you're double dipping the no-site-packages, but I think that's just a warning not a true error
[15:12] <james_w> rick_h, so my first error is:
[15:12] <james_w>    ParseError: not well-formed (invalid token): line 1, column 1
[15:12] <rick_h> james_w: yea, same here
[15:13] <rick_h> so I guess the first couple do pass so perhaps it's not my setup but actual failing tests
[15:13] <james_w> wadl_string starts "<?xml version="1.0"?>"
[15:13] <james_w> I wonder if the Application API has changed
[15:15] <rick_h> james_w: I'm going to get a py3 env setup since that was the last commit and see if it works there and can start figuring out blaming py versions or what
[15:17] <james_w> ok
[15:24] <benji> rick_h: I've narrowed it down to some problem elementtree is having parsing the WADL XML
[15:25] <rick_h> benji: ok, yea that makes sense
[15:25] <rick_h> benji: so my setup is ok then, just a matter of real failing tests
[15:26] <benji> rick_h: yep (although there is at least one thing in the buildout that needs to be fixed, buildout.cfg defines a cache directory and eggs directory, but it shouldn't
[15:26] <rick_h> benji: right, that fits with my download-cache I had to create I think
[15:27] <benji> right, it shouldn't do that
[15:28] <rick_h> sorry, getting a crash course in buildout which was on the plan for today anyway but wheeee
[15:28] <james_w> ah, _make_unicode
[15:28] <benji> (if you want a download cache and an egg cache (and you do), they should be configured in .buildout/default.cfg)
[15:29] <james_w> elementtree hates unicode apparently
[15:30] <rick_h> bah, setting up with py3 fails as well with issues getting the right distribute it looks like
[15:32] <james_w> rick_h, I just added the distribute it said it picked to versions.cfg
[15:32] <rick_h> james_w: yea, just tried that but I get http://paste.mitechie.com/show/516/
[15:32] <rick_h> I updated the bootstrap.py to be a py3 compatible one from: http://pypi.python.org/pypi/zc.buildout/2.0.0a1
[15:33] <james_w> did you add "distribute = 0.6.24" to versions.cfg?
[15:33] <rick_h> it downloads the right distribute egg into /tmp
[15:33] <rick_h> james_w: yes
[15:33] <rick_h> hmm, why do some packages have one = and some == ?
[15:34] <benji> rick_h: it's a huge hack, but this makes the tests pass: http://paste.ubuntu.com/817767/
[15:34] <benji> rick_h: I need to attend to some other things now, but feel free to contact me if I can be of assistance.
[15:35] <rick_h> benji: ok, thanks for the help. I'm going to ping allenap since he has the last commit commenting on py3 support
[15:35] <rick_h> allenap: how does this work please? james_w would love a release but it seems kind of broken atm
[15:35] <james_w> I wonder about http://paste.ubuntu.com/817769/
[15:36] <allenap> rick_h: What are we talking about
[15:36] <allenap> ?
[15:36] <rick_h> allenap: james_w would love a wadllib release, but when I pull it and try to run tests/prep it the tests fail, there's buildout errors about download-cache, and when trying to make it work in py3 the bootstrap doesn't seem to work and I can't get bootstrap to run once I download the py3 compat version
[15:37] <rick_h> allenap: since you have the last commit about py3 compatibility I'm hoping you know what's up and how you made it all work
[15:37] <allenap> rvba: Right, let's have a look.
[15:38] <rvba> allenap: I suppose you meant to talk to rick_h… or do you need me for something?
[15:38] <rick_h> rvba: I think he was too quick on the autocomplete
[15:38] <allenap> Dammit.
[15:38] <rvba> allenap: that's ok ;)
[15:38] <rvba> Hi rick_h btw :)
[15:39] <rick_h> rvba: howdy? hope FR is well today lol
[15:39] <allenap> rick_h: Just try: python3 setup.py test
[15:39] <rick_h> allenap: without any buildout setup?
[15:40] <allenap> rick_h: Doesn't need it :)
[15:40] <rick_h> allenap: AttributeError: 'HTTPMessage' object has no attribute 'getheaders'
[15:40] <allenap> rick_h: Okay, maybe it does. Are you on Precise?
[15:40] <rick_h> allenap: no, oneiric. I've gotten py3, py3-setuptools and that's it so far
[15:41] <rick_h> well, installed py3 pip manually as well since that wasn't in a deb yet
[15:42] <rick_h> http://paste.mitechie.com/show/517/ allenap
[15:42] <allenap> rick_h: Ah, I am. Okay, buildout doesn't work on Python 3 (afaik). Does python2.7 setup.py test work?
[15:42] <rick_h> allenap: no, we get the test failures
[15:43] <rick_h> allenap: which benji *fixed* with http://paste.ubuntu.com/817767/
[15:43] <rick_h> but guessing that's not going to be nice in py3
[15:43] <benji> "fixed" in some sense of the word ;)
[15:43] <rick_h> allenap: and heads up, buildout *kind* of is supposed to work with py3: http://pypi.python.org/pypi/zc.buildout/2.0.0a1 bit alpha == scary and all that
[15:46] <rick_h> hmm, this error was supposed to be fixed it looks like: https://bitbucket.org/tarek/distribute/issue/206
[15:47] <allenap> rick_h: From a clean tree, I do: mkdir download-cache && python bootstrap.py && bin/buildout
[15:47] <allenap> The reason that download-cache is missing is, I think, so that it can be easily symlinked to the Launchpad download-cache.
[15:48] <allenap> Same with eggs.
[15:48] <rick_h> allenap: for the python2 side I did that and got the tests failing with unable to parse the xml test data file
[15:48] <allenap> rick_h: Do you have a pastebin for that?
[15:49] <rick_h> allenap: http://paste.mitechie.com/show/518/
[15:50] <rick_h> this is what benji's "cast to str()" fix corrected
[15:51] <rick_h> allenap: ok, on the py3 side I updated my distribute version and python3 setup.py test passes
[15:51] <benji> allenap: the download-cache and eggs-directory should be configured locally, not in a project's buildout; configuring them locally will still allow them to be shared with LP
[15:55] <allenap> rick_h: Can you try with this patch? http://paste.ubuntu.com/817787/
[15:55] <rick_h> allenap: sure thing, sec
[15:55] <allenap> benji: Yeah, agreed. I guess this was cargo-culted from Launchpad.
[15:56] <benji> probably
[16:00] <rick_h> allenap: same error for me
[16:01] <deryck> abentley, shall we G+ hangout or mumble for our call?
[16:01] <allenap> rick_h: Have you removed the str(...) thing?
[16:01] <abentley> deryck: Your call, but I'm having a bad hair day.
[16:01] <rick_h> allenap: yea, I never applied it
[16:01] <deryck> abentley, let's G+ then, it will be even more fun with bad hair. :)
[16:01] <rick_h> http://paste.mitechie.com/show/519/
[16:03] <deryck> abentley, should have an invite in bound.
[16:07] <allenap> rick_h: Can you try with another patch? http://paste.ubuntu.com/817803/
[16:08] <allenap> rick_h: Sorry about this; I can't replicate the problem :-/
[16:12] <rick_h> allenap: sure thing
[16:14] <rick_h> allenap: success, tests pass
[16:14] <allenap> rick_h: \o/
[16:14] <rick_h> let me run that on the py3 side and make sure that still runs as well then
[16:14] <rick_h> grabbing some quick grub/eyeball break. Thanks for helping with this.
[16:14] <rick_h> I'll let you know how the py3 side goes
[16:14] <allenap> rick_h: I'm not sure that _make_unicode() in _from_string() is needed, but I guess we need some tests to prove that.
[16:15] <rick_h> allenap: k
[16:27] <rick_h> james_w: so summary, how bad do we need the release atm? I've got to catch up on some code review duties today and it looks like we need some tests and tweaking of the buildout setup and docs before I'd really feel comfy doing a release.
[16:27] <rick_h> allenap: do you think adding py3 support is worthy of jumping 1.2.0 to 2.0?
[16:29] <allenap> rick_h: A non-technical question. I suddenly feel out of my depth. Why not? (Why? too).
[16:29] <rick_h> allenap: so just to shake poeple into seeing 2.0 means craps changed from 1.2, 1.3 means small changes, I should check that changelog
[16:29] <rick_h> allenap: purely opinion and not having worked on this don't feel qualified to make it
[16:30] <james_w> rick_h, it's not urgent
[16:30] <james_w> cjwatson, do you still have your py3 wadllib environment around by any chance?
[16:30] <allenap> rick_h: Yeah, then stick with 1.x I guess. I assume that means it's working with py3?
[16:30] <james_w> rick_h, which change makes it pass?
[16:31] <rick_h> james_w: that patch file from allenap http://paste.ubuntu.com/817803/
[16:31] <rick_h> and for py3 you need to make sure you've got distribute > 0.6.20
[16:32] <rick_h> james_w: and realize not to use buildout
[16:32] <rick_h> james_w: finally, I want to file a bug and get the download-cache thing fixed per benji on the py2 side
[16:32] <rick_h> and update some of the docs in https://dev.launchpad.net/HackingLazrLibraries#releases
[16:33] <james_w> rick_h, I don't think that actually fixes the bug
[16:33] <james_w> as in, it makes the tests pass, but only because they are doing something different
[16:33] <rick_h> james_w: right, which is why I want to hold off on the release and update some tests and look at this more carefully
[16:34] <rick_h> I'm not sure what wadllib does tbh and so need to catch up
[16:35] <cjwatson> james_w: probably
[16:35] <james_w> I think http://paste.ubuntu.com/817769/ may well be better
[16:35] <cjwatson> (2.0 seems overkill)
[16:35] <james_w> cjwatson, would you try the patch in http://paste.ubuntu.com/817769/ if you do please?
[16:35] <rick_h> cjwatson: k, thanks. 1.3 it is
[16:38] <cjwatson> james_w: that looks wrong; it would prevent Application from being initialised using a Unicode string
[16:39] <james_w> cjwatson, true, but that currently fails on Python2
[16:39] <cjwatson> really?  what's the problem we started with here?
[16:39] <rick_h> cjwatson: http://paste.mitechie.com/show/518/
[16:39] <james_w> cjwatson, the tests fail under Python 2
[16:39] <cjwatson> the intent of the code definitely seems to be to accept either bytes or unicode there
[16:39] <cjwatson> james_w: they pass here
[16:39] <rick_h> cjwatson: yea, they pass for allenap, appears he's on precise?
[16:40] <james_w> because it gets bytes, unicodes them, puts them in a StringIO and then reads them
[16:40] <rick_h> on my oneric it fails and benji and james_w got the same failures
[16:40] <james_w> oneiric here too
[16:40] <cjwatson> james_w: which should work fine in Python 2
[16:40] <cjwatson> its StringIO should tolerate either
[16:40] <james_w> so an API difference in elementtree or pkg_resources
[16:40] <benji> precise here
[16:40] <james_w> hmm
[16:41] <cjwatson> but it's true, I see the failure in an oneiric chroot
[16:41] <cjwatson> with Python 2.7 even
[16:42] <james_w> if you drop the unicode call then it works again, suggesting that elementtree is choking on unicode
[16:44] <james_w> so if we're on Python 2 we should skip unicoding there, and all should work right?
[16:44] <james_w> no change for Python2, and the right thing for Python3?
[16:44]  * cjwatson is analysing ...
[16:45] <allenap> Doing unicode(a_string) does an implicit decode, and you shouldn't do that to XML bytes unless you know the encoding.
[16:46] <allenap> Well, you shouldn't do an implicit decode on XML at all.
[16:46] <allenap> Keep it as bytes, let the parser do the rest.
[16:46] <cjwatson> Using BytesIO in Python 3 prevents people passing in strings in the natural way, though.
[16:46] <allenap> (The first pkg_resources change I made might have been a red herring.)
[16:47] <cjwatson> If you want to do that, you'll have to encode strings.  Seems clunky though.
[16:47] <allenap> cjwatson: The second patch (http://paste.ubuntu.com/817803/) still allows for strings and streams.
[16:47] <cjwatson> so minimal reproduction case in oneiric:
[16:47] <cjwatson> >>> import xml.etree.cElementTree as ET
[16:47] <cjwatson> >>> from cStringIO import StringIO
[16:47] <cjwatson> >>> list(ET.iterparse(StringIO(u"<foo/>")))
[16:47] <cjwatson> Traceback (most recent call last):
[16:48] <cjwatson>   File "<stdin>", line 1, in <module>
[16:48] <cjwatson>   File "<string>", line 84, in next
[16:48] <cjwatson> cElementTree.ParseError: not well-formed (invalid token): line 1, column 1
[16:49] <cjwatson> allenap: with the justification being that opening XML files in text mode is wrong?
[16:49] <allenap> cjwatson: Yes.
[16:49] <allenap> There is ET.fromstring that seems to do the right thing.
[16:49] <cjwatson> I guess.  But in that case you'll still need to use BytesIO in Python 3.
[16:50] <cjwatson> And I think it'd be better to call it BytesIO in Python 2 as well (from cStringIO import StringIO as BytesIO) for clarity
[16:51] <james_w> agreed (BytesIO)
[16:51] <allenap> Yeah, I agree too.
[17:00] <james_w> allenap, so the fix should be to use fromstring?
[17:01] <allenap> james_w: Yeah, I think that makes sense. Punt the problem over to the stdlib :)
[17:07] <james_w> allenap, are you putting a patch together?
[17:08] <allenap> james_w: I wasn't. I thought rick_h and benji were doing that?
[17:11] <rick_h> allenap: I stepped back for a few while you guys debated the best fix. I think I can put something together based on your conversation. It'll probably be tomorrow when I get that together and I'll bug you guys again if I hit trouble
[17:12] <james_w> great, thanks rick_h
[17:12]  * rick_h saves this irc log like there's no tomorrow :)
[17:13] <rick_h> abentley: ping, question on the MP. line 92 removes the content-length header, but I don't see where it gets added? I was expecting DataDownloadView to add it in __call__?
[17:14] <rick_h> abentley: but I do see you have a test for it checking the length in line 188
[17:14] <abentley> rick_h: It happens in the Zope machinery.
[17:14] <rick_h> abentley: ah ok
[17:15] <rick_h> abentley: so the previous setting was just superfluous?
[17:17] <rick_h> abentley: bah nvm, I see the comment in there about that point
[17:34] <allenap> rick_h: Cool :)
[18:04] <rick_h> james_w: so think I've landed your changes to the python-oops, not sure how long it'll take to show in trunk
[18:04] <rick_h> james_w: so ping me if you don't seem them in a bit
[18:08] <james_w> rick_h, great, thanks
[18:09] <rick_h> james_w: there it goes, looks like it went through yay
[18:09] <james_w> yay
[18:19] <abentley> sinzui: do you know anything about DistroSeriesDifferenceComment ?
[18:19] <sinzui> I do not
[18:19] <sinzui> abentley, I *think* it is an explanation for a change in packaging
[18:20] <adeuring> rick_h: fancy a review? https://code.launchpad.net/~adeuring/launchpad/bug-834303/+merge/90304
[18:20] <rick_h> for you adeuring, any time :)
[18:20] <sinzui> eg backport upstream fix to lucid-based series for partner
[18:20] <adeuring> rick_h: thanks!
[18:21] <abentley> sinzui: Okay, thanks.  I just asked 'cause none of the authors were around.
[18:31] <deryck> abentley, rick_h, adeuring -- about to have to go offline to head home.  tornadoes are coming and need to relocate for safety.
[18:31] <rick_h> deryck: ok, head deep
[18:31] <adeuring> deryck: good luck!
[18:31] <deryck> but will work online once back there.
[18:31] <abentley> deryck: ack.
[18:31] <deryck> it's safe now, but we get a bit paranoid around here when those storms come now. :)
[18:31] <deryck> so before they hit, I'll get home. :)
[18:31] <rick_h> adeuring: in line 30 of your MP, do you need the cast to set? will you possibly get multiple of the smae subscriber_id?
[18:32] <adeuring> rick_h: good catch -- the IDs are unique. I'll remove the set()
[18:43] <abentley> jcsackett: you're mentoring rick_h, right?
[18:44] <rick_h> abentley: yea, did I not add him to the reviewers list?
[18:44] <rick_h> abentley: he was nomming some lunch a few ago
[18:44] <abentley> rick_h: Oh, I just wanted to make sure a mentor review was going to happen.
[18:45] <rick_h> abentley: yea, I've added him as a requested review and should happen when get gets back from lunch
[19:12] <jcsackett> abentley, rick_h: i'm back. had a bit of hiccup, but looking through reviews now.
[19:12] <jcsackett> sorry for delays. :-P
[19:12] <abentley> jcsackett: No worries.
[19:24] <jcsackett> abentley: i have nothing to add to rick_h. that's a really nice change, r=me.
[19:24] <abentley> jcsackett: You guys are going to have to get tougher with me, or I'm gonna get a swollen ego :-)
[19:25] <jcsackett> abentley: i promise to tear a branch to pieces some day. just not today. :-)
[19:25] <abentley> jcsackett: thanks.
[19:25]  * jcsackett laughs.
[19:26] <jcsackett> only from lp devs do we thank each other for promises to be mean in MPs.
[20:21] <thumper> hi people
[20:21] <thumper> is there someone who understands PPA builds around?
[20:22] <thumper> or should I wait for wgrant?
[20:22] <lifeless> !ask
[20:22] <thumper> hi lifeless
[20:23] <lifeless> thumper: :) hi. You know the story. Don't ask to ask.
[20:23] <thumper> if I have two packages being built into a PPA, A and B
[20:23] <lifeless> recipes?
[20:23] <thumper> and api/abi breaks in A will cause B to fail
[20:23] <thumper> B depends on A
[20:23] <thumper> if I change A
[20:23] <thumper> will B get built?
[20:23] <thumper> not recipes, just ppa stuff
[20:23] <lifeless> ok
[20:23] <thumper> do we need to manually kick off a build for B?
[20:24] <lifeless> B won't rebuild just because A changed.
[20:24] <lifeless> jml: hi
[20:24] <thumper> ta
[20:25] <lifeless> What you'd want to do in general if you have an API break is to add breaks: B =< $lastbuild and that will stop folk co-installing incompatible pairs
[20:43] <lifeless> kirkland: its really not that much work
[21:37] <lifeless> abentley: the other day, talking about big comments- I knew you were talking about merge proposals. I was suggesting we could reduce special cases by making the bugs and merge proposal comment threads more similar
[21:38] <abentley> lifeless: I have already done a lot of work to make the bugs and merge proposal comments more similar.
[21:39] <lifeless> cool
[21:40] <lifeless> I was just wrapping up that chat, I had an ELOCAL and then you had EOD'd.
[21:40] <abentley> lifeless: So when this code does go live, code review comments, not just bug comments, will be truncated and have a "Read more" link if they're unusually long.
[21:41] <abentley> lifeless: And both will have "Download full text" links, if applicable.
[21:41] <lifeless> cool
[21:41] <lifeless> thats really nice
[21:42] <lifeless> do we serve those comments from the librarian ?
[21:42] <lifeless> If not, should we? [e.g. migrate their full content out of the DB, leave behind just the truncated form].
[21:43] <abentley> lifeless: We don't serve them from the librarian.
[21:43] <abentley> lifeless: I wasn't going to, because we need to generate the body text, and possibly obfuscate email addresses.
[21:47] <lifeless> ah, do we sometimes not obfuscate?
[21:48]  * lifeless goes to triage more bugs \i/
[21:51] <james_w> hi lifeless
[21:55] <jelmer_> uhoh
[21:55]  * jelmer_ takes cover for the incoming flood of email
[21:59] <abentley> lifeless: We only obfuscate email addresses for anonymous access.  Logged in users will see email addresses, just as they would in the normal UI.
[22:01] <wgrant> lifeless: No, ABI breaks are handled in sensible projects by incrementing the SONAME :)
[22:19] <jml> lifeless: hi
[22:19] <lifeless> jml: hi! Did you see my testtools release prompt mail.
[22:21] <lifeless> poolie: do you think bug 567632 is likely to get a timeslice in the next 6 months (from a bzr'r) ?
[22:21] <_mup_> Bug #567632: loggerhead could be faster if it used statictuple <performance> <loggerhead:Triaged> < https://launchpad.net/bugs/567632 >
[22:22] <jml> lifeless: I saw it yeah. Haven't read it yet.
[22:22] <lifeless> jml: do you have time to read it now?
[22:22] <jml> lifeless: sure.
[22:22] <lifeless> thanks
[22:22] <jml> lifeless: my laptop screen has died & I've spent the last couple of days setting up a VM on my mac
[22:23] <lifeless> jml: ugh
[22:23] <lifeless> jml: commiserations
[22:23] <jml> lifeless: and my house has a mouse infestation so I'm staying at friend's place
[22:23] <jml> lifeless: so not a lot of free time at computer
[22:23] <lifeless> jml: I could fedex you a kitten.
[22:23] <jml> lifeless: the landlord probably wouldn't approve
[22:24] <lifeless> ah yes
[22:24] <jml> lifeless: perhaps we could adopt the mice as pets and have him evict them
[22:24] <lifeless> -so- glad to be free of that :)
[22:25] <wallyworld_> wgrant: https://bugs.launchpad.net/jockey/+bug/293399
[22:25] <_mup_> Bug #293399: jockey messed up with driver installation status <Jockey:New> <Ubuntu:Invalid> < https://launchpad.net/bugs/293399 >
[22:25] <poolie> hi jml
[22:26] <poolie> lifeless, no
[22:29] <jml> poolie: hello
[22:29] <jml> I've been reading about R, recently
[22:29] <jml> it's good
[22:29] <jml> very glad I bought a book
[22:30] <poolie> it is interesting
[22:31] <lifeless> jml: thanks for replying
[22:32] <jml> lifeless: np
[22:36] <lifeless> jcsackett: will you be landing the loggerehed bug 276768 branch ?
[22:36] <_mup_> Bug #276768: Long revision comment does not wrap <launchpad-loggerhead:Invalid> <loggerhead:In Progress by pr0gg3d> < https://launchpad.net/bugs/276768 >
[22:37]  * jml defers solving VM clock skew until the morrow
[22:39] <lifeless> sinzui: bug 601392 - is that easy, or even trivial ?
[22:39] <_mup_> Bug #601392: Loggerhead has poor text-background contrast with Chromium <css> <ui> <wcag> <Launchpad itself:Triaged> <loggerhead:Triaged> < https://launchpad.net/bugs/601392 >
[22:41] <sinzui> lifeless, trivial someone is landing a loggerhead css change at this minute I think
[22:41] <lifeless> poolie: oh, t'other thing - your in-page timeline view; how is the post-landing fixup coming along?
[22:41]  * lifeless hits enter 5 times to make tagsa pply
[22:42] <poolie> i have not touched it you
[22:42] <StevenK> lifeless: I think you need to visit your ISP.
[22:42] <poolie> *yet
[22:43] <poolie> i still intend to but i haven't got to it
[22:43] <sinzui> StevenK, I updated the merge bug with what flacoste and I discussed.
[22:43] <StevenK> sinzui: Excellent, thanks.
[22:44] <lifeless> StevenK: the tags thing is an LP regression
[22:44] <lifeless> StevenK: but yes, I should visit my ISP
[22:45] <lifeless> poolie: well, I trust you will get to it soon!
[22:46] <wgrant> lifeless: It sometimes works first time, which is odd.
[22:47] <wgrant> And I think it regressed in the last monthish.
[22:48] <lifeless> yeah
[22:48] <james_w> lifeless, if I am creating new python-oops-* projects, do you have a recommendation for who should own them?
[22:48] <lifeless> james_w: yes, I do
[22:48] <lifeless> james_w: https://dev.launchpad.net/CreatingNewProjects
[22:48] <rick_h> StevenK: if you get a sec can you fix your convoy branch for the tests_require? I've gotten permission from rockstar to merge my branch and yours in there once fixed so we'll have an updated dev of convoy
[22:50] <james_w> lifeless, that seems wrong to me in this case
[22:51] <StevenK> rick_h: That change is not really needed, now that we use a .deb of convoy, but sure, why not.
[22:51] <james_w> lifeless, it would have the Launchpad team owning code that they never used or worked on, and which is currently unused in Launchpad with no plans to do so, while the people that do work on it don't have the powers over the project
[22:52] <lifeless> james_w: well, whats the case
[22:53] <james_w> firstly python-oops-celery
[22:53] <lifeless> james_w: and who do you want to be responsible for running the project (bug triage, code review, doing releases)
[22:53] <james_w> Online Services
[22:53] <james_w> as the users of this code
[22:54] <lifeless> I have no objection to something named like other python-oops- projects being run by other folk than the lp team
[22:54] <james_w> ah, I missed the bit at the bottom
[22:54] <lifeless> viva la communite
[22:55] <lifeless> personally, in this case, I would just use lp, as lp is pretty good at low latency reviews etc
[22:55] <lifeless> I don't see a great need to be precise about things
[22:55] <lifeless> OTOH if that is uncomfortable for you, then feel free to have it separate
[22:56] <lifeless> the 'Not part of Launchpad proper?' section doesn't cover you here, because 'A growing number of the projects the Launchpad team work on ' doesn't fit
[22:57] <rick_h> StevenK: yea, but it's still a good form upstream change and while I'm merging I'd like to clean it up
[22:57] <james_w> true
[22:59] <lifeless> james_w: so there are two groups interested in the code: online services (need it for their new project), LP (may use celery, and care about it as part of the oops ecosystem)
[22:59] <lifeless> LP is set up for public project governance with contributions from all over.
[22:59] <lifeless> Online services isn't, so far anyhow.
[22:59] <StevenK> rick_h: Is done
[23:01] <rick_h_droid> ty much
[23:02] <james_w> I think we're sufficiently set up to handle these projects
[23:02] <lifeless> james_w: I think you need to decide how you want it setup and just do it ;)
[23:02] <lifeless> james_w: if you make it easy for LP devs to contribute, if/when needed, so much the better
[23:02] <james_w> https://launchpad.net/python-oops-celery
[23:02] <james_w> https://launchpad.net/python-oops-dictconfig
[23:02] <lifeless> james_w: the rest of that page may be useful inspiration for you
[23:03] <lifeless> cool
[23:03] <james_w> there's some reviews there if you feel so inclined
[23:05] <lifeless> so, this is why the page for lp stuff says what it does : tracking N different sources of things to do is horrible
[23:05] <lifeless> I'm happy, if you want a review, to be pinged, or even to be in the review team.
[23:05] <james_w> I'll have no problems getting reviews when the sprint resumes tomorrow, so it's just if you are interested in them
[23:06] <lifeless> but its very unlikely that I will ever find them todo in my daily gtd routine :)
[23:06] <james_w> I'll be sure to explicitly request a review from you if I want one
[23:07] <lifeless> cool
[23:07] <james_w> I'll package them up tomorrow, then integrate them with our app
[23:07] <lifeless> sweet
[23:07] <james_w> it's two lines to turn on oopses for celery now, and similar for wsgi
[23:07] <james_w> all that's missing is timeline-django, but as I said that's not important for us currently
[23:09] <lifeless> james_w: dictconfig is interesting
[23:10] <lifeless> james_w: perhaps each publisher should accept that instead of having a central clearing house
[23:10] <james_w> inspired by recent logging changes
[23:10] <james_w> lifeless, that might be a good compromise
[23:10] <lifeless> your .testr.conf is old-skool
[23:10] <lifeless> [DEFAULT]
[23:10] <lifeless> test_command=${PYTHON:-python} -m subunit.run $LISTOPT $IDOPTION testrepository.tests.test_suite
[23:11] <lifeless> test_id_option=--load-list $IDFILE
[23:11] <lifeless> test_list_option=--list
[23:11] <lifeless> the id option and list option will let you use --parallel
[23:11] <lifeless> and let it detect deleted tests a little more reliably
[23:12] <james_w> ok
[23:12] <james_w> it's the same one I've been copying around since testr started I think :-)
[23:12] <james_w> there should perhaps be a "testr make-config" or something
[23:20] <lifeless> so yeah, I think if we had some factory style hook
[23:20] <lifeless> we could accept a dict in the core and have each publisher implement its own dict->instance logic
[23:21] <lifeless> the constraints are that the core must not know a-priori about the available publishers (at least at the level of not needing python or packaging dependencies on them)