[00:04] Oh, russkaya, go away. [00:04] Nobody likes you. [00:13] wgrant: cjwatson: what's the significance (if any) or 'scotty' and 'mountain'? heh [00:13] s/or/of/ [00:15] blr: Your guess is as good as mine; the branch vocabulary tests go back quite a way [00:15] I probably copied them, but ... [00:16] cjwatson: I've perpetuated the mystery. [00:18] wgrant: all sorted save a GitDefaultConflict on setting the default repo to the same repo on a second submission. [00:19] wgrant: suppose that will have to handled with the abort hack? [00:20] blr: That's a bug in GitRepository.set{Owner,Target}Default, I think; they should return early if existing == self [00:21] blr: Please fix that while you're there rather than inserting abort hacks. The test should be simple [00:21] cjwatson: ah, I assumed that was the right behaviour. Sure, I can fix that up. [00:22] (Or just "if existing is not None and existing != self", given that the following code is quick and a no-op in both cases) [00:32] grabbing some lunch [00:37] hloeung: All right, so much for tomorrow morning. https://code.launchpad.net/~cjwatson/launchpad/openpgp-show-fingerprint/+merge/262803 [00:38] We'll get +activereviews under control yet :-) [00:38] heh; oh so stories/*/xx-*.txt aren't actually generated? [00:38] No [00:38] it looks easy now that I've seen someone else's diff of the changes required [00:39] Doctests are no fun [00:39] But they're easy enough to do lightweight tweaks to if you have an environment to run the tests in, indeed [00:40] The idea is that the indented bits that look like Python interpreter sessions are run and the output compared with what the file says it's supposed to be [00:41] So we wouldn't want to generate them [00:41] Doctests are good for some things :) [00:41] Mainly for documenting APIs. [00:41] View aren't APIs :/ === maozhou__ is now known as maozhou [02:08] doctests are the devils spawn [02:08] there's a very narrow set of places they make sense - and they are great there. [02:08] but - attractive nuisance everywhere else [02:09] lifeless: gather someone was a little over-enamoured with Cucumber? [02:11] blr: doctests are a very different thing to cucumber [02:11] blr: but if it had existed, they probably would have loved it :) [02:11] lifeless: the way they're using in LP is very similar [02:11] *used [02:12] there's none of the regex object lookup stuff [02:12] nor rich verifiers [02:12] because there's no DSL [02:12] so there's no place to fix the issues [02:13] right, I just mean in the 'BDD/tests as stories' sense [02:14] lifeless: I would be happier with them if they were less brittle I guess [02:15] yah [02:39] wgrant: fixed the setTargetDefault bug, should be ready for you to look at when you're free. [02:50] wgrant: one thing that could use improvement (although not certain how it works wrt the vocab), an invalid shortened_path returns "Invalid value" which could be nicer. === maozhou__ is now known as maozhou [03:51] blr: "Invalid value" is the best Launchpad error. [06:07] blr_: ProductSeries:+index doesn't seem to work any more. [06:29] wgrant: hrm, will have a look, thanks. [06:30] ah, the git vocab context type [07:25] wgrant: hmm, that vocabulary won't be used in the ProductSeries context of course, s [07:25] blr_: Shouldn't need to exist, no, since the field doesn't exist there. [07:29] weird, tmux went bellyup... anyhow. [07:30] wgrant: have pushed a fix, although it might not be the best approach. [07:31] the vocabulary will be called in both contexts, so I've handled ProductSeries there. [07:31] blr_: Why is it being called when the widget isn't rendered there? [07:33] the SetBranchForm schema is inherited === blr_ is now known as blr [07:34] blr: It's common to customise self.field_names in setUpFields. [07:34] So you could only include default_vcs and the git bits in one case. [07:36] wgrant: right, can see that in some of the other views, that seems preferable to handling the unwanted context in the vocab! [07:36] blr: Yep. The only thing to worry about is fixing the update actions to only run the code when the relevant widgets aren't excluded. [08:54] wgrant: ok that should be looking happier now, thanks. [20:58] would be nice if the comment nav left a buffer at the top of the frame... [20:59] wgrant: Are you happy with me requesting a prod git upgrade run? I'd like to get turku in place again (it'll require slightly special instructions in the ticket, which I'll take care of). It'll also pull in your recent turnip changes though. [20:59] evening cjwatson [21:00] hiya [21:00] will vanish shortly to put kids to bed :) [21:01] yep, see you in an hour [21:01] blr: will you have a chance to finish off verbose-diff today? [21:02] cjwatson: will certainly try - just about finished with changes from wgrant's review [21:44] wgrant: regarding configure_codehosting on ProductBranchListingView, not certain I understand your comment - it isn't an override afaict. [22:00] cjwatson: Yep, turnip upgrade is fine. [23:01] man I love being able to do entire meetings without making a noticeable dent in my battery [23:03] Heh [23:03] wgrant: oh, BTW, I'm deliberately not landing avoid-pbuilder until the buildd upgrade happens, to avoid confusion with the recipe build that would follow a commit [23:04] cjwatson: Which confusion? [23:04] perhaps we should change procedures there to copy from ~launchpad/ubuntu/buildd-staging instead of ~launchpad/ubuntu/ppa [23:04] Oh [23:04] the current procedure has them copying from ~launchpad/ubuntu/ppa, which is the target of a recipe [23:04] IS confusion, right. [23:05] that [23:42] wgrant: I was thinking the other day about how we'd do git mirroring, incidentally; my thought is that we'd want to have a separate juju environment for pull/push workers (it wants rather different firewall rules from turnip, lots more outgoing), each of which keeps something like an LRU store of repositories which it reaps when it runs low on space; probably no point in sharing code with the existing codeimport stuff, it wants to be ... [23:43] ... juju from the start and there's not a huge amount it can usefully share; haven't figured out how the dispatch would work yet; don't know how the existing codeimport stuff arranges to be sufficiently privileged [23:43] cjwatson: The existing codeimport stuff is valuable as a lesson in how not to do it. [23:43] the job dispatch business is something we'd need to solve to jujuise bzr codeimport anyway, since we wouldn't want the workers talking to the DB [23:44] I was going to try avoiding having a duplicate copy of the branches. [23:45] The codeimport workers currently talk only to xmlrpc-private and librarian upload. [23:45] The only way I can see to do that is to allow turnip outbound access; or perhaps a custom twisted thing to proxy git receive-pack/upload-pack [23:46] I believe a bridge may be feasible. [23:46] Yeah, might even be buildable out of turnip code perhaps [23:46] It has most of the right pieces for it [23:46] It just needs to handle the have/want negotiation between the remote upload-pack and the local receive-pack. [23:46] That was always my preferred solution, but I don't have a proof of concept. [23:48] yes, don't do what the codeimport stuff does [23:50] figuring out how to let launchpad services have privileged access to branches would be nice too... [23:50] You mean other than unauthenticated-but-firewalled read-only slow HTTP? :) [23:51] ideally [23:51] that's codebrowse you're talking about there? [23:52] All internal services access Bazaar branches using the same mechanism. [23:52] Scanning, diff generation, etc. [23:52] oh right, yes [23:52] what i meant, as i'm sure you know, is things like recipes for private branches [23:52] and also having code imports just being able to push to the branch directly [23:53] Yep. [23:53] (but not having code import workers having the ability to just push to any branch...) [23:53] Now that we have HTTPS git repo access that's probably more reasonable. [23:53] No need for SSH keys. We can just create temporary tokens. [23:53] We'd need auth tokens [23:53] Yeah [23:53] Similar to the librarian's TLTs, except that they can be revoked once the job is done. [23:55] i half implemented this for the codehosting ssh server once