[00:09] <barry> mthaddon: i think i will ping the losas tomorrow to help with the mailing list archive regen.  hope the rollout goes smoothly!
[00:10] <spm> barry: rollout is now done, and wasn't smooth :-)
[00:10] <barry> spm: oh noes
[00:10] <barry> spm: would you like to try converting one mailing list archive with me then?
[00:11] <jml> spm, /topic or it didn't happen :)
[00:12] <spm> jml: don't tempt me to make it not happen :-)
[00:12] <jml> haha
[00:12] <barry> spm: can you make it unhappen?
[00:12] <jml> "launchpad unreleased, uptime was ten minutes. have a nice day"
[00:13] <Shane_Fagan> jml: Its still giving me out http://paste.ubuntu.com/225202/ any ideas?
[00:13] <spm> barry: technically we did :-(
[00:13] <barry> jml: that should read: downtime was negative 10 minutes.  i think einstein proved negative downtime is equivalent to positive uptime
[00:13] <barry> spm: :(
[00:14] <jml> Shane_Fagan, 'sudo make install'
[00:14] <barry> leonardr: bug 387487.  i'm going to uninvalidate it because this is exactly my problem
[00:14] <ubot3> Malone bug 387487 in lazr.restful "Allow a subordinate entry resource under a resource where there would normally be a field" [Undecided,Invalid] https://launchpad.net/bugs/387487
[00:14] <mwhudson> um
[00:14] <mwhudson> openid doesn't seem very happy
[00:14] <mwhudson> spm: OpenID discovery error: HTTP Response status from identity URL host is not 200. Got status 404
[00:15] <spm> bleh
[00:15] <mwhudson> https://login.launchpad.net/ is, indeed, 404in
[00:15] <mwhudson> g
[00:15] <spm> !!!
[00:17] <Shane_Fagan> sudo make install what?
[00:18] <jml> Shane_Fagan, in the Launchpad tree (~/launchpad//lp-branches/devel by default, I think), run 'sudo make install' on the command line.
[00:19] <Shane_Fagan> Nope still didnt work and that folder is empty
[00:19] <jml> hmm.
[00:20] <Shane_Fagan> I think the prob is that launchpad went into read only mode when I was branching the first time and then bzr seg faulted
[00:20] <jml> Shane_Fagan, I need more context for the error message.
[00:20] <jml> Shane_Fagan, that's quite likely.
[00:20] <Shane_Fagan> So this is the second time I tried it
[00:21] <wgrant> pkern: You just need to add an ArchivePermission to add an uploader - there's even a webservice API to do it.
[00:22] <Shane_Fagan> Give me a sec and ill pastebin the whole lot
[00:22] <jml> Shane_Fagan, thanks.
[00:22] <Shane_Fagan> jml: http://paste.ubuntu.com/225231/
[00:23] <jml> ahh, I see.
[00:24] <jml> Shane_Fagan, so this was from your second attempt, right?
[00:24] <Shane_Fagan> Yep
[00:24] <Shane_Fagan> And it got past it the first time
[00:24] <jml> Shane_Fagan, that makes sense.
[00:24] <jml> Shane_Fagan, the underlying bug is that rocketfuel-setup is pretty bad at recovery...
[00:24] <Shane_Fagan> Ah
[00:25] <jml> http://paste.ubuntu.com/225243/
[00:25] <jml> Shane_Fagan, that's the snippet from rocketfuel-setup
[00:25] <jml> you see line 12?
[00:26] <jml> Shane_Fagan, because 'devel/' exists,  the script assumes you've got a full branch of Launchpad
[00:26] <Shane_Fagan> Ah so can I remove it ?
[00:26] <jml> Shane_Fagan, yeah, just the devel/ directory
[00:26] <jml> Shane_Fagan, then try running the script again. it just might work.
[00:26] <Shane_Fagan> Ill remove lp-branches too
[00:27] <jml> Shane_Fagan, if you'd like, you probably don't have to though
[00:27] <jml> and you might save some time by not removing it.
[00:27] <Shane_Fagan> Ah that worked
[00:28] <jml> Shane_Fagan, glad to hear it.
[00:28] <Shane_Fagan> Maybe we can fix the rocketfuel-setup to be a little more flexible
[00:29] <jml> Shane_Fagan, that would be wonderful.
[00:29] <jml> Shane_Fagan, I can help you get a patch ready, if you'd like
[00:29] <Shane_Fagan> Well first I want to hack something up for apturl because I want that for answers
[00:29] <jml> *nod*
[00:30]  * Shane_Fagan loves apturl
[00:30] <jml> I've got to head afk for a bit now.
[00:30] <Shane_Fagan> Sure thanks for the help
[00:30] <jml> no worries.
[00:31] <jml> Shane_Fagan, I look forward to seeing your apturl patch. there are a few Canonical Launchpad devs around for the next few hours, so just ask if you need a hand.
[00:31]  * jml afk
[00:34] <thumper> sinzui: still around per chance?
[00:36] <thumper> jml, mwhudson: do either of you know of a documentation place in the new lp tree for general doctests?  Especially general pagetests?
[00:36] <thumper> I'm wanting to put some readable docs about the ++oops++ stuff
[00:37] <mwhudson> thumper: i guess all that stuff is still in canonical/launchpad
[00:38] <thumper> mwhudson: hmm...
[00:38] <thumper> mwhudson: that is where I have it now
[00:38] <thumper> mwhudson: I'd love to get it moved
[00:38] <mwhudson> thumper: canonical/launchpad/webapp doesn't have a new home yet
[00:38] <mwhudson> afaik
[00:38] <thumper> mwhudson: perhaps the build engineer has some work to do :)
[00:38] <mwhudson> it belongs with that code really i guess
[00:38] <mwhudson> heh
[00:56] <thumper> oh FFS
[00:56] <thumper> why are our  pagetests so sucky
[00:56] <lifeless> because they are doctests?
[00:57] <gmb> because doing integration tests with sample data is a really bad idea?
[00:58] <sinzui> because they test the wrong thing
[00:58] <jml> thumper: I have some ideas about the OOPS stuff
[00:58] <thumper> d) all of the above!
[00:58] <thumper> jml: I've got it sorted now
[00:58] <gmb> thumper: Common denominator: Because.
[00:58] <jml> but I have to go, because my flatmate's student has turned up 50 mins early!
[00:58]  * jml relocating
[00:59] <sinzui> Changing page layouts /could/ break lots of tests. I propose we replace them instead of fix them
[00:59] <lifeless> sinzui: hey
[00:59] <sinzui> hi lifeless
[00:59] <lifeless> sinzui: I would like to see bugs and blueprints be less different
[00:59] <lifeless> sinzui: as in, I love bugs, but hate blueprints :)
[00:59] <sinzui> lifeless: issue type?
[00:59]  * sinzui feels the same
[01:00] <gmb> sinzui: I agree, by and large, in a "it's one in the morning what the hell am I doing in #launchpad-dev" kind of way.
[01:00] <gmb> (about the tests, that is)
[01:00]  * gmb heads to bed.
[01:00] <Ursinha> good night gmb
[01:00] <lifeless> sinzui: I'd like to be able to say to a bug, 'depends on other bug'
[01:01] <lifeless> and, 'I think this is a 5 hour problem'
[01:01] <lifeless> and finally, get reports with that data
[01:01] <thumper> lifeless: +1 on those
[01:01] <lifeless> but thats all - the approval process stuff and so on isn't something we use in any of the projects I contribute to
[01:01] <thumper> anyone know BeautifulSoup well?
[01:02] <thumper> I want the second last html comment in the body
[01:02] <sinzui> thumper: http://www.crummy.com/software/BeautifulSoup/documentation.html
[01:02] <thumper> sinzui: thanks
[01:04] <sinzui> lifeless: I don't hack on bugs, I sometimes hack on blueprints on my own time. I l want better dependency handling on both apps. I want  to qualify the dependency as essential, expected, or optional
[01:05] <lifeless> I'd actually like blueprints to fade away, into a cleaner single app. But I know that isn't a universal viewpoint
[01:05] <lifeless> hmm, why do you need a type on the dependency?
[01:06] <sinzui> lifeless: I suggested that on more than one occasion. I was that was not likely to ever happen and that I should instead focus on common behaviour
[01:07] <sinzui> lifeless: When I plan a big project, I want to say features  100% implemented. We cannot say that about our specs, not even if we break them into atomic parts because the dependency is absolute
[01:08]  * thumper is almost finished with the oops on demand branch
[01:08] <sinzui> lifeless: Many stories depend on common features (other stories), but the feature might be essential one and optional in another
[01:09] <lifeless> sinzui: if its optional in the other, is it really a dep?
[01:09] <lifeless> sinzui: I don't object to an optional type flag
[01:09] <sinzui> I want a library of ideas that I can define features from using better dependancies
[01:09] <lifeless> I just don't really get it :)
[01:11] <sinzui> lifeless: I was toying with the idea of showing bugs linked by blueprint in an alternate view of the milestone page...I expect to have a week off next month
[01:12]  * thumper afk for a while
[01:12] <lifeless> sinzui: that would be interesting. It still causes duplication though, which is my major objection to blueprints
[01:13] <sinzui> yes. I really want to solve that. I really don't want 4.0 stories to be all in a wiki, but I cannot bring myself to use blueprints
[01:13] <lifeless> yup
[01:13] <lifeless> and I don't believe its a matter of polish
[01:23] <jml> back
[01:25] <Shane_Fagan> So any canonical devs around I just have to ask a question
[01:25] <jml> always just ask :)
[01:25] <jml> questions are free :)
[01:26] <Shane_Fagan> Oh ok I thought I should ask first
[01:26] <Shane_Fagan> Ok so I want to handle apt:// just like the way http:// is handled so where should I be looking?
[01:27] <lifeless> where do you want to handle apt://
[01:27] <Shane_Fagan> answers
[01:27] <Shane_Fagan> apturl would be a lot easier than going go sudo apt-get install package
[01:29] <Shane_Fagan> Because then it takes the scary command line away from new users
[01:29] <lifeless> do you mean "I want text typed into answers with apt:// urls to get rendered as <a href="...">, like happens for http://"?
[01:30] <Shane_Fagan> Yep
[01:30] <Shane_Fagan> Thats exactly what I mean
[01:31] <wgrant> It uses fmt:email-to-html.
[01:31]  * wgrant finds that.
[01:31] <jml> ooh, I changed this code quite recently
[01:32] <jml> canonical.launchpad.webapp.tales.FormattersAPI.text_to_html and above.
[01:33] <wgrant> That's a nice regex.
[01:34] <jml> Shane_Fagan, tests are in lib/canonical/launchpad/doc/displaying-paragraphs-of-text.txt
[01:34] <Shane_Fagan> Oh good
[01:35] <jml> './bin/test -cvvt displaying-paragraphs-of-text.txt' will run the tests
[01:35]  * jml puts on his best Captain Planet voice,
[01:35] <jml> "The power is yours!"
[01:36] <Shane_Fagan> Good, its a feature I really want
[01:41] <Shane_Fagan> jml: do you think it would be useful?
[01:42]  * wgrant does.
[01:42] <jml> Shane_Fagan, I reckon so.
[01:42] <Shane_Fagan> Its something I complained a lot about myself because I couldnt see why it wasnt used
[01:44] <Shane_Fagan> But I suppose ye have a lot better things to be hacking
[01:44] <jml> subjectively better, perhaps.
[01:44] <Shane_Fagan> So anyway ill go and make it. Oh and congrats on the open sourcing
[01:45] <jml> Shane_Fagan, thanks :)
[01:48] <wgrant> sinzui: There seems to be a bug in your bug closing script - you apparently just released Launchpad sinzui, not Launchpad 2.2.7.
[01:52] <sinzui> wgrant: your are correct. I will look into it
[02:08] <wgrant> The test suite makes my laptop unhappy :(
[02:09] <mwhudson> the test suite makes everything unhappy
[02:09] <mwhudson> but laptops particularly, yes
[02:09] <jml> wgrant, unhappy how? select at least two from: morbid, maudlin, melancholic, stressed, depressed, upset, troubled, vexed
[02:10] <lifeless> using ec2test
[02:10] <wgrant> jml: All of the above.
[02:10]  * wgrant likes the look of the 3.0 project page.
[02:10] <wgrant> Interestingly, it seems to be returning to the 1.0 project group page style
[02:11] <mwhudson> lifeless: we haven't granted non-canonicalers access to the ec2test image yet aiui, and it currently still requires access to devpad aiui
[02:11] <mwhudson> i guess this should all change...
[02:12] <lifeless> well, all the code to create an image is out there, isn't it? :)
[02:12] <mwhudson> uh, i _guess_ ...
[02:12] <wgrant> We also don't have the code.
[02:12] <lifeless> hell, bzr's ec2test uses stock images
[02:13] <lifeless> wgrant: you don't?
[02:13] <jml> lifeless, bzr has fewer dependencies and requires less system configuration
[02:13] <lifeless> :P
[02:13] <lifeless> letse play spot the troll
[02:13] <jml> lifeless, `but I agree, it's probably possible to make an ec2test.py replacement with currently public code.
[02:13] <lifeless> <- the troll
[02:14] <wgrant> lifeless: The ec2test stuff is in lp-dev-utils, which is still in the proprietary realm.
[02:14] <lifeless> ah
[02:15]  * mwhudson stares at buildbot's estimate for the end of this build
[02:16] <wgrant> buildbot is also still private :(
[02:17] <mwhudson> i don't know if there are any good reasons for that
[02:18]  * wgrant wonders what is so special about the tests in lp.bugs.browser.tests.special
[02:18] <mwhudson> jml: i don't completely understand your email about soyuz permissions
[02:18] <mwhudson> (surprise!)
[02:19] <jml> mwhudson, me neither.
[02:19] <jml> mwhudson, how /what can I clarify it?
[02:19] <mwhudson> in particular i don't understand how latest_published helps get a sensible archive
[02:20] <mwhudson> my understanding is that the archives are: primary, partner and a bunch of ppas
[02:20] <mwhudson> (is an archive tied to a distro?)
[02:20] <mwhudson> and primary has a bunch of components (main, universe, etc)
[02:21] <mwhudson> (ppas sort of pretend everything is in main?)
[02:21] <wgrant> PPAs override everything to main.
[02:21] <wgrant> partner only has stuff in parter.
[02:21] <wgrant> primary can have stuff in anything.
[02:22] <mwhudson> wgrant: partner is a component as well as an archive?
[02:22] <wgrant> mwhudson: Yes. It's very broken.
[02:22] <mwhudson> man, the crack must have been good in 2004
[02:22] <jml> mwhudson, an Archive has a Distribution
[02:22] <wgrant> Partner is a new thing.
[02:22] <mwhudson> true
[02:22] <mwhudson> well
[02:22] <mwhudson> new, as in 3 years or so, right?
[02:22] <wgrant> Two or three years, yes.
[02:22] <jml> mwhudson, a Distribution also refers to a main_archive, so assume it's one Distribution to many Archives.
[02:22] <Shane_Fagan> What version of postgres do you need?
[02:23] <jml> Shane_Fagan, 8.3
[02:23] <jml> mwhudson, a publication has a component and an archive
[02:23] <jml> mwhudson, whether the archive is sensible for these purposes is beyond my ability to judge.
[02:23] <mwhudson> jml: if i ask something about pockets, will i regret it?
[02:24] <wgrant> bigjools suggested last night that it wasn't sensible, IIRC.
[02:24] <jml> mwhudson, oh crap, I knew I forgot something.
[02:24] <mwhudson> jml: it seems to _me_ (and what do i know?) that for an official source package branch, the archive you care about is the primary archive
[02:25] <jml> wgrant, I derived from:
 add a new property to it, latest_published (trivial, just return self._getFirstPublishingHistory
[02:25] <jml>  then you have in your hands a component and an archive
[02:25] <mwhudson> jml: and on the face of it, i don't see why latest_published might not refer to a ppa
[02:26] <jml> mwhudson, in my relative ignorance, I'm inclined to agree with you.
[02:26] <mwhudson> bug 347768
[02:26] <ubot3> Malone bug 347768 in launchpad-code "Allow anyone with upload rights to write to a package branch" [High,In progress] https://launchpad.net/bugs/347768
[02:26] <wgrant> mwhudson: Because they'll be excluded.
[02:26]  * jml has only had a chance so far to ask the question and type up the summary.
[02:26]  * mwhudson reads
[02:26] <wgrant> It's already done in lots of places already.
[02:28] <wgrant> ISourcePackage.latest_publishing would use ISourcePackage._getFirstPublishingHistory, which only gets it from the distro's official archives. No PPAs.
[02:30]  * mwhudson chases things around a big
[02:30] <mwhudson> bit
[02:32] <mwhudson> wgrant: i see you are right
[02:33] <mwhudson> but ehhh
[02:33] <wgrant> It's all a bit strange.
[02:33] <jml> I really think that verify_acl should be turned into a function that takes a person ('signer'), an archive and a sourcepackage.
[02:33] <wgrant> jml: Pocket!
[02:33] <jml> wgrant, it doesn't use pocket right now.
[02:34] <mwhudson> isn't there something about the release pocket being read only after, well, the release?
[02:34] <mwhudson> or is that done at a different level?
[02:35] <jml> UploadPolicy.checkUpload, apparently
[02:39] <mwhudson> i wonder if there's a way to kick off a build of the bzr builder without waiting for 22.5 hours
[03:05] <jml> cprov, hi
[03:05] <cprov> jml: hi, give me one minute, I need coffee.
[03:05] <jml> cprov, np
[03:05] <jml> http://paste.ubuntu.com/225594/ -- diff against db-stable
[03:06] <jml> but that's got a dependent branch
[03:06] <jml> I'll split the diff up.
[03:06] <wgrant> ICanHasLinkedBranch. Nicely done.
[03:07] <cprov> jml: k
[03:07] <jml> wgrant, :D
[03:08] <mwhudson> wgrant: there is also IHasLinkedBranch, which is _entirely_ different
[03:08] <jml> http://paste.ubuntu.com/225599/ -- that's the new branch, official
[03:08] <jml> mwhudson, yeah, we need to fix that.
[03:09] <cprov> jml: right, you already have 'suite_sourcepackage' which is SP (SPN + DS) + Pocket
[03:09] <jml> http://paste.ubuntu.com/225601/ -- that's the ubuntu-packages branch, which makes lp:ubuntu/package work.
[03:09] <jml> cprov, yes.
[03:10] <jml> cprov, I want two things:
[03:10] <cprov> jml: for upload ACL purposes we theoretically also need IArchive
[03:10] <jml> a function from (suite_sourcepackage, person) -> boolean, "can this person upload"
[03:10] <jml> and a way of granting a person upload permissions, to be used in the tests
[03:11] <jml> I think the second is much more straightforward than the first
[03:13] <jml> cprov, so where do we get the archive from?
[03:13] <cprov> jml: okay, having a SomenthingMeaningful.canUpload(person) available is more valuable for testing and doesn't exclude the possibility of it bound to the lp.Append permission on the object later, for UI purposes.
[03:13] <jml> +1
[03:15] <cprov> jml: as mwhudson pointed we can safely assume PRIMARY (distribution.main_archive) for all DSP not published in the 'partner' component.
[03:15] <jml> ok.
[03:15] <cprov> jml: it's never overridden.
[03:16] <cprov> jml: I don't see this assumption making ppa-package-branches any harder to implement in the future. Do you ?
[03:17]  * jml has less than 20 minutes of battery life left
[03:18] <jml> cprov, I don't.
[03:19] <cprov> jml: once you have an suitable archive available (or assumed) you can figure out the current component (archive.getPublishedSources(spn, series)[0].component ... please make it elegant :))
[03:20] <jml> cprov, so, I'm really very strongly thinking of refactoring verify_acl into a function that takes archive, a person (signer), and a SuiteSourcePackage.
[03:20] <jml> cprov, and raises exceptions instead of calling reject()
[03:20] <jml> cprov, would this be appropriate to use (probably together with some checkUpload() equiv.)
[03:20] <jml> for package branch permissions.
[03:21]  * jml has less than 10 minutes of battery life left
[03:22] <cprov> jml: we can to that, but it's very likely that it will be something else than the current spread checks.
[03:22] <jml> why would it be different?
[03:22] <cprov> jml: in a way we would port nascentupload to use this new thing too
[03:22] <jml> cprov, right.
[03:23] <jml> cprov, it would be making verify_acl call a function that embodies all the logic of 'can this person upload to this pocket of this package in this archive'
[03:23] <cprov> jml: right
[03:23] <jml> I'm kind of surprised you don't have a function like this already, tbh.
[03:24] <jml> cprov, anyway, if you think that's a good idea, I'll make it happen.
[03:24] <cprov> it's definitely a good idea and you can count on our help.
[03:24] <jml> cool.
[03:24] <jml> I'm going to move to a power point. back in 10
[03:27] <wgrant> It would be useful to have on the dev wiki a list of who is in which team, and in which timezone they reside.
[03:30] <mwhudson> cprov: soyuz, sleep is for the weak standard time
[03:32] <cprov> mwhudson: I confess sleeping is more tempting at home, but not that much ;)
[03:33] <jml> back.
[03:36] <jml> let's try that again.
[03:37] <jml> cprov, are there any tests for verify_acl?
[03:38] <cprov> jml: yes, blackbox-style, though
[03:39] <cprov> jml: lib/lp/archiveuploader/tests/test_uploadprocessor.py
[03:39] <jml> thanks.
[03:40] <cprov> jml: one of the advantages of extracting and encapsulating that code would be allowing us to have quick and beauty unittests
[03:40] <jml> yes, I was just thinking thta.
[03:40] <jml> this is big enough for another branch, I think.
[03:42]  * cprov nods
[03:55] <mwhudson> jml: can i get you to review a branch?
[03:55] <mwhudson> i'm not quite sure if i've got enough tests, but i guess you can tell me that when you review it :)
[03:56] <jml> mwhudson, sure thing.
[04:00] <mwhudson> jml: https://code.launchpad.net/~mwhudson/launchpad/puller-job-scheduling/+merge/9174, you should have mail
[04:02]  * wgrant has today developed a particularly strong dislike for tests that rely on dict ordering.
[04:03] <thumper> OMG!
[04:04] <thumper> we're getting a sysadmin guy in Wellington
[04:04] <thumper> spm: You'll have someone to hit up locally now :)
[04:04] <ajmitch> oh fun, more kiwis
[04:05] <jml> wgrant, you haven't found them in Launchpad, I hope.
[04:05] <lifeless> \o/
[04:05] <lifeless> thumper: who is it/
[04:06] <thumper> lifeless: Paul Collins, starting 10 Aug
[04:06] <lifeless> excellent name :)
[04:06] <mwhudson> thumper: heh, you take longer to get through your email than me
[04:06] <wgrant> jml: I have. It's not directly printing a dict, but rather generating a list of bug notification emails based on dict order.
[04:06] <jml> :(
[04:06] <spm> thumper: aye
[04:06] <thumper> mwhudson: :)
[04:07] <jml> wgrant, I'll gladly review a patch to fix that.
[04:07] <spiv> wgrant: any chance of a patch to fix it? :)
[04:07] <wgrant> I attempted to change the dict keys (previously strings) to Storm objects, and they hash differently each time...
[04:07]  * wgrant will attempt to fix this.
[04:07] <lifeless> wgrant: compare two dicts
[04:07] <wgrant> But it's a very very long doctest.
[04:07] <lifeless> wgrant: or use sorted() on both sides
[04:07] <wgrant> lifeless: Right, I plan to use sorted.
[04:08] <wgrant> Then I have to reorder a thousand lines of doctest.
[04:08] <lifeless> welcome to doctest
[04:08] <lifeless> have I told you what I think of them?
[04:08] <mwhudson> wgrant: you are aware of the "shame" motivation for not open sourcing, i presume? :)
[04:08] <wgrant> I think I saw you complaining about them in here recently.
[04:08] <wgrant> mwhudson: Heh.
[04:09] <lifeless> wgrant: oh, I don't complain, unless I'm forced to touch em.
[04:09] <wgrant> Some of the Soyuz doctests were good explanations.
[04:09] <spiv> Heh.
[04:09] <wgrant> But bugnotification-sending.txt is ... not.
[04:13] <jml> we do have a helper for testing dicts in doctests
[04:13] <jml> I think
[04:13] <jml> I've forgotten what it's called.
[04:14] <ajmitch> it's not that helpful then?
[04:14] <wgrant> It's not a dict when the doctest gets hold of it.
[04:14] <wgrant> That would be too easy.
[04:14] <wgrant> It's a list of strings which happens to have been created by iterating through a dict.
[04:14] <mwhudson> wgrant: lib/lp/code/doc/branch.txt is particularly terrible
[04:15] <ajmitch> wgrant: this is the part about email_notifications in there?
[04:16] <wgrant> ajmitch: There's a lot more than one of those, but yes.
[04:17] <jml> ajmitch, I don't write many doctests.
[04:19] <thumper> mwhudson: are you suggesting wgrant cleans up our crappy tests?
[04:20] <mwhudson> not really
[04:21]  * jml back to package-permission-love
[04:22] <jml> cprov, any thoughts on which module this code should live in?
[04:22] <ajmitch> it's interesting that https://code.edge.launchpad.net/~launchpad-pqm/launchpad/devel disappears from the default view as it's set as merged now
[04:23] <jml> ajmitch, oh, that's easy enough to fix
[04:23]  * jml fixes
[04:23] <thumper> grr
[04:23] <ajmitch> which sort of makes sense, but I was briefly wondering why it disappeared  :)
[04:23] <thumper> jml: can you create a devel series for launchpad?
[04:23] <jml> thumper, I think so.
[04:23] <thumper> jml: I looked but couldn't figure out how
[04:24] <thumper> that way lp:launchpad/devel will work
[04:24] <thumper> ajmitch: it is the branch scanner being clever :)
[04:24] <thumper> ajmitch: it doesn't update series branches
[04:25] <cprov> jml: I guess archiveuploader is the right place.
[04:25] <jml> cprov, thanks.
[04:25] <jml> thumper, https://edge.launchpad.net/launchpad/devel
[04:26] <thumper> jml: just out of interest, where is the link to create a new series?
[04:26] <jml> thumper, https://edge.launchpad.net/launchpad "Register a series"
[04:27] <thumper> also I noticed that konqueror formats code review comments like FF3.5, with a non-wrapping proportional font
[04:31] <jml> which python has class decorators?
[04:31] <wgrant> 2.6?
[04:31]  * jml tests
[04:31] <mwhudson> spm: a question
[04:32] <spm> mwhudson: an answer
[04:32] <jml> yeah 2.6
[04:32] <mwhudson> spm: i'd like to produce some data inside the internal xmlrpc server that i'd like to end up on a graph
[04:32] <spm> mwhudson: 42
[04:32] <mwhudson> spm: any idea how to do that?
[04:32] <spm> mwhudson: sure - point us at a way of getting the numbers, or numberise?
[04:33] <mwhudson> spm: of course, i should simply dump the data into our separate-from-main-database *cough*
[04:33] <mwhudson> spm: i'm thinking more where to store the data
[04:33] <spm> oh
[04:33] <spm> is this something we'd ping on a regular basis?
[04:34] <mwhudson> mmf maybe it can wait until we use the job system properly, then we can pull it from the database
[04:34]  * jml is curious
[04:34] <mwhudson> spm: to be specific
[04:34] <mwhudson> spm: there's this method, acquireBranchToPull, that returns a branch that's waiting to be pulled
[04:35] <mwhudson> spm: i'd like to log somewhere how long it's been waiting
[04:35] <mwhudson> right now there's not really anywhere in the db to log this
[04:36] <spm> mwhudson: hmmm
[04:36] <mwhudson> i think using a BranchJob probably really is the right answer
[04:36] <mwhudson> jml: is this making sense to you?
[04:36] <spm> is this logged anywhere? request/start/fin times?
[04:36] <jml> mwhudson, yeah.
[04:37] <mwhudson> spm: currently, no
[04:37] <jml> mwhudson, 'how long it's been waiting for' is interesting, but it's not ultimately the value we'd like to optimize.
[04:37] <mwhudson> jml: which is what?  how long from request until completion?
[04:38] <jml> mwhudson, for hosted branches, it's how long from push finished until pulled&scanned.
[04:38] <mwhudson> jml: that's less under our control though
[04:38] <mwhudson> jml: for example, jelmer's open office branch was always going to take ages
[04:39] <mwhudson> jml: from my pov as an integrator, i think all i can do is squeeze on the time spent not working
[04:40] <jml> mwhudson, well, I don't mean to say it's either / or.
[04:40] <mwhudson> jml: ok
[04:45] <spm> jml: to throw the question back at you - if you know that inro (push fin'ed to pull/scan) what action(s) would you expect to take given that info?
[04:45] <spm> s/inro/info/
[04:46] <jml> spm: if that were all the information I had, I'd ask for more numbers :)
[04:46] <spm> jml: heh
[04:47] <jml> spm: but it is the number that we ultimately care about
[04:47] <spm> is a serious question tho - the difference between reporting vs analysis. the numbers are useless in and of themselves in a report. it's the actions those numbers drive that matters. Else it's so much "Gee Whiz"
[04:48] <jml> spm: in this case, because there are so many parts to the system, and because the design for quite a few of those parts is changing, it makes sense to have an overall thing that measures what we value
[04:48] <spm> certainly. so we can? add more servers? speed up the code?
[04:48] <jml> spm: we know the problem fairly well, so we are unlikely to do a local optimization that causes a global sub-optimization, but it's still worth being careful of it
[04:48] <spm> both :-D
[04:49] <mwhudson> spm: a particular knob to tune is how many branches we pull in parallel
[04:49] <jml> spm: see the impact of bzr upgrades, see the impact of branches moving to a new format, see how database changes affect the scanner etc.
[04:50] <spm> coolio. I wasn't objecting btw, just asking in a way to help drive a foxus on what you *really* need, vs want. if you ken. :-)
[04:50] <thumper> damn firebug!
[04:50] <jml> spm: I understand.
[04:50] <spm> foxus. sigh. focus :-)
[04:50] <thumper> it lies!
[04:50] <jml> spm: I've been wanting to do it for a very long time :)
[04:50] <thumper> firebug tells me it is using white-space: pre-wrap
[04:50] <thumper> but konq view source tells me no
[04:50] <thumper> (and the source code itself)
[04:51] <spm> thumper: "computer say no"?
[04:51] <jml> spm: the principle I'm working from is "measure what we value".
[04:54] <spm> jml: for sure! I try and hit things like that with the "So What?" question. This value goes up. So what? What do we do differently? Goes down? same. Is *great* for alerts. We get an alert on codebrowse for example - do we ignore or do an action. if we ignore, why have the alert in the first place.
[04:55] <jml> right :)
[04:57] <spm> so back to the original. if we want to know how many branches to pull in ||, can we get that closer to the branchscanner itself? proxy it via load? type of thing.
[04:57] <spm> would throughput of all branches scanned be better? vs time/delay?
[04:58] <spm> or just buy honking 64 core boxes with PT's of ram and bugger it all :-P
[04:59] <mwhudson> argh
[04:59] <mwhudson> we seem to have two interfaces called IBranchPuller :(
[04:59] <jml> mwhudson, sorry
[04:59] <jml> mwhudson, that's my fault.
[04:59] <mwhudson> oh well
[05:00] <jml> spm: I don't understand "get that closer to the scanner"
[05:01] <spm> jml: heh. sure. what I meant was, is it better to look down in the weeds - at a single process (vs daemon) vs the holistic start to finsih.
[05:01] <jml> spm: we want to combine the puller and the scanner, to reduce the amount of dead time.
[05:01] <spm> right
[05:01] <jml> spm: we ought to do both!
[05:01] <jml> spm: we know we are done when the overall number is sufficiently low.
[05:02] <spm> soudns fair to me - cause that way you'll know if holistic is better throughput etc; and detail is more efficient.
[05:02] <jml> (of course almost everywhere we're saying 'number' here, we mean 'distribution')
[05:02] <spm> :-)
[05:03] <spm> so... have a start of holistic timestamp logged in a table; end of same; and maybe reuse same table(s) (normalised) to get the detail for individual jobs?
[05:03] <spm> the branch scan took X-Y seconds; the entire start to finish request took A-B seconds?
[05:03] <mwhudson> the main problem with the scanner is the fucking branchrevision table
[05:04] <jml> yeah, something like that
[05:04] <spm> the former would be useful for code performance improvement feedback
[05:04] <mwhudson> unfortunately, we need to do design to fix this :(
[05:04] <spm> mwhudson: nah. we're open source now. a solution will magically arrive for us :-P
[05:04] <mwhudson> spm: hah
[05:05] <jml> spm: you've seen https://dev.launchpad.net/Code?action=AttachFile&do=view&target=codehosting.png right?
[05:05] <spm> jml: verra briefly, yes. it didn't seem complicated enough tho
[05:06] <jml> :)
[05:06] <jml> spm: I left out the Cthulhu's
[05:06] <spm> for shame
[05:07] <jml> (ever since then I've been cursed with superfluous apostrophe's)
[05:07] <spm> doesn't lh talk direct to xmlrpc?
[05:07] <jml> spm: http://paste.ubuntu.com/225869/
[05:07] <wgrant> Nyargh.
[05:07] <mwhudson> spm: yes
[05:07] <mwhudson> spm: apache does too
[05:07] <wgrant> Can I get doctest to avoid doing its diffing thing and just give me the raw output, or do I have to run the test manually myself?
[05:07] <mwhudson> well, for the moment
[05:07] <spm> mwhudson: :-)
[05:07] <mwhudson> soon it will talk to the db
[05:07] <spm> mwhudson: apache?
[05:08] <mwhudson> spm: branch-rewrite.py
[05:08] <mwhudson> spm: it's almost apache
[05:08] <spm> ah
[05:08] <jml> I have the svg if you'd like to update it.
[05:08] <jml> wgrant, that, I don't know.
[05:09] <wgrant> Because it makes an awful mess of the diff.
[05:09] <jml> wgrant, the version of zope.testrunner we use is a little obsure.
[05:13] <lifeless> !
[05:13] <lifeless> stop trolling for understatement of the day award
[05:16] <wgrant> Oh.
[05:16] <wgrant> '...' doesn't match '<BLANKLINE>'
[05:16] <wgrant> It would seem.
[05:16] <thumper> wgrant: well, it depends
[05:18] <wgrant> That would have been quick to work out if it hadn't been intelligent and tried to make a minimal diff.
[05:22]  * jml gets up to pay more rent on the table.
[05:24] <jml> gah signing
[05:29] <thumper> jml: coffee?
[05:29] <jml> thumper, red bull, actually.
[05:30] <thumper> heh
[05:35] <thumper> how do I request a QA review for browser compatibility?
[05:35] <mwhudson> i see ursula's connection gave up at an appropriate time :)
[05:39] <jml> haha
[05:42] <cprov> g'night, guys.
[05:44] <wgrant> I need to make a change to the test sampledata. Can I just patch current.sql directly, without having to create a patch?
[05:44] <mwhudson> wgrant: yes, in fact you certainly shouldn't create a patch
[05:44] <mwhudson> (as patches get applied to prod)
[05:55] <BjornT_> wgrant: you also shouldn't patch current.sql manually. you should do the changes using the web ui, or some other api, and then run 'make newsampledata'
[05:57] <wgrant> BjornT_: I would normally (after reading the README), but this was just changing a false to a true.
[05:57] <wgrant> Or is there another reason?
[05:58] <mwhudson> spm: got a few minutes?
[06:01] <thumper> jml: is bug 390563 fixed for us now?
[06:01] <ubot3> Malone bug 390563 in bzr "absent factory exception from smart server when streaming 2a stacked branches" [Critical,In progress] https://launchpad.net/bugs/390563
[06:01] <BjornT_> wgrant: sometimes changing one value requires changing other values as well (think of the case where the attribute is a property and does some more than just setting the attribute to True). therefore it's a good policy to always use make newsampledata, so that you don't risk creating inconsistent data
[06:02] <wgrant> BjornT_: OK, thanks.
[06:02] <jml> thumper, don't know, sorry.
[06:05] <lifeless> thumper: its as fixed as it was before
[06:05] <lifeless> thumper: which is, there is a bandaid in bzr, and you've deployed the bandaid. Theres a larger fix coming, but you shouldn't need it as it covers edge cases only.
[06:05] <lifeless> thumper: that bug *is not the one to do with bundles*
[06:06] <lifeless> I've just retitled it to make it clearer
[06:06] <lifeless> https://bugs.edge.launchpad.net/bzr/+bug/390563
[06:06] <ubot3> Malone bug 390563 in bzr "absent factory exception from smart server when streaming 2a stacked branches" [Critical,In progress]
[06:06] <lifeless> https://bugs.edge.launchpad.net/bzr/+bug/390563
[06:07] <lifeless> https://bugs.edge.launchpad.net/bzr/+bug/390563
[06:07] <lifeless> cmon ubot3
[06:07] <lifeless> https://bugs.edge.launchpad.net/bzr/+bug/390563
[06:07] <spiv> I assume ubot3 tries to spam the same info more than once every few minutes?
[06:07] <lifeless> https://bugs.edge.launchpad.net/bzr/+bug/390563
[06:07] <spiv> tries *not* to, rather...
[06:07] <ubot3> Malone bug 390563 in bzr "absent factory exception from smart server when streaming 2a stacked branches" [Critical,In progress]
[06:07] <lifeless> its also reading from an out of date replica :(
[06:07] <spiv> Looks like about a 60s timeout :)
[06:07] <lifeless> or something
 Malone bug 390563 in bzr "overly large delta creation when fetching from 2a repositories" [Critical,In progress]   :P
[06:08] <lifeless> :)
[06:11] <mwhudson> thumper: branch mail is different!
[06:11] <mwhudson> i guess you knew that
[06:12]  * wgrant pushes a branch.
[06:13] <wgrant> Actually, I should probably run the whole test suite first...
[06:13] <mwhudson> wgrant: i'm sure a launchpad dev will run it through ec2test for you
[06:13] <mwhudson> (until we work out how to get other people able to use it)
[06:14] <wgrant> I'll just run the bugs suite here. It won't take too long.
[06:14] <ajmitch> how much space is required to play around with launchpad on a laptop? I'd rather not delete too much :)
[06:14] <mwhudson> sounds optimistic, but ok :)
[06:14] <wgrant> mwhudson: I ran it before.
[06:14] <wgrant> And I need to have lunch now.
[06:15] <mwhudson> ajmitch: nothing much beyond the space for the source
[06:15] <ajmitch> alright, I can hopefully rsync from my desktop then
[06:15] <ajmitch> & try it out on my hardy laptop, this should be interesting
[06:16] <mwhudson> spm: can you run select count(*) from branchjob, job where job_type = 5 and branchjob.job = job.id group by job.scheduled_start - job.date_created; for me if you get the chance?
[06:19] <mwhudson> spiv: what's the status of network deltas for 2a?
[06:20] <spiv> mwhudson: waiting for review, I think it's ok to merge, but we'll find out what the review says... :)
[06:20] <mwhudson> spiv: cool
[06:21]  * mwhudson EODs
[06:27] <spm> mwhudson: 2 rows. 664 and 186
[06:28] <mwhudson> spm: i guess it would have been more useful to say
[06:28] <mwhudson> select job.scheduled_start - job.date_created, count(*) from branchjob, job where job_type = 5 and branchjob.job = job.id group by job.scheduled_start - job.date_created;
[06:28] <mwhudson> spm:  but good
[06:28] <spm> mwhudson: unknown for the 664, 7 days for 186
[06:29] <mwhudson> huh strange, should be 0 for the 664
[06:29] <mwhudson> select job.scheduled_start, job.date_created from branchjob, job where job_type = 5 and branchjob.job = job.id limit 25;
[06:29] <mwhudson> spm: try that?
[06:30] <spm> weird. start dates are oft null
[06:30] <spm> mwhudson: https://pastebin.canonical.com/20226/
[06:31] <mwhudson> oh right
[06:31] <mwhudson> that actually makes sense
[06:33] <mwhudson> spm: update job set scheduled_start = date_created + '7 days'::interval where job.id in (select job.id from job, branchjob where job.id = branchjob.job and branchjob.job_type = 5) and job.scheduled_start is NULL;
[06:33] <mwhudson> spm: should update 664
[06:33] <spm> mwhudson: errr... in prod?
[06:33] <mwhudson> spm: yes, i should get approval i guess :)
[06:33] <spm> please :-)
[06:33] <mwhudson> or we can just wait a week
[06:34] <mwhudson> anyway, i really need to eod
[06:34] <spm> your call :-)
[06:34] <mwhudson> i'll think about it tomorrow :)
[06:36] <spm> no worries, g'night
[06:38]  * thumper EODs too
[06:38] <thumper> mwhudson: branch email may still need tweaking
[06:39] <thumper> mwhudson: I'm not sure we should show superseded ones
[06:39] <thumper> mwhudson: and perhaps an extra blank line between merge authors and proposals
[06:44] <spm> night thumper
[06:46] <spm> jtv: re that db user translationstobranch - is master only access enough? or do you need the slaves as well?
[06:47] <jtv> spm: slaves as well
[06:47] <spm> kk
[06:47] <jtv> spm: I deliberately used slave stores as a way to limit the risk of accidental rights—but nowadays scripts actually seem to map slave stores to slave dbs.
[06:47] <jtv> may help with scalability too, of course. :)
[06:48] <spm> hell yes - on the latter. the former to for that matter :-)
[06:53] <lifeless> network deltas are something we probably want to cherrypick
[07:03] <wgrant> Does anybody feel like ec2testing a branch for me?
[07:09] <jml> wgrant, sure.
[07:09] <wgrant> jml: lp:~wgrant/launchpad/team-verbose-bugnotifications-bug-253788
[07:09] <jml> wgrant, against devel or db-devel?
[07:10] <wgrant> jml: devel
[07:10] <jml> wgrant, what email address do you want the results sent to?
[07:10] <wgrant> jml: me@williamgrant.id.au
[07:11] <wgrant> How long will it take?
[07:12] <jml> wgrant, 20-30mins until I know the tests are running for certain, then 2-3hrs.
[07:12] <jml> I recently changed the default instance type (it used to take 4.5hrs), but I haven't done any rigorous timings.
[07:14] <wgrant> jml: Great. Thanks.
[07:20] <wgrant> Is it reasonable to create a separate branch for a trivial fix, or should it be thrown in with some other related one?
[07:22] <spm> wgrant: i'd suggest perfectly reasonable - we used to do similar with our configs
[07:25] <thumper> jml: got a contributor agreement?
[07:25] <jml> thumper, I don't need one to run tests, do I?
[07:26] <thumper> no
[07:26] <thumper> just to land it :)
[07:26] <thumper> night all
[07:26] <wgrant> Night thumper.
[07:26] <jml> wgrant, so, if you want to get your patch landed, you have to speak with my manager, thumper, who'll arrange a contributor agreement :P
[07:26] <wgrant> I've signed one for LAZR, but I suppose I need another.
[07:27] <jml> thumper, g'night :)
[07:30] <mwhudson> i don't think the agreements are per-project
[07:30] <mwhudson> might be wrong there
[07:31] <stub> -o, --no_save Do not save shutdown state
[07:31] <stub> jml: What does that mean?
[07:31] <mwhudson> stub: you want -o
[07:31] <mwhudson> though with tac files it probably doesn't make any difference?
[07:31] <wgrant> -y implies -o
[07:31] <wgrant> So you don't need it.
[07:32] <mwhudson> tap files
[07:32] <jml> stub, back when tap files (pickled application objects) were all the rage, twistd used to save the state of the server as a pickle when it finished.
[07:32] <mwhudson> what a good idea they were
[07:32] <lifeless> \\\not///
[07:45] <noodles775> Morning
[07:45] <wgrant> Morning noodles775.
[07:45] <noodles775> Hiya wgrant :)
[07:49] <jml> wgrant, ok, those tests are definitely running
[07:49] <wgrant> jml: Excellent. Thanks.
[07:49] <jml> wgrant, you should get an email later this evening
[07:49] <jml> wgrant, np
[07:49]  * jml is off for the evening
[07:50] <noodles775> wgrant: is that your first branch being tested? :)
[07:50] <noodles775> Night jml
[07:50] <wgrant> noodles775: It is!
[07:50] <noodles775> wgrant: Excellent stuff!
[07:51] <wgrant> The diff is much larger than I expected (due to test changes), but it worked eventually.
[07:51]  * noodles775 looks for the MP
[07:52] <wgrant> No MP yet.
[07:52] <wgrant> https://code.edge.launchpad.net/~wgrant/launchpad/team-verbose-bugnotifications-bug-253788
[07:55] <noodles775> Looks like a nice clean chang!
[07:56] <noodles775> wgrant: have you had a chance yet to see the test factory? I noticed you've got some new sample data there (I didn't check, perhaps it was necessary?)
[07:57] <wgrant> Apart from the 840 lines of test changes...
[07:57] <wgrant> Test factory?
[07:57] <noodles775> wgrant: gee, I must have missed that revision (I was just checking revs through the web ui)
[07:58] <noodles775> wgrant: yeah, it's great! take a look at lp.testing.factory, you can use factory.makePerson etc.
[07:58] <noodles775> which means not having to update sample data all the time (and tests aren't dependent on sample data changes etc.)
[07:59] <wgrant> noodles775: Ah, useful.
[07:59] <wgrant> What defines whether I can write to a particular table in a test?
[08:00] <noodles775> wgrant: basically who you're logged in as... so in some tests you'll see "login('foo.bar@canonical.com')" to get admin access...
[08:00]  * noodles775 looks for a good eg
[08:02] <noodles775> wgrant: lp/soyuz/browser/tests/archivesubscription-views.txt for a doc-test eg.
[08:03] <BjornT_> noodles775: actually, not really ;) that defines whether you can write to an object, not to a table. whether you can write to a table depends on which db user the test uses.
[08:03] <wgrant> Right, in this case it was a postgres permission denied.
[08:03] <wgrant> Nothing Zopey.
[08:03] <noodles775> BjornT_: Ah, misunderstood...
[08:04] <wgrant> What controls which user it runs as? Some tests must be able to write to person.
[08:05] <noodles775> BjornT_, wgrant : in which case, an example that I know of where I had to change db users is lp.registry.tests.test_distributionsourcepackage...
[08:05] <noodles775> See the call there to switchDbUser('karma')
[08:05] <wgrant> Ah, I see.
[08:06] <wgrant> And DB user privileges are defined in security.cfg?
[08:07]  * BjornT_ would be more helpful if he wasn't enjoying his breakfast
[08:17] <noodles775> wgrant: sorry, lib/canonical/config/schema-lazr.conf matches the actual db usernames to those seen in switchDbUser().
[08:17] <wgrant> noodles775: Ah, thanks.
[08:19] <wgrant> http://www.canonical.com/contributors says I need to send my contributor agreement to kiko - is that right?
[08:21] <noodles775> wgrant: Yup, I guess so.
[08:22] <wgrant> I wonder if I do have to do it again...
[08:23] <noodles775> wgrant: just check with kiko later.
[08:24] <wgrant> noodles775: A good idea.
[08:29] <adeuring> morning
[08:29] <noodles775> Morning adeuring ;)
[08:29] <adeuring> hi noodles775 ;)
[08:52] <gmb> Morning folks.
[08:52] <Knut-HB> morning
[08:52] <noodles775> Morning gmb and Knut-HB
[09:08] <mrevell> Howdy open sourcers :)
[09:09] <wgrant> Evening mrevell.
[09:09]  * wgrant just took his first bug.
[09:09] <mrevell> woo, cool
[09:11] <gmb> Hullo mrevell. Welcome back to a new, freedom-loving fold.
[09:11] <mrevell> gmb: Howdy
[09:12] <henninge> mrevell: Congratulations!
[09:13] <henninge> mrevell: and Welcome to the club ... ;-)
[09:13] <mrevell> thanks :)
[09:24] <bigjools> goooooooooood morning open sourcerers
[09:24] <noodles775> :) Hi bigjools
[09:28] <bigjools> Knut-HB: hello - how did your re-download go?
[09:30] <allenap> Morning mrevell!
[09:30] <mrevell> yo allenap
[09:30] <mrevell> Man alive, I have some email to get through.
[09:30] <Knut-HB> bigjools, didn't do it by now. i just connected to the system via two ssh-connections
[09:31] <bigjools> Knut-HB: ok, let me know.  I was having dreams about this problem last night!
[09:32]  * allenap hi-5s wgrant for doing bug 253788.
[09:32] <ubot3> Malone bug 253788 in malone "Bug mail should use my verbose_bugnotifications, not the team's" [Medium,In progress] https://launchpad.net/bugs/253788
[09:34] <Knut-HB> bigjools, ok, re-running rocketfuel-setup
[09:34] <BjornT_> wgrant: nice! did you talk with someone about the implementation, before starting it?
[09:37] <bigjools> BjornT_: do you have any LP API scripts to mark bugs fix released?
[09:45] <BjornT_> bigjools: it's not mine, but i use lp:~launchpad/lp-qa-tools/bug-editor
[09:46] <bigjools> BjornT_: okidoki, thanks.  Saves me writing one :)
[09:54] <bigjools> BjornT_: was that script written by Diogo "karma thief" Matsubara?
[09:55]  * noodles775 releases his bugs quickly before bigjools runs the script
[09:55] <bigjools> heh
[09:55] <BjornT_> bigjools: yeah, i think so :)
[09:59] <Knut-HB> bigjools, ok, rocketfuel-setup finished with no errors
[10:00] <bigjools> Knut-HB: ok let's take a deep breath and try make schema
[10:00] <bigjools> (you did blow away lp-branches first before rf-setup?)
[10:00] <Knut-HB> bigjools, i renamed it
[10:00] <bigjools> ok
[10:01] <Knut-HB> bigjools, "test@test-desktop:~/launchpad/lp-branches/devel$ make schema" like this?
[10:01] <bigjools> yep
[10:03] <Knut-HB> bigjools, "utilities/shhh.py LPCONFIG=development /home/test/launchpad/lp-branches/devel/bin/py -t buildmailman.py" this line is new, i didn't see it yesterday
[10:03] <bigjools> looking good
[10:03]  * ajmitch has an issue with that bin/py just not existing
[10:04] <bigjools> ajmitch: buildout makes it, you need to run "make" or "make build" I forget which
[10:04] <ajmitch> bigjools: it runs buildout, but bin remains stubbornly free of anything but buildout
[10:04] <ajmitch> however I am trying this on hardy at the moment
[10:04] <bigjools> ok make clean, then make
[10:05] <ajmitch> oh nice, an error about having zope.interface already
[10:06] <ajmitch> http://paste.ubuntu.com/226529/
[10:06] <bigjools> ummm
[10:07] <ajmitch> just running rocketfuel-get to make sure I've got the latest - lp-branches & lp-sourcedeps were copied over from another computer due to issues fetching them
[10:08] <bigjools> ajmitch: ok, see how it goes.  Can you try "rocketfuel-branch testbranch" and see what happens if it still fails.
[10:09] <ajmitch> ok, will be a couple of minutes, bzr from here to london is not fast
[10:09] <ajmitch> (still waiting on rf-get)
[10:09] <Knut-HB> bigjools, looks like no error was produced this time :D
[10:09] <bigjools> Knut-HB: \o/
[10:09] <Knut-HB> make run?
[10:09] <bigjools> Knut-HB: ok "make run" and profit
[10:10] <bigjools> ajmitch: yeah there's a bzr bug about it issuing too many requests
[10:10] <ajmitch> NZ to UK is about as bad as it gets for latency :)
[10:11] <bigjools> yeah
[10:11] <bigjools> unless I am using VOIP to Brazil ;)
[10:12] <ajmitch> I imagine that'd require patience
[10:12] <Knut-HB> bigjools, http://harrius.gmxhome.de/launchpad.png does this look good? ;)
[10:13] <bigjools> Knut-HB: not really, it's text :)
[10:14] <bigjools> but congrats, you are running LP now
[10:14] <Knut-HB> bigjools, i know, it would just be a real pain in the ass when starting a firefox over two ssh-connections ;)
[10:14] <Knut-HB> bigjools, thanks for the help :)
[10:14] <bigjools> Knut-HB: you're welcome, glad we got there in the end!
[10:14] <bigjools> Knut-HB: although can you port forward over ssh and run FF locally?
[10:14] <noodles775> Well done Knut-HB :)
[10:15] <Knut-HB> bigjools, dunno, would have to ask
[10:16] <bigjools> Knut-HB: something like ssh -L 80:127.0.0.88:8080 <host>
[10:17] <bigjools> and then browse to localhost:8080
[10:17] <bigjools> dunno if that would work, never tried it
[10:17] <ajmitch> bigjools: http://paste.ubuntu.com/226565/ for rocketfuel-branch testbranch
[10:18] <ajmitch> could I be missing something important from the setup steps on hardy
[10:18] <bigjools> no idea :/
[10:18] <ajmitch> ah well
[10:19] <ajmitch> I stalled at the same place on karmic, no bin/py
[10:19] <bigjools> I am guessing your sourcedeps are not intact
[10:19] <bigjools> but rf-get is supposed to fix that
[10:20] <bigjools> what happens if you do "make bin/py"
[10:22] <ajmitch> no target, the target is /home/ajmitch/launchpad/lp-branches/devel/bin/py
[10:22] <bigjools> actually try: make SHHH="" so we can see some errors
[10:22] <ajmitch> which runs buildout as before, but still doesn't build anything :)
[10:22] <bigjools> someone changed the default to using shhh.py everywhere and I hate it
[10:23] <ajmitch> the same error as earlier about zope.interface
[10:23] <ajmitch> buildout version conflicts are not fun
[10:23] <bigjools> can you send an email to the launchad-dev list
[10:23] <bigjools> someone who knows more than me about this can help
[10:23] <ajmitch> ok
[10:24] <ajmitch> let me make sure I don't have stray packages installed that should be conflicted with
[10:25] <bigjools> did you install launchpad-developer-dependencies?
[10:25] <ajmitch> I did
[10:25] <ajmitch> it may be a problem of extra packages rather than missing ones
[10:25]  * ajmitch checked & has the zope3 package installed form hardy here
[10:25] <ajmitch> removing & retrying
[10:25] <bigjools> ah
[10:27] <ajmitch> hm, no difference there
[10:46] <deryck> Morning.
[10:48] <bigjools> morning deryck
[11:04] <maxb> Is there somewhere where I can *usefully* register my annoyance at shhh.py ?
[11:14] <allenap> maxb: https://bugs.launchpad.net/launchpad/+filebug :)
[11:15] <awilkins> I see so many people with difficulties getting LP to run locally.. I must be lucky
[11:16] <awilkins> A few basic teething troubles with rocketfuel, but otherwise, things started up nicely
[11:17] <awilkins> I don't do any web dev really, so I didn't have many of the dependencies installed ; maybe that has something to do with it. I wonder how easy an empty Jaunty VM is to set it up on.
[11:23] <noodles775> Good to hear awilkins !
[11:38] <maxb> I really had no problems once I stopped shooting myself in the foot with a /usr/local installation of python that I'd forgotten about :-)
[11:38] <maxb> s/no problems/no problems not attributable to being running Karmic/ :-)
[11:56] <Darkwing> Hello and good morning.
[12:03] <mrevell> Hello Darkwing
[12:04] <Darkwing> Hi mrevell
[12:05] <mrevell> jtv: thanks for marking my 2.2.7 Translations bugs as fixed released
[12:07] <jtv> mrevell: well given the revision numbers, they had to be.  :)  How are things over there?
[12:07] <mrevell> jtv: good thanks :)
[12:07] <jtv> Are you back already?  Or are you just popping in?
[12:08] <mrevell> jtv: Back today
[12:43] <Daviey> Hi.. Should i be able to upload a new mugshot on a local dev launchpad?
[12:45] <gmb> Daviey: I would've thought so.
[12:46] <gmb> Daviey: In fact, yes.
[12:46] <gmb> I don't know why I was being fuzzy about it.
[12:46] <Daviey> gmb: hmm.. i blame the northern influence :)
[12:47] <gmb> Daviey: No, that just leads me to think that everything's bad and it's going to rain all the time.
[12:47] <gmb> Daviey: I have been known to look at a blue sky and say "Aye, we'll pay for this"
[12:47] <Daviey> heh.. :).  So.. i must be doing something else wrong.. It seems to work other than that tho :/
[12:48] <gmb> Daviey: What's the problem you're having?
[12:48] <bigjools> gmb: but it does rain all the time oop north?
[12:49] <gmb> bigjools: No, just most of it.
[12:49] <Daviey> gmb: i'll try and get a useful log
[12:49]  * gmb is baffled by this "oop" nonsense. It's "up." Or "uhp" if you want to try writing it phonetically.
[12:50] <gmb> book, OTOH, is pronounced "bewk"
[12:51] <bigjools> gmb: maybe were you come from, but it's oop here ;)
[12:53] <gmb> Daviey: Oh. I'm seeing an error, too. That's weird.
[12:53] <gmb> Let me try to debug it.
[12:55] <Daviey> gmb: http://erk.daviey.com/lp_log.txt <-- that is a log from submit, to returning to ~$user page
[12:56] <gmb> Daviey: Doesn't really tell me anything. What's the error message you're seeing on the page.
[12:56] <Daviey> gmb: that is it.. no error
[12:56] <Daviey> seesm to upload fine.
[12:56] <gmb> Oh.
[12:56] <gmb> That's suboptimal.
[12:56] <Daviey> the url on the ~home is:
[12:56] <Daviey> https://launchpad.dev:58080/95/mugshot.jpg
[12:57] <noodles775> hi cprov-zzz :)
[12:58] <Daviey> http://erk.daviey.com/get_mugshot.txt <-- then freezes
[12:58] <Daviey> gmb: ^^
[12:58] <gmb> Daviey: Hmm, so I can see the same behaviour... the image never seems to turn up.
[12:58] <Daviey> exactamundo
[12:59] <gmb> Daviey: The best person to talk to is one of the registry team: sinzui and his cohorts. sinzui will be around in a couple of hours; I suggest talking to him about it.
[13:00] <Daviey> gmb: thanks
[13:01]  * gmb -> lunch
[13:32] <wgrant> BjornT_: I didn't this time, because it looked small enough at the start that it would take just a few minutes, and there were no Bugs people around. Had I known I'd end up spending longer on it after running into the test issues, I probably would have discussed it first.
[13:33] <mrevell-lunch> bigjools: Thanks for fixing the broken link in the tour
[13:36] <BjornT_> wgrant: yeah. it's good to talk it over, though. our code base contain old code that doesn't conform with current standards, so it can be unclear how to do certain things. we usually have pre-implementation calls, to reduce the risk of having to redo it at review time.
[13:36] <bigjools> mrevell: thank noodles775!
[13:37] <mrevell> ah thanks noodles775 :)
[13:37] <noodles775> mrevell: np! :)
[13:37] <wgrant> BjornT_: Right, but I didn't think there'd be much to redo. Then things changed.
[13:37] <gmb> wgrant: Welcome to Launchpad development!
[13:38] <gmb> That's exactly what *I* always say.
[13:38] <BjornT_> wgrant: things always change :)
[13:38] <wgrant> Heh.
[13:38] <gmb> And that's what he always says...
[13:52] <deryck> the first rule of fight club is.... oh, wait.... right, launchpad we're talking about.  Yes, things always change. :)
[13:53]  * wgrant makes a change to the branch, then considers requesting a review.
[13:53]  * deryck is on the third version of a branch even with pre-imp discussions.
[13:53] <wgrant> I didn't do it cleanly at the start because I was scared I'd break the tests while reordering things.
[13:59] <jtv> sinzui, you guru, can you help me out with a zope issue?
[14:00]  * sinzui sips coffee
[14:00]  * jtv waits respectfully while sinzui sips
[14:00] <sinzui> jtv: I maybe able to help, but I do not feel like a guru today
[14:00]  * jtv goes slowly
[14:01] <jtv> I've got an obsolete path_expression in zcml that's becoming impossible because of a schema change.
[14:01] <jtv> It's using a simple attribute, but that needs to become a method call with an argument to be provided by an object "higher up in the http directory structure."
[14:02] <jtv> But I suspect that's not going to fly in zcml.
[14:03] <jtv> Concretely, in lib/lp/translations/browser/configure.zcml, we've got a path_expression="${potmsgset/sequence}"
[14:03] <jtv> but the sequence number should now only be available as potmsgset.getSequence(potemplate).
[14:04] <sinzui> I see
[14:04] <jtv> This path is applied "inside" a POFile; the POFile would have a reference to the right potemplate.
[14:06]  * sinzui think jtv is in a new world here
[14:06] <jtv> sinzui: I don't remember teleporting...
[14:07] <sinzui> jtv: I need to think about this. I did some changes to openid once that did some tricky work, but your need looks beyond my practical experience
[14:07] <jtv> oh
[14:08] <jtv> seems like I sure know how to pick 'em :)
[14:09] <wgrant> BjornT_: So, um, can you have a bit of a glance over what I've done and see if it's terribly wrong?
[14:09] <gmb> wgrant: If you want someone to take a look at your code, I'm between tasks ATM.
[14:10] <sinzui> jtv: I recalling writing an adapter for openid  path_expression so that the express was simple.
[14:10] <jtv> sinzui: maybe an adapter is overkill though...  ISTRM there's some relatively straightforward way of solving this with a class in the right place.
[14:11] <sinzui> jtv: but my hack is now in SSO, not launchpad, so I need to poke in some other trees to see if I have an example
[14:11] <wgrant> gmb: https://code.edge.launchpad.net/~wgrant/launchpad/team-verbose-bugnotifications-bug-253788 is the branch. Beware of the more than 800 lines of test reorderings - the previous order relied on string ordering in a dict.
[14:11] <gmb> Ouch.
[14:11] <BjornT_> wgrant: i'll let gmb look at it
[14:11] <wgrant> (they are now sorted by emailaddress)
[14:12] <gmb> Ah, a nice big diff. Should keep me occupied til this test run finishes...
[14:12] <jtv> sinzui: ah, a Navigation subclass maybe?
[14:12] <gmb> wgrant: Is this ready for merging in your opinion (pending review)?
[14:12] <wgrant> gmb: There are two new bits in bugnotification-sending.txt, both mentioning salgado. The rest is just reordering.
[14:12] <wgrant> gmb: I believe so.
[14:13] <sinzui> jtv: I recall I needs an adapter because I was not sure if we were working the an account or a person.
[14:13] <gmb> wgrant: Cool. Can you propose it for merging please? It's easier to work with a merge proposal at this stage.
[14:13] <wgrant> gmb: True. Will do.
[14:13] <cprov> gmb: shouldn't we move review conversations to #launchpad-reviews ?
[14:14] <gmb> cprov: Yes. But I ahven't started yet :)
[14:14]  * wgrant didn't know that was public too.
[14:14] <gmb> wgrant: Oh, we're all open source and freedom loving hippies now.
[14:14] <jtv> sinzui: in this case I think it always has to be a POFile we're inside.  There already is a POFileNavigation though, with a "traverse" method that looks suspiciously similar to what I want to do.
[14:14] <cprov> gmb: ehe, no I'm not blaming you, I'm the OCR today and I haven't 'started' either.
[14:14] <gmb> wgrant: Besides, it's a bit mean to poke fun at your branch behind your back.
[14:14] <gmb> Even for me.
[14:15] <wgrant> Now, this is branched off devel. Is there any problem with proposing the merge into db-devel, since devel has been merged there?
[14:15] <barry> leonardr: when you're around... ping
[14:15] <BjornT_> wgrant: i'm looking a bit at your patch anyway, though :) i don't think you need those test re-orderings
[14:15] <gmb> wgrant: No, there's no problem with that.
[14:15] <leonardr> barry, hi
[14:15] <jtv> sinzui: Navigation.usedfor is the interface you're "drilling down" into, right?  Maybe the ZCML is stopping the class that's already there from being used.
[14:15] <barry> leonardr: hi!  up for a fun day of reviewing?  if it's quiet maybe we can talk about the lazr.restful thing after our standups?
[14:16] <wgrant> BjornT_: The easiest way to do it meant rekeying the dict, and relying on dict ordering is sevil anyway...
[14:16] <sinzui> jtv: correct
[14:16] <leonardr> oh yeah, i forgot that -reviews moved
[14:18] <BjornT_> wgrant: well, maybe you do. let me take a closer look at it....
[14:18] <wgrant> BjornT_: I've almost proposed a merge, which will make the diff easier to get to.
[14:19] <sinzui> jtv:  I found an old diff of how I made a url from an object. I need to find the magic bits and put it in a pastebin for you
[14:19] <jtv> sinzui: that'd be great, thanks.
[14:23] <gmb> Hmm. `self.i_know_this_is_an_openid_security_issue_input`.
[14:23] <Daviey> sinzui: Did you see the issue i was discussing with gmb earlier?
[14:24] <BjornT_> wgrant: hmm. i thought that recipient was a dict-like object, and not a dict. it's odd that that test hasn't failed intermittently before. anyway, i'll let gmb continue looking at it :)
[14:24] <sinzui> jtv: I am not sure I can help. My implementation had the path_expression call a property on the object. The property had access to global objects. The property negotiated the rootsite, then called another method to create the url.
[14:25] <mars> good morning
[14:25] <sinzui> jtv: So in your case the potmsgset needs another way to retrieve the potemplate.
[14:26] <wgrant> BjornT_: The object in the notification might not be, but the object used in that certainly is a dict - see bugnotification.py:40.
[14:26] <jtv> sinzui: so that parameter messes things up for me... worst case, have to introduce a class representing the inputs to that method.
[14:29] <sinzui> jtv:The Navigation object is for deconstructing a url into objects during traversal. path_expression is for constructing a url from objects using canonical_url()
[14:29] <jtv> sinzui: ah thanks, I keep getting that wrong.
[14:30] <sinzui> barry, bac, Edwin, salgado: standup in 2 minutes
[14:30] <mars> ah
[14:31] <mars> uhm
[14:31] <mars> BjornT_, ping?
[14:31] <jtv> sinzui: the more I dig into this, the less I like what I find...  Looks like we're storing a reference to the containing POFile in a TranslationMessage model object.  Trouble is, nowadays, a TranslationMessage isn't exclusively in one POFile.  Moving this to the browser code may not be easy.
[14:33] <sinzui> jtv: understood.
[14:33] <jtv> sinzui: note I'm not saying it shouldn't be done.  :)  I may be missing something, but this looks like an obscure bug to me.
[14:35] <jtv> Time to freshen up my mental model of the store.  Two requests in threads of the same appserver can "simultaneously" (apart from the GIL) access the same model object, right?
[14:42] <sp00nyG> Hello?
[14:43] <bac> sinzui: are we doing a 2:00 mtg?
[14:43] <sinzui> bac: I want to say yes, but I think it depends on my next meeting
[14:43] <mars> hi sp00nyG
[14:45] <sp00nyG> mars: Hi :) I'm testing Colloquy on iPhone, wanted to see if it worked
[14:45] <sp00nyG> Btw your launchpad install instructions are great
[14:46] <sp00nyG> Got it up and running on a VM yesterday
[14:46] <mars> cool, glad to hear it
[14:50] <henninge> sinzui: Are deleted series supposed to show up like this? https://translations.edge.launchpad.net/democracy/2.5/+pots/democracyplayer
[14:50] <sinzui> yep
[14:50] <henninge> sinzui: "see the same template in ..."
[14:51] <henninge> sinzui: ok, looks weird though ...
[14:51] <salgado> sinzui, I'm looking at OOPS-1299F1625 (the one on +participation).  I think I know what the problem is
[14:51] <ubot3> https://devpad.canonical.com/~jamesh/oops.cgi/1299F1625
[14:51] <mars> intellectronica, ping?
[14:52] <sinzui> henninge: we cannot really delete series because of the translations. If we could disconnect the translations, we could do a true delete. We move them to obsolete junk, which is a place holders of undeleteable objects
[14:52] <sinzui> salgado: thanks
[14:52] <sinzui> henninge: if you can offer a way to disconnect the translations from the series, I will make delete really work
[14:53] <BjornT_> sinzui, beuno, bigjools, kiko, joey/matsubara: TL call in 8 minutes
[14:53] <henninge> sinzui: I see.
[14:53] <bigjools> k
[14:56] <noodles775> sinzui: later after your meetings, I've got two questions regarding the style-3-0. (1) http://pastebin.ubuntu.com/227000/ and (2) see implementation details of https://code.launchpad.net/~michael.nelson/launchpad/archive-3-0/+merge/9180
[14:56] <henninge> jtv: what happened to the message sharing blog post???
[14:57]  * jtv looks
[14:59] <jtv> henninge: hmm... I don't see it any more.  Luckily I sent a much more detailed story to kfogel.
[15:00] <henninge> mrevell: didn't you like what danilo wrote about message sharing ??? ;-)
[15:00]  * henninge has not read the post yet, so ...
[15:01] <mrevell> henninge: I've just seen the draft and I'll read it now
[15:01] <henninge> mrevell: cool ;-)
[15:01] <sinzui> noodles775: I will send you draft of the conversion notes I have
[15:01] <henninge> mrevell: yeah, he did not use the holding post
[15:01] <jtv> mrevell: I also created a placeholder for committing translations to bazaar branches, but that seems to be gone now.
[15:02] <BjornT_> beuno, kiko, matsubara, joey: are you joining the call?
[15:02] <noodles775> Thanks sinzui - although I think I've already gotten them (via Julian)? Or maybe it's a different version?
[15:03] <matsubara> BjornT_, call?
[15:03] <sinzui> noodles775: If you got them a few hours ago, then you you have them
[15:03] <BjornT_> matsubara: team lead call. not sure if you are standing in for joey again, or not
[15:04] <noodles775> Subject: Draft UI 3.0 implementation notes
[15:04] <noodles775> Date: Thursday 23 July 2009
[15:04] <noodles775> woops. Sorry, that was meant to be a pm.
[15:05] <matsubara> BjornT_, I can join. joey doesn't seem to be around atm
[15:17] <barry> losa ping
[15:18] <henninge> jtv: I can see your blog post among the drafts, but it is unpublished.
[15:19] <jtv> henninge: yes, I sent the full text to karl.  Who is at OSCon now.  mrevell, I don't suppose you've heard about the translations export to branches?
[15:19] <mrevell> jtv: I haven't, no. I'm catching up on the old internal team list now
[15:20] <jtv> mrevell: this is something that's not operational in the original 2.2.7 rollout yet, but will be.  We'll need an announcement.
[15:21] <mrevell> jtv: Okay. Would tomorrow morning UTC be okay for us to catch up?
[15:21] <jtv> mrevell: perfect, thanks.
[15:21] <mrevell> thanks
[15:22] <mrevell> jtv: Let's say 10.00 UTC?
[15:22] <jtv> mrevell: any chance of an hour earlier?
[15:23] <mrevell> jtv: sure, no problem
[15:23] <jtv> mrevell: splendid, thanks!
[15:23] <mrevell> :)
[15:27] <gmb> Christ, 22 test failures. This could get tedious.
[15:30] <noodles775> beuno: I was just chatting with sinzui, and we wanted to ask you whether it is ok to update pages to the new template and later implement the redesign, like this:
[15:30] <noodles775> https://code.edge.launchpad.net/~michael.nelson/launchpad/archive-3-0/+merge/9180
[15:35] <sinzui> noodles775: beuno has a branch that makes some adjustments to the CSS.
[15:35]  * noodles775 checks
[15:36] <sinzui> noodles775: We need to stop writing CSS that uses attributes because it encourages each page to have its own rules. we want a common class that can be shared between pages
[15:37] <noodles775> sinzui: yes I agree totally that that should be the end goal, I just can't see how we can get there immediately.
[15:37] <noodles775> sinzui: either (1) beuno controls all the general shared styles - which will take time - and in the mean time we create temporary exceptions (as commented in the MP), or (2) we all tweak the general styles.
[15:37] <sinzui> #archive-details-table -> .detail-table. If we are going to use that presentation, it should be shared
[15:38] <sinzui> noodles775: if we are saying that we will fix this later, the conversion report will be a lie
[15:38]  * noodles775 checks the context of that style
[15:39] <matsubara> Ursinha, stub, herb, flacoste_afk, rockstar, bigjools, henninge, sinzui, intellectronica: meeting in 20min in #launchpad-meeting
[15:39] <Ursinha> matsubara, yes sir
[15:39] <sinzui> noodles775: lots of pages were move the the onecolumn layout without the 0.0 and 1.0 markup and classes being fixed. We want to empty style.css of all rules by adding reusable rules to style-3-0.css
[15:39] <matsubara> mars, can you sit in for flacoste_afk ^?
[15:40] <herb> matsubara: thanks for the reminder
[15:40] <mars> matsubara, sure
[15:40] <matsubara> abentley, can you sit in for rockstar ^?
[15:40] <noodles775> sinzui: I don't think so, but that is what I wanted to discuss (hence the comment in the CSS section there about the temporary rules)
[15:40] <abentley> matsubara: Yes, he asked me to.
[15:40] <noodles775> sinzui: yes, I agree... it would be great to having style-3-0 with all reusable css, but I'm wanting to discuss the best way to get there.
[15:40] <matsubara> thanks abentley, mars
[15:40] <sinzui> noodles775: understood
[15:40] <barry> herb: hi.  would you have time today to work with me on regenerating the mailing list archives?
[15:41] <herb> barry: possibly. I have to finish up something that is time sensitive, but I don't think it should take too long.
[15:42] <barry> herb: cool.  i'm in no rush, just ping me when you're free
[15:42] <herb> barry: ok
[15:42] <kiko> BjornT_, sorry, got stuck in another call! are you still on?
[15:43] <sinzui> noodles775: The biggest blocker from landing changes is that there are two conflicting designs for headings. One says we need to restore the structural-header slot, the user says we must continue to delete it.
[15:44] <noodles775> sinzui: is there a safe solution I can go with for the moment that won't break the report (I didn't understand that point in your email)
[15:44] <sinzui> no
[15:44] <noodles775> :/
[15:44] <sinzui> only the locationless pages that do not have tabs could land
[15:45] <noodles775> OK.
[15:45] <sinzui> silbs has been pressing for a universal private presentation for months. We need this solved now since your page can show a private artefact
[15:46] <noodles775> Something like a statically positioned el (that somehow doesn't get in the way - ouch)
[15:46] <BjornT_> kiko: no, we've finished already; i sent out the notes
[15:47]  * gmb runs notfound-traversals.txt and goes to get some tea, possibly build a house.
[15:48] <wgrant> kiko: Apparently I need to talk to you about the contributor agreement. If I've already submitted one for LAZR, do I need to submit another for Launchpad?
[15:50] <noodles775> sinzui: will you be sending an email to lp-dev sometime soon? If so I'll wait for that and reply there, otherwise I'm keen to start the discussion on options for transitioning the CSS.
[15:51] <sinzui> Yes. I am writing an open issue email now that includes a previous discussion about the side portlets
[15:52] <beuno> sinzui, hi
[15:52] <beuno> I hear we need to talk
[15:52] <noodles775> Great! Thanks sinzui
[15:53] <sinzui> beuno: yes. I am preparing a list of issues that have been raised in several conversation
[15:54] <beuno> sinzui, good, let me know
[15:56] <Daviey> sinzui: Can you look at bug #403561 please? :)
[15:56] <ubot3> Malone bug 403561 in launchpad "Mugshot upload/retrieval fails on development launchpad" [Undecided,New] https://launchpad.net/bugs/403561
[15:56] <sinzui> Daviey: I will
[15:57] <Daviey> thnaks
[16:01] <matsubara> stub, meeting
[16:01] <matsubara> intellectronica, meeting
[16:49] <mars> I am this // close to switching mail clients right now.  Thunderbird does *not* know how to filter mail.
[16:54] <sinzui> beuno: are you available for a call?
[16:54] <beuno> sinzui, I am. Give me 3' to finish this email and I'll be on skype
[16:54] <sinzui> fab
[17:04] <beuno> sinzui, onlineing
[17:21] <Ursinha> hey mars, I found one very old and already fix released ExpatError bug, bug 44871
[17:21] <ubot3> Malone bug 44871 in launchpad-foundations "xmlrpc should return appropriate response for a GET" [Medium,Fix released] https://launchpad.net/bugs/44871
[17:34]  * gmb => AFK for a while; back later
[17:36] <Ursinha> mars, but since it's not related, I've filed 403606
[18:19] <bac> Hi Kiko.  Can I get an RC for https://code.edge.launchpad.net/~bac/launchpad/bug-399964-teamvocab/+merge/9195 which has been reviewed by Leonard and mentored by Barry?
[18:20] <barry> losa ping
[18:20] <mthaddon> barry: hi
[18:20] <mthaddon> barry: mailing list templates?
[18:20] <barry> mthaddon: yep
[18:20] <mthaddon> barry: ok, how do we do this thing?
[18:20] <bac> sinzui: Is Kiko the release-manager now?
[18:21] <sinzui> bac: he is
[18:21] <barry> mthaddon: https://wiki.canonical.com/ImportingMailingListArchives
[18:21] <barry> mthaddon: i don't know which lists have been converted yet though. seems like at least two have.  we can experiment with the haibunku lists
[18:21] <mthaddon> barry: er, we have to do this for every list?
[18:22] <barry> mthaddon: we do unfortunately.  how many lists do we have?  i'm guessing you'd like me to try to automate this, right? ;)
[18:22] <mthaddon> barry: well, which part do we have to do? just the second part?
[18:23] <bac> salgado, sinzui: what controls the start-up of the librarian as to whether it is http or https for launchpad.dev?  or should it answer on both?
[18:23] <mthaddon> barry: I can write a wrapper script that loops over the directories (I hope)
[18:23] <mthaddon> barry: we have 762 lists
[18:23] <barry> mthaddon: the first one i think because we're not adding any new mbox file
[18:23] <barry> mthaddon: let's try with the haibunku list first
[18:23] <salgado> bac, I know there's a use_https config variable for the librarian, but I'm not sure that's what's used by the server
[18:24] <mthaddon> barry: okay
[18:24] <barry> mthaddon: what i don't know is whether you have to clear out the existing html, but let's try doing that first without that step
[18:24] <sinzui> bac: launchpad-lazr.conf sets http verses https. I think you need to look at feeds and private librarian for examples
[18:24] <bac> salgado: it doesn't appear to be.  it controls how we construct URLs to the librarian but not start-up, AFAICT
[18:25] <bac> sinzui: i was looking at bug 403561 while i waited on my review.  mugshots are served up find over http but the generated URL is https
[18:25] <ubot3> Malone bug 403561 in launchpad "Mugshot upload/retrieval fails on development launchpad" [Undecided,New] https://launchpad.net/bugs/403561
[18:25] <mthaddon> barry: https://pastebin.canonical.com/20244/ ?
[18:25] <bac> s/find/fine
[18:26] <sinzui> bac: interesting
[18:26] <barry> mthaddon: possibly s/team-name/team_name ?
[18:26] <bac> sinzui: +download files are smart and look at X-SCHEME to decide http vs. https but other users of the librarian don't
[18:27] <mthaddon> barry: https://pastebin.canonical.com/20245/
[18:27] <bac> sinzui: but this problem is only for launchpad.dev...
[18:27] <sinzui> bac: mthaddon worked with Francis to put a proxy in front of librarian calls
[18:27] <barry> mthaddon: +1
[18:27] <mthaddon> barry: Unknown option: definevr
[18:28] <sinzui> bac: I was certain that this was a dev-only issue when the bug ware reported
[18:28] <bac> barry: i have a request to make a mailing list private.  can you remind me how to get that done?
[18:28] <bac> sinzui: that is true.  but it was interesting to me so i looked at it.
[18:29] <barry> bac: the team has to be private before you create the ml
[18:29] <sinzui> bac: I do not think the production config should have broken dev
[18:29] <bac> sinzui: i don't know that dev has recently been broken.  it may have never worked, at least not since dev moved to https.
[18:30] <barry> mthaddon: s/definevr/definevar/
[18:30] <barry> mthaddon: i'll fix the wiki page
[18:30] <mthaddon> barry: ok, that's been run
[18:30] <mthaddon> barry: doesn't seem to have done anything :(
[18:31] <barry> mthaddon: nope
[18:31] <barry> mthaddon: let me read the mhonarc manpage
[18:31] <mthaddon> barry: k
[18:34] <sinzui> bac: I think there may be a conflict between the image formatter and the config. I think the image formatter should know to use the correct protocol when talking to the  librarian. The issue may be that there are two and it is safer to always talk https and let a proxy work out the details
[18:34] <sinzui> bac: change download_url: http://launchpad.dev:58080/ to https
[18:34] <sinzui> in development/launchpad-lazr.conf
[18:34] <bac> sinzui: i tried that.  doesn't help.
[18:35] <bac> since use_https is True for lp.dev all URLS for the librarian come out as https
[18:35] <sinzui> bac: right, but setting the local librarian to also use https should fix the issue
[18:36] <bac> sinzui: that variable doesn't seem to affect how it gets started.  that was the first thing i tried and it didn't work.  it also exposed a bug in that it tried generating "httpss://" schemes!
[18:36] <barry> mthaddon: can you add the -reconvert option to that mhonarc command?
[18:37] <sinzui> bac: does
[18:37] <sinzui> utilities/lsconf.py -s librarian configs/development/launchpad-lazr.conf
[18:37] <sinzui> confirm that the server will start with https?
[18:38] <mthaddon> barry: does it matter where?
[18:38] <barry> mthaddon: it probably doesn't as long as it doesn't split an argument.  safest is at the front
[18:39] <mthaddon> barry: done and rerun - doesn't seem to have done anything
[18:39] <barry> mthaddon: huh.  okay, i guess i have to experiment now :/
[18:40] <barry> mthaddon: thanks, i'll ping you again soonish
[18:40] <bac> sinzui: lsconf.py does show the urls to be https.  but looking at the runlaunchpad.py starter script it doesn't look like it pays any attention to those values.
[18:40] <mthaddon> barry: sure
[18:42] <bac> barry: are you still in #launchpad-code?
[18:43] <barry> bac: yes, but my irc client doesn't always make it obvious i have a message waiting for me
[18:43] <sinzui> bac: did you verify everything works when vhost.use_https: False is set?
[18:43] <bac> sinzui: no
[18:43] <bac> sinzui: not yet
[18:45] <sinzui> beuno: I have characterised the Involvement as creative actions. The but that is not the case in the translations link or the user participlation links
[18:49] <sinzui> beuno: Is the menu application activity? if so can I have more than one link for an application? Join this Team, Contact this Team?
[18:56] <kiko> wgrant, I don't think so -- your agreement should cover all your contributions to the projects identified, but let me double-check with karl
[18:57] <kiko> sinzui, does bac need anything?
[18:57] <bac> kiko:  I asked for an RC
[18:57] <kiko> bac: can I see it?
[18:58] <bac> kiko:  sure:   https://code.edge.launchpad.net/~bac/launchpad/bug-399964-teamvocab/+merge/9195
[18:58] <beuno> sinzui, hm
[18:58] <bac> kiko: note the new SQL that is generated has been run on production and was sufficiently fast.
[18:59] <beuno> sinzui, join this team could very well be the main action for a team
[18:59] <sinzui> yes it can
[18:59] <bac> kiko:  also, this is the bug that is prevently two of the other registry branches from working
[19:00] <bac> by the non-sense word "prevently" i meant "preventing"
[19:00] <beuno> sinzui, I think we should only have 1 main action per page. Some may not have it at all, just page-wide actions that can't be placed within reason inline
[19:01] <sinzui> beuno: I am certain most pages will not have a menu
[19:02] <beuno> sinzui, I think we have: 1 main action (ie download), maybe up to 3 extra actions (just regular links), or neither
[19:03] <sinzui> beuno: I am looking that the involvement and participation menus, which have 5 links
[19:03] <beuno> sinzui, ah, right
[19:03] <sinzui> the Involvment links are easy because they are buttons now
[19:03] <kiko> bac, heh, nice freudian :)
[19:03] <beuno> sinzui, you're asking what happens to those within, say, a bug page?
[19:04] <sinzui> yes.
[19:04] <beuno> what a great question
[19:04] <beuno> I'm not 100% sure, but this may be a good opportunity to leave all the cross-application actions
[19:04] <beuno> and flex that "cross application muscle"
[19:05] <bac> kiko: i think it's a cool new word.  i just need to figure out what it means and start using it more
[19:05] <sinzui> beuno: okay, this sounds like a promising perspective.
[19:05] <beuno> sinzui, maybe I'm on crack (and, if we do that, we should make sure we don't show the ones that the user said they don't use"
[19:07] <sinzui> beuno: I don't think these links will change then. We have 10 links defined in the mockup, and we may choose to not show some if the project does not use it
[19:08] <beuno> sinzui, I'm inclined to think that way, yes. I'm sure there's a lot of great things we could do with that, but I don't want to try and solve all the problems in the world right now
[19:08] <sinzui> beuno: translations and blueprints really require the owner to enable. bugs and code and answers can be contrbuted by 3rd parties I think
[19:09] <beuno> sinzui, but we have these magic knobs where users tell us what they use Launchpad for
[19:09] <beuno> barry is going to help me actually mean something!
[19:09] <sinzui> beuno: where a minority of projects tell us. many are clearly using code, bugs, and translations, yet the page says they do not
[19:10] <beuno> sinzui, yes. We need to fix that so by default, if you create a project in Launchpad, you actually use us
[19:10] <beuno> and, if you said you don't, make it incredibly obvious how to flip that switch
[19:10] <sinzui> beuno: the menu rules see pretty clear. I can create portlets that JDRT so no engineer thnks about it
[19:10] <beuno> sinzui, awesomness
[19:13] <bac> kiko:  i need to step out for a bit.  you have any questions about that RC branch before i go?
[19:14] <barry> beuno: yes!
[19:17] <kiko> bac, well, one
[19:17] <kiko> did you check and update all the callsites of _privateTeamQueryAndTables?
[19:17] <kiko> and why not use a verb in that method name, too long?
[19:28] <bac> kiko:  yes, i updated all of the call sites (i'll double check)
[19:29] <bac> kiko: i can verberize it if you want
[19:29] <kiko> bac, I don't really care so much, it's damned long as it is
[19:30] <bac> kiko:  ok, i've got it running on ec2 now so i can submit it in a couple of hours if you're satisfied.
[19:34] <kiko> bac, request an RC there and I'll approve
[19:36] <bac> kiko: done.  thanks.
[19:36]  * bac -> late lunch
[19:56] <marc0s> hi all
[19:58] <marc0s> i've already setup launchpad and i think its working quite well.. in localhost, i'm trying now to make it available to the other hosts of the lan, so i want to have apache listening in my eth0 ip address, the problem is that i'm getting HTTP 302 loops and i can't see the problem
[19:59] <marc0s> what i've done is to replace 127.0.0.88 with my local ip addr and 172.0.0.99 for the ssl host with another ip addr that is assigned to eth0:1
[20:00] <marc0s> should i change anything else?
[20:06] <matsubara> andrea-bs, hi, I noticed that you started working on adding comments to blueprints. did you have a pre-implementation call with anyone?
[20:06] <andrea-bs> matsubara, no, I didn't
[20:07] <matsubara> andrea-bs, it'd probably help if you have so you won't waste time
[20:08] <andrea-bs> matsubara, how can I have a pre-imp call?
[20:08] <matsubara> sinzui, can you help andrea-bs with his fix for bug 49698?
[20:08] <ubot3> Malone bug 49698 in blueprint "specifications should allow comments" [Low,In progress] https://launchpad.net/bugs/49698
[20:10] <salgado> marc0s, do you see any errors on the console where you started (make run) launchpad?
[20:11] <sinzui> matsubara: I have already commented, outlined our expectation, and offered my help,
[20:11] <matsubara> sinzui, great. thanks!
[20:11] <marc0s> salgado: i think the request is not reaching launchpad
[20:11] <sinzui> andrea-bs: you rock
[20:11] <andrea-bs> sinzui, launchpad rocks :)
[20:11] <marc0s> just a bunch of 302 messages in the apache log
[20:12] <andrea-bs> thanks matsubara and sinzui
[20:12] <mars> marc0s, did you edit /etc/hosts ?
[20:12] <marc0s> mars: sure
[20:13] <marc0s> i can paste the log output in dpaste or sth if you want to look at them
[20:13] <marc0s> with the /etc/hosts and the local-launchpad vhost
[20:18] <marc0s> http://dpaste.com/70576/
[20:21] <mars> marc0s, bind VirtualHost 443 to '*' instead of the local IP
[20:24] <marc0s> mars: now i get a warning about _default_ being overlapped by the one defined in local-launchpad
[20:24] <marc0s> and the behavior is the same ...
[20:25] <marc0s> oh wait
[20:26] <marc0s> i changed the two :443 vhost, not doing so in the bazaar one did the trick! :)
[20:27] <marc0s> thanks mars :)
[21:13] <herb> barry: it's not looking good. I think I'm going to be tied up for the rest of the afternoon.
[21:13] <herb> barry: how pressing is this?
[21:13] <herb> barry: can we do it first thing tomorrow?
[21:16] <barry> herb: no worries.  i'm still working on some local tests and a helper script, but i'm ocr today, so it's been slow going
[21:16] <barry> herb: let's do it tomorrow (and hopefully it will be a trivial thing ;)
[21:18] <herb> barry: sounds like a plan
[21:30] <mars> fun, I think I found a bug in pdb
[21:36] <mars> hmm, pdb doesn't like it when you mask its "args" command with the parameters "def foo(*args, **kwds)"
[21:41] <barry> herb: i have a script that will make this easy now in lp-dev-utils.  we can do it tomorrow
[21:41] <herb> barry: excellent
[21:56] <Toba_> helllo oscon!
[21:56] <thumper> morning
[22:01] <Ursinha> morning thumper
[22:03] <mars> thumper, have a sec to help with a basic Python unicode question?
[22:04] <thumper> mars: sure
[22:04] <mars> thumper, looking at https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1300E2074, the UnicodeDecodeError at the end
[22:04] <ubot3> https://devpad.canonical.com/~jamesh/oops.cgi/1300E2074
[22:04] <mars> ubot3, wrong URL?
[22:04] <ubot3> Factoid wrong url? not found
[22:04] <mars> :)
[22:05] <mars> thumper, I'm looking at the string substitution in login.py
[22:05] <mars> and I *think* that one of the strings going into that string substitution, or cgi.escape(), is unicode
[22:05] <thumper> mars: what line?
[22:06] <thumper> mars: that would explain the error :)
[22:06] <mars> thumper, line 381
[22:06] <thumper> which login.py?
[22:06] <mars> thumper, that would explain it, but I can't get the console to reproduce the error
[22:06] <mars> lib/canonical/launchpad/webapp/loging.py
[22:07] <thumper> looking
[22:07] <thumper> mars: I expect that cgi.escape is not expecting a unicode string
[22:08] <thumper> mars: what happens if we tell the form it is in UTF8 and encode the strings before cgi.escape?
[22:08] <mars> thumper, ok, trying to reproduce that in the console is a pain, thoughj
[22:08] <thumper> console?
[22:08] <thumper> which console?
[22:08] <mwhudson> i expect that cgi.FieldStorage shouldn't be returning a unicode string from items()
[22:08] <mars> Python console
[22:08] <mwhudson> the error will be from the '%s'%(u'\xe9',) part
[22:08] <mwhudson> er
[22:08]  * mars tries that
[22:09] <mwhudson> or nog
[22:09] <mwhudson> not
[22:09] <mwhudson> no
[22:09] <mwhudson> '%s %s'%(u'x', '\xe9') will do it
[22:09] <mars> I tried that exact string in the Python interpreter, it didn't error out
[22:10] <thumper> mwhudson: why will the second do it?
[22:10] <mwhudson> yeah, i was wrong
[22:10] <mwhudson> thumper: because the presence of the unicode string upcasts the result to unicode
[22:10] <mwhudson> and then the non-ascii plain string can't be coerced into unicode
[22:10] <mars> it works because you are somehow mixing the string encodings with the intperpolator?
[22:11] <mars> ha
[22:11] <mars> and that works
[22:12] <mars> ah, now I remember the strange inverted logic for the UnicodeError messages - they are named the inverse of what you think they are doing :)
[22:12] <mwhudson> decode means moving towards unicode, yes :)
[22:12] <mars> yeah, that's the trick :)
[22:13] <mars> ok, so the problem is right there, in the line
[22:13] <mars> and the source of the evil string is field.title I think?
[22:13] <mars> https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1300E2074#requestvars
[22:13] <ubot3> https://devpad.canonical.com/~jamesh/oops.cgi/1300E2074
[22:13] <mwhudson> looks like it
[22:14] <mars> so the answer is to pre-decode everything
[22:14] <mwhudson> COME ON launchpad.dev, start up sometime soon
[22:14] <mwhudson> maybe
[22:14] <mars> actually
[22:14] <mars> you probably want to decode ASAP
[22:14] <mars> you know, at the edges
[22:15] <mars> so we would do so in iter_form_items(), because we can't do it in the Zope form object itself
[22:16] <mwhudson> however
[22:16] <mwhudson> i can't reproduce this
[22:17] <mwhudson> i.e. log out in launchpad.dev and go to https://bugs.launchpad.dev/bugs/+filebug/+login?field.title=%E0%AC%87
[22:17] <mars> hmm
[22:17] <mars> might be another field?
[22:17] <mars> the user name?
[22:17] <mwhudson> which is a character in some indian script and i get valid html back
[22:18] <mars> according to the request variables, there is only one field being submitted: field.title
[22:19] <mwhudson> yeah
[22:19] <mwhudson> ah
[22:19] <mars> or was that the list of variables coming into this page?
[22:19] <mwhudson> using _that_ field.title repros the bug
[22:19] <mars> ?
[22:19] <mwhudson> try it
[22:19] <mwhudson> https://bugs.launchpad.dev/bugs/+filebug/+login?field.title=package+uml-utilities+20070815-1.1ubuntu2+failed+to+install%2Fupgrade%3A+el+subproc%E9s+post-installation+script+retorn%E0+el+codi+d%27eixida+d%27error+1
[22:19] <mwhudson> (after logging out)
[22:20] <mwhudson> i don't know why my fancier example succeeded
[22:20] <mwhudson> (maybe because it has codepoints >= 128, but if that's really true we should take up crying as a hobby)
[22:22]  * mwhudson cries
[22:22] <mars> :)
[22:23] <mars> mwhudson, I don't see the difference, perhaps it is the string structure?  Mixing %27 with %E9?
[22:23] <mwhudson> https://bugs.launchpad.dev/bugs/+filebug/+login?field.title=%C4%80
[22:23] <mwhudson> succeeds
[22:24] <mars> mwhudson, https://bugs.launchpad.dev/bugs/+filebug/+login?field.title=aaa%C4bbb%80ccc
[22:24] <mwhudson> hmm, so does https://bugs.launchpad.dev/bugs/+filebug/+login?field.title=%C3%BF
[22:24] <mwhudson> it seems that things that urlencode to two chars are ok, maybe?
[22:24] <mars> mwhudson, is it possible that the %F00 characters are being translated into \ or something odd like that?
[22:25] <mars> maybe try everything in the string
[22:25] <mars> %3A%E9%27%2F
[22:25] <mars> what is %2F?
[22:26] <mwhudson> %2f is /
[22:28] <mwhudson> oh wtf
[22:28] <mwhudson> you can't even do 'print self.request' in the breaking cases :)
[22:29] <mwhudson> um
[22:29] <mwhudson> i think when you type unicode into ff's location bar, it gets utf-8 encoded, then url quoted and this works
[22:30] <mwhudson> but these oopses have the "funny foreign characters" latin-1 encoded
[22:30] <mwhudson> and things break
[22:31] <mars> where do you see that?
[22:31] <mars> ah, not in the request, just with what was done to the strings
[22:32] <mwhudson> right
[22:35] <mars> at the last place I worked, I wrote a script to make sense of user-uploaded files, extracted from corporate databases, spreadsheets, CSV files, etc.
[22:36] <mars> I had to double-decode, or decode-encode, or encode, just to get the %F00 characters to go away
[22:37] <mwhudson> so many pieces of code get this wrong
[22:39] <mars> Ursinha, I've updated the bug description with the steps to reproduce, and the suggested fix
[22:39] <mars> Ursinha, looking at the second one now
[22:39] <Ursinha> mars, thanks!!! :)
[22:40] <Ursinha> mars, do you think it's too hard to fix?
[22:40] <mars> Ursinha, one or two lines maybe?  Plus the test
[22:40] <mars> which is the fun part :/
[22:42] <Ursinha> mars, hm..
[22:44] <Ursinha> mars, because it's really annoying and it's been there for ages
[22:44] <mars> mwhudson, here's a fun one: print('\x03ba3\x03b2')
[22:45] <mwhudson> my font doesn't seem to have that glyph
[22:48] <mars> ok, \u03 is... \u0003 ?
[22:49] <mars> or \u0300
[22:51] <wgrant> kiko: That's what I thought the wording indicated, but the bit where you have to send it to the project lead as well suggests otherwise.
[22:53] <mars> mwhudson, found it, someone was searching in a PPA for κ3β
[22:53] <mars> which is print(u'\u03ba3\u03b2')
[22:57] <Snova_> When I type "make run", how do I access it? https://localhost ? http://localhost shows the default Apache "It works" page.
[22:57] <mars> Snova_, http://launchpad.dev
[22:57] <Snova_> Oh yeah...
[22:58] <Snova_> Cool! Thanks :)
[22:59] <mars> Ursinha, it looks like filtering PPAs for any unicode string causes the OOPS.  Something is causing the unicode to trickle down the callstack in a nasty way.
[23:00] <mars> Ursinha, do you have a bug for that?
[23:00] <mwhudson> wgrant: congratulations on the first approved third party merge proposal
[23:01] <mwhudson> thumper, jml, abentley?
[23:01] <thumper> yep
[23:01] <thumper> mwhudson: jml is on leave today
[23:01] <abentley> mwhudson: hi
[23:01] <mars> mwhudson, thanks for the help with the Unicode issue
[23:01] <mars> thumper, you too :)
[23:02] <wgrant> mwhudson: Thanks. When does the tree normally reopen?
[23:03] <mwhudson> wgrant: monday
[23:03] <Snova_> How do I register with it? I can't send email, it's currently throwing Connection Refused exceptions in smtplib.
[23:04] <wgrant> I think you might need a local MTA, as it tries to send to root@localhost.
[23:05] <wgrant> Snova_: But you can log in with an existing user or use utilities/make-lp-user to get in without an MTA.
[23:06] <Snova_> Ah, I found the latter script, but it seemed to be hanging.
[23:06] <wgrant> It'll take a few seconds to start.
[23:07] <Snova_> It works now :)
[23:29] <Snova_> How do I push to a launchpad.dev branch?
[23:29] <thumper> Snova_: there is a link on the dev wiki
[23:29] <Snova_> Hm, should have looked there first
[23:34] <thumper> Snova_: linked from http://dev.launchpad.net/Code I think
[23:34] <thumper> https://dev.launchpad.net/Code/HowToUseCodehostingLocally
[23:59] <thumper> mwhudson: what's the status of the deleting branches spec?