[00:06] <wgrant> StevenK: Does the PCJ count thing look reasonable?
[00:21] <StevenK> wgrant: Look reasonable in terms of layout, or query count?
[00:24] <wgrant> StevenK: layout
[01:00] <StevenK> wgrant: http://wedontsleep.org/~steven/ff.jpg
[01:04] <wgrant> StevenK: Looks good
[01:21] <cjwatson> https://code.launchpad.net/~cjwatson/launchpad/testfix-delete-unmodifiable-suite/+merge/152807
[01:25] <lifeless> flacoste: o/
[01:33] <StevenK> cjwatson: r=me
[01:34] <cjwatson> Thanks
[02:27] <StevenK> wgrant: Can I have a +1 then?
[02:28] <wgrant> StevenK: That's a reasonable point
[02:30] <wgrant> (done)
[03:25] <StevenK> wgrant: https://code.launchpad.net/~stevenk/launchpad/person-deactivate-job/+merge/152809
[03:51] <wgrant> StevenK: Might it make sense to set the account status immediately?
[03:52] <wgrant> So they're kicked out immediately but the references are purged over the next few minutes
[03:52] <StevenK> wgrant: I was wondering about that
[03:54] <StevenK> wgrant: In the view, or IPerson.deactivate() ?
[03:57] <StevenK> wgrant: Or both?
[03:57] <wgrant> StevenK: I think both, I guess
[03:57] <wgrant> Set the status, kill off the preferredemail (and possibly other emails) and anything else reasonably sane, within the request
[03:58] <StevenK> Oh, so split the work up
[03:58] <StevenK> Yeah
[04:07] <wgrant> StevenK: So perhaps kill off deactivate()
[04:07] <wgrant> StevenK: Split it into two methods
[04:07] <wgrant> One which does the easy stuff
[04:07] <wgrant> Have both the view and the deactivation job call the easy one
[04:08] <wgrant> Just in case, and so that a deactivation job is sufficient if we ever end up needing to deactivate without going through the view
[04:08] <wgrant> The view just takes a bit of a shortcut to make it appear more instantaneous.
[04:11] <StevenK> wgrant: http://pastebin.ubuntu.com/5606844/
[04:13] <wgrant> That's no method name.
[04:14] <StevenK> I couldn't think of a better one
[04:14] <StevenK> earlyDeactivate made me sob
[04:14] <wgrant> It's not a bad method name, it's not a method name at all :)
[04:15] <wgrant> But pre or early or something might be an improvement
[04:22] <StevenK> wgrant: IPerson.preDeactivate(), just checking tests
[04:35] <StevenK> Hmmmm
[04:35] <StevenK>     bug_task.transitionToAssignee(None)
[04:35] <StevenK> Unauthorized: (<BugTask for bug 16 on <Product at 0xf49e8d0>>, 'transitionToAssignee', 'launchpad.Edit')
[04:35] <_mup_> Bug #16: "Swedish" and "Swedish (Sweden)" should be the same language <lp-translations> <Launchpad itself:Fix Released by daf> < https://launchpad.net/bugs/16 >
[04:37] <wgrant> StevenK: The job should run in PermissiveSecurityPolicy
[04:37] <wgrant> So that can't happen
[04:38] <StevenK> wgrant: How do I set that?
[04:38] <wgrant> It does automatically
[04:38] <wgrant> Your test may not be doing that, so you might have to log in as an admin
[04:38] <wgrant> (or use ZopelessLayer)
[04:42] <StevenK> wgrant: UserCannotEditBugTaskAssignee: Regular users can assign and unassign only themselves and their teams. Only project owners, bug supervisors, drivers and release managers can assign others.
[04:42] <wgrant> Which test is this, and what did you change?
[04:42] <StevenK> wgrant: http://pastebin.ubuntu.com/5606881/
[04:43] <StevenK> TestPersonDeactivateJob.test_deactivate
[04:45] <wgrant> Oh
[04:45] <wgrant> So a new test :)
[04:46] <StevenK> Yeah
[04:46] <wgrant> What's the traceback now?
[04:46] <StevenK> I'll be extending the test to add things like branchsubs and things to make sure DB perms are right
[04:47] <StevenK> wgrant: http://pastebin.ubuntu.com/5606888/
[04:48] <wgrant> StevenK: Recall that the deactivation job will now probably run with no interaction, where previously it ran as the user being deactivated.
[04:48] <StevenK> Indeed
[04:49] <StevenK> wgrant: Should I grab the janitor and log in as that, then?
[04:49] <wgrant> Possibly
[04:49] <wgrant> But check what transitionToAssignee checks
[04:49] <wgrant> You may be able to simply pass in the janitor
[04:49] <wgrant> I forget.
[04:50] <StevenK> It grabs the user from the bag
[04:50] <wgrant> It doesn't have an override?
[04:50] <StevenK> It does not
[04:51] <wgrant> See if there is precedent for impersonating jobs, eg. merges
[04:53] <StevenK> Merges are done via direct DB access
[04:54] <StevenK> Maybe we should just set the bag user to the person
[04:54] <wgrant> Possibly, or the entire interaction for the durating
[04:54] <wgrant> duration
[04:55] <StevenK> wgrant: I can't really use person_logged_in in the job's run(), can I?
[04:56] <wgrant> I don't believe so
[04:56] <wgrant> See, this is why model stuff should never use launchbag
[04:56] <StevenK> Heh
[04:58] <wgrant> Still
[04:58] <wgrant> StevenK: Perhaps there are few enough methods that adding override arguments makes sense
[04:59] <StevenK> Making use of person_logged_in in job.run() has the test pass, but it makes me sob
[05:00] <wgrant> And it makes me murderous :)
[05:41] <StevenK> wgrant: I think that's everything
[06:01] <StevenK> wgrant: That MP is updated.
[06:49] <wgrant> StevenK: Thanks
[06:49] <wgrant> Will look in a sec
[06:54]  * StevenK stabs the branch scanner
[07:06] <StevenK> wgrant: I think it's fair to say that sec is up.
[07:13] <wgrant> StevenK: Sigh, longpoll, sorry
[07:13] <wgrant> Fixed now
[07:27] <StevenK> % bzr grep 'All rights reserved' lib/lp | grep -E '\.(py|js):' | wc -l
[07:27] <StevenK> 98
[07:27] <StevenK> wgrant: ^
[07:30] <StevenK> I think I might fix that up tomorrow morning
[08:03]  * StevenK grumbles at the loss of buildbot bingo
[19:21] <butlern> i'm trying to get a source package built in my launchpad ppa, the source package requires the source of another package to be installed but it seems there are no deb-src repos available in the chrooted build env, what's the best approach to getting apt-get source <package> to work? or is that not supported?
[19:35] <maxb> butlern: It's not really supported - it's not a normal thing ever done for official packages
[19:37] <butlern> maxb: gotcha, i guess i'll bump the varnish maintainers to add a -dev package for header files required by vmod compilation, thanks
[19:39] <maxb> butlern: That's certainly the normal way to get access to header files.