[00:10] <cjwatson> lifeless: OK, I'll just roll it into the code change corresponding to that db change, then
[02:24] <StevenK> Test failures due to a DB patch can be fixed in the DB branch, or should be landed first?
[02:25] <lifeless> land first if at all possible
[02:25] <lifeless> as we can't make code changes when the DB patch deploys, we want to be sure things will be ok when it deploys
[02:25] <lifeless> (and land on devel of course)
[02:26] <wgrant> StevenK: What's the issue?
[02:26] <StevenK> wgrant: test_branch_privacy_triggers does manual INSERTs into Branch which blows up when it's NOT NULL.
[02:27] <StevenK> When information_type is set NOT NULL, sorry.
[02:27] <wgrant> Even if it's just test changes, I'd still do it in devel.
[02:28] <wgrant> If it's not just test changes, it has no choice but to go to devel.
[02:28] <StevenK> Yes, I'm putting together a branch now
[02:37] <wallyworld_> wgrant: i've done a branch behind a feature flag to revoke bug access on unsubscribe but of course the triggers do that and so the test fails. one option is to have the test remove the trigger. any other ideas?
[02:38] <StevenK> wgrant: https://code.launchpad.net/~stevenk/launchpad/information_type-branch-privacy-trigger/+merge/105291
[02:39] <lifeless> wallyworld_: wait, what? Do you mean unsubscribe after bug access is revoked?
[02:40] <wallyworld_> lifeless: no. other way around. we already have a job to unsubscribe after access is revoked
[02:40] <wgrant> lifeless: Someone hasn't been reading launchpad-dev :)
[02:43] <lifeless> wgrant: thread name ?
[02:43] <wgrant> [Launchpad-dev] Next steps for Better Privacy
[02:43] <lifeless> wallyworld_: you should be able to unsubscribe and retain access in the new world order, surely ?
[02:43] <wgrant> lifeless: This is the Transitional World Order
[02:43] <wallyworld_> lifeless: eventually yes
[02:43] <wgrant> Not yet New World Order
[02:44] <wgrant> More specifically, this is the Transitional While We Have No UI Design But Need To Sort The Model Out World Order
[02:44] <wallyworld_> lifeless: we initially want to mimic current behaviour
[02:44] <lifeless> wgrant: I have no such email
[02:45] <wgrant> wtf
[02:45] <StevenK> lifeless: When did you unsubscribe from -dev? :-P
[02:45] <lifeless> StevenK: probably when I subscribed to a different list; +editemails is error prone
[02:45] <wallyworld_> wgrant: i could also make the trigger look at the feature flag table. i think that's the best option
[02:45] <lifeless> yup, there we go
[02:46] <lifeless> no wonder it was quiet
[02:46] <wallyworld_> lol
[02:46] <wgrant> wallyworld_: Ew
[02:46] <wallyworld_> why ew?
[02:46] <StevenK> lifeless: Would you like me to forward it?
[02:46] <wgrant> wallyworld_: It's unprecedented and there must be a better way
[02:47] <lifeless> I'm reading the list archives
[02:47] <wallyworld_> what is wrong with business logic checking feature flags?
[02:47] <wgrant> wallyworld_: It's a second implementation of the feature flag logic.
[02:47] <wallyworld_> shouldn't matter that the business logic is in a trigger
[02:47] <wgrant> This time in PL/pgSQL
[02:47] <StevenK> wallyworld_: The flag table contains a scope. How are you going to get a trigger to work THAT out?
[02:47] <wallyworld_> the only other way that i can see is to have the test disable the tirgger
[02:47] <StevenK> As wgrant says, Ew.
[02:48] <wallyworld_> detail, details
[02:48] <wallyworld_> forgot about the scope
[02:48] <wallyworld_> but i was thinking this would be on or off for all
[02:48] <wgrant> Right, scope is the main problem.
[02:48] <wgrant> You could just always use 'default';
[02:48] <wallyworld_> so could ignore scope
[02:48] <StevenK> If you implement flag scoping in PL/pgSQL, wgrant may murder you.
[02:49] <wgrant> But it's still a bit ew, which is why I'm trying to think of a better way
[02:49] <wallyworld_> so i could just ignore scope is what i was thinking
[02:49] <lifeless> ok
[02:49] <wgrant> wallyworld_: This is the test for when the flag is disabled?
[02:49] <lifeless> so I can see this transition
[02:49] <lifeless> I have two thoughts
[02:49] <lifeless> firstly, have you considered just doing the final thing, directly.
[02:50] <wgrant> lifeless: I was surprised when you didn't reply.
[02:50] <wgrant> lifeless: I guess this explains it :)
[02:50] <wallyworld_> wgrant: yes
[02:51] <wgrant> lifeless: I guess checking the flag, explicitly in the 'default' scope, might be best. Otherwise removing the trigger later without illegally hacking tests might be awkward.
[02:51] <lifeless> wgrant: so, AIUI the remove-grants-on-removed-subscriptions is being written to cope with...
[02:51] <lifeless> 'there is no UI for showing who has access but not a subscription'
[02:52] <lifeless> so if you wrote that UI today (and define it as crudely as possible - e.g. just show 'everyone with access')
[02:53] <lifeless> you wouldn't need a job to remove access when a subscription is removed
[02:53] <wallyworld_> it wouldn't be a job
[02:53] <wallyworld_> but yes
[02:53] <lifeless> job task code function helper etc
[02:53] <lifeless> :P
[02:53] <wgrant> lifeless: Sure.
[02:53] <wallyworld_> i was being a pedant :-P
[02:53] <lifeless> wallyworld_: orly ? :)
[02:54] <wgrant> lifeless: But the UI would be very duplicatastic with the subscriber list, and we would have to introduce a whole lot of new sharing management widgets on the bug page.
[02:54] <lifeless> wgrant: so, you're not doing htat.. why not ?
[02:54] <wgrant> None of which we have design for, and all our UI people are off doing other things.
[02:54] <lifeless> are you planning on doing that anyway ?
[02:54] <wgrant> Mostly MAAS
[02:54] <wgrant> Yes.
[02:54] <lifeless> we don't have to get the presentation perfect first time around
[02:55] <wgrant> We have to have it not be utter shit.
[02:55] <lifeless> the key elements of design in this are already committed too - this is just the ramifications
[02:55] <wgrant> And it has to not be confusing.
[02:55] <wgrant> Because this involves privacy.
[02:55] <lifeless> I agree.
[02:55] <wgrant> So, we can implement this transitional thing in the next roughly two weeks.
[02:55] <lifeless> is there a page showing who can see a given bug, today ?
[02:55] <wgrant> We cannot get design tested before then.
[02:55] <wgrant> lifeless: The subscriber list.
[02:55] <wallyworld_> lifeless: wgrant: should we move the subscribers portlet off the default bugtask view and replace with 'who has access'?
[02:56] <wallyworld_> that makes more sense to me
[02:56] <wgrant> wallyworld_: That's for UI people and testing to answer :)
[02:56] <wallyworld_> since i want to know who can see my stuff
[02:56] <wgrant> We'll be lucky to get an hour of UI time this month.
[02:56] <lifeless> wallyworld_: we could; some folk want to know who will be notified. Arguably the contents of both portlets should be expandable.
[02:56] <wallyworld_> and till now, who can see = who is subscribed
[02:56] <lifeless> one way would be to expand the subscribers portlet
[02:57] <lifeless> it currently says 'you get xxx, these people get xxx, these people may get xxx', adding 'these other people are able to view the bug but do not get xxx'
[02:57] <wallyworld_> we would need to use expanders i think if we do that, but could be ok
[02:57] <lifeless> would make a lot of sense to me
[02:57] <lifeless> it would be totally empty for a bug today.
[02:57] <wgrant> lifeless: The transitional phase lets us add a single simple extra bit of UI (the policy grantee list) and a couple of extra model bits, and it lets us sort of the model so the new UI can be implemented easily once it's designed.
[02:57] <lifeless> and if its the same portlet, there is ~= no perf overhead.
[02:58] <wgrant> s/sort of/sort out/
[02:58] <lifeless> w.r.t. removing the triggers, my suggestion would be:
[02:58] <lifeless>  - have tests that use a feature flag to indicate whether the triggers exist or not.
[02:58] <lifeless> and have a DB patch that removes the triggers and sets the feature flag ob.
[02:58] <lifeless> s/tests that use.../code that uses.../
[02:58] <wgrant> That's a possibility.
[02:59] <lifeless> a small test fixture to give you no triggers + feature rule, will let you write tests now
[02:59] <lifeless> you won't be able to go live except in a foul swoop, so you'd want to tightly limit how much code lived under that flag.
[02:59] <lifeless> (OTOH we could rollback relatively easily)
[03:00] <wgrant> Heh
[03:00] <wallyworld_> lifeless: you mean the fixturewould disable the triggers in its setup? and enable after?
[03:00] <wgrant> Foul swoop? :)
[03:00] <wgrant> Sounds reasonable, though.
[03:00] <lifeless> wallyworld_: yeah.
[03:00] <lifeless> ideally you'd write code that doesn't care about the triggers or not.
[03:00] <lifeless> Which is why I am also questioning why you're doing that.
[03:00] <wallyworld_> lifeless: i was thinking the same thing when i initially posed this issue above
[03:01] <lifeless> The lack of design-team seems like a poor reason not to use your own judgement
[03:01] <wallyworld_> lifeless: well the code is to replace the trigger eventually
[03:01] <wallyworld_> i think it better that the ui be done so the triggers can be removed
[03:01] <lifeless> do something tolerable and quick (show them at the end of the subscribers list), and revisit when design have bandwidth.
[03:01] <wallyworld_> +1
[03:01] <wgrant> lifeless: It's not just showing them.
[03:02] <wgrant> lifeless: We have to be able to remove them and possibly add them too...
[03:02] <lifeless> wgrant: with a (-) button to remove them.
[03:02] <wgrant> That's why showing policy grants is light.
[03:02] <wgrant> Because you can't remove them from that page.
[03:02] <wallyworld_> wgrant: that's what the +sharing page is for
[03:02] <wgrant> lifeless: Who has permission to remove them?
[03:02] <wallyworld_> or not?
[03:02] <wgrant> wallyworld_: You really need to be able to revoke from both ends.
[03:02] <wallyworld_> not   initially
[03:02] <wgrant> wallyworld_: Particularly since only the project owner can remove people on +sharing
[03:02] <lifeless> lets separate out needed and wanted
[03:02] <wgrant> This is needed.
[03:02] <wallyworld_> sure?
[03:03] <wallyworld_> why?
[03:03] <wallyworld_> we could just do read only portlet on bugtask page
[03:03] <wgrant> We can't block on the CC to remove people from bugs...
[03:03] <lifeless> wgrant: wallyworld_ is not suggesting that
[03:03] <wallyworld_> be we can remoe people via the sharing page
[03:03] <wgrant> wallyworld_: Only the pillar owner can use +sharing
[03:03] <lifeless> ah yeah
[03:03] <wallyworld_> sure, so?
[03:03] <lifeless> wgrant: so, you can add (-) with the same rules from removing subscriptions, initially.
[03:04] <lifeless> wgrant: that is clearly ok, because it works for subscriptions.
[03:04] <wgrant> Perhaps.
[03:04] <wallyworld_> why should anyone besides the pillar owner be able to revoke access?
[03:04] <wgrant> I can see danhg and huwshimi coming to strangle us in our sleep, though.
[03:04] <lifeless> wgrant: you could broaden it to allow the pillar owner to always remove, to be in line with +sharing.
[03:04] <wallyworld_> regardless of if it's done from bugtask or +sharing
[03:04] <wgrant> wallyworld_: I've filed a bug containing user data that's private to me.
[03:04] <wgrant> wallyworld_: But I can't prevent people from accessing it, because Launchpad is stupid :(
[03:05] <lifeless> wgrant: on what basis? That you did /something/, with communication with them about what you're doing (to give them the opportunity to go nononnonoon if needed), and behind a ff, so that its got no UI impact until you're happy with it?
[03:05] <wallyworld_> ok so we can allow bug owner + pillar owner
[03:05] <wgrant> lifeless: Anyway
[03:05] <lifeless> wallyworld_: there is no 'bug owner' :P
[03:05] <wgrant> I still think we should do what I proposed.
[03:05] <wgrant> It's one little workaround to remove grants on unsubscriptions
[03:05] <wgrant> And preserves the current UI
[03:05] <lifeless> wgrant: its up to you guys as a group, you're doing the work.
[03:05] <wallyworld_> bug task owner(s) i think i meant
[03:06] <lifeless> myself, I always try to go as directly as possible.
[03:06] <lifeless> I don't see preserving the current UI as a goal, at any stage.
[03:06] <wgrant> Sure
[03:06] <wallyworld_> in this case i'm +1 with lifeless
[03:07] <wgrant> Evolving the privacy rules gradually is a recipe for disaster.
[03:07] <wallyworld_> especially if it's behind a flag
[03:07] <wgrant> wallyworld_: It can't be behind a feature flag.
[03:07] <wgrant> Not completely.
[03:07] <wallyworld_> the ui i mean
[03:07] <wgrant> It has to be shown to everyone the moment anyone can edit grants directly.
[03:08] <wallyworld_> and then when we are happy with it, we can remove the triggers to revoke on unsubscribe
[03:08] <wgrant> Or access becomes opaque
[03:08] <lifeless> so what wgrant means, I think, is that when 'add without subscription' becomes available to *anyone*, then that access can't be hidden by the ff
[03:08] <lifeless> so the change to the subscriber portlet, while it can be ff'd to start with
[03:08] <lifeless> has to go live as soon as any manual grant - pillar or artifact scoped - is addable to the system
[03:09] <wallyworld_> yes
[03:09] <wgrant> So we cannot do gradual rollout.
[03:09] <wallyworld_> so long as the portlet looks ok, what's the issue?
[03:09] <lifeless> but again, this is a tiny, shallow UI change, consistent with current layout, and if we're committing to reviewing it to fix issues huwshimi/dan/mrevell identify, I don't see the issue.
[03:09] <lifeless> you don't need it globally visible *until* you FF enable the 'add manual grant' feature
[03:10] <lifeless> and that feature, is one that you don't need to enable until very late in the piece.
[03:10] <lifeless> folk may want it sooner, but its up to you when its delivered.
[03:10] <lifeless> So you can have as much design/UI review as you like before flipping the switch.
[03:11] <lifeless> You can gradual-rollout the new subscriber portlet info in advance of gradual-rollout the ability to add grants
[03:11] <lifeless> totally doable.
[03:11] <wgrant> And totally another two weeks.
[03:12] <wallyworld_> if we roll out the new ui, it will always be empty anyway atm due to the triggers
[03:12] <wgrant> Indeed, the new section of the porlet will not be seen until manual grants happen.
[03:12] <wgrant> So a gradual rollout there is not useful.
[03:13] <lifeless> less useful
[03:13] <lifeless> certainly
[03:13] <lifeless> totally unuseful? don't think so. Missing table perms etc would be caught
[03:14] <lifeless> poor query performance likewise.
[03:14] <lifeless> wgrant: why another two weeks?
[03:14] <wgrant> lifeless: Because that's how Launchpad works.
[03:14] <wallyworld_> and i could hack in data for a screenshot
[03:14] <lifeless> I can't usefully comment on such hyperbole
[03:14] <wgrant> It's not hyperbole.
[03:15] <wgrant> Attempting to iterate on interlocked UI and model changes *does not work*.
[03:15] <wgrant> In Launchpad.
[03:15] <lifeless> what model changes are expected here?
[03:15] <lifeless> other than the trigger discard
[03:15] <wallyworld_> wgrant: i call bullshit on that one. i did it fine for the +sharing page
[03:16] <wgrant> lifeless: Moving access management into the application and out of the database, for one.
[03:16] <wallyworld_> lifeless: we will only likely one one additional service method on the sharing service
[03:16] <wallyworld_> for me to do the ui
[03:16] <lifeless> wgrant: how is that different to the trigger being discarded?
[03:16] <wgrant> wallyworld_: Permissions are going to be very awkward, but we'll see.
[03:16] <wallyworld_> permissions for editing maybe
[03:17] <wallyworld_> but that's a separate issue
[03:17] <wallyworld_> the ui can still be done incrementally, first read only, the editable
[03:17] <wallyworld_> and feedback can still be gotten
[03:17] <wgrant> I am very wary about gradually evolving the privacy UI like that.
[03:18] <wgrant> It's going to confuse people, and everyone already makes enough mistakes.
[03:18] <wallyworld_> confuse who?
[03:18] <wallyworld_> it will only be visible to select people
[03:18] <wallyworld_> initially
[03:18] <wallyworld_> us and product team perhaps
[03:18] <wgrant> Sure, but we have to eventually roll this transitional edit UI out to everyone.
[03:18] <wgrant> Only to change it again later.
[03:19] <wallyworld_> or we could deploy it in one go like we said above
[03:19] <lifeless> we change UI all the time, after we have data about how well it works.
[03:19] <wgrant> wallyworld_: This UI we've discussed here won't be the final one.
[03:19] <lifeless> wgrant: why not ?
[03:19] <lifeless> well, let me rephase
[03:19] <lifeless> beyond design requested changes
[03:20] <lifeless> which isn't a guaranteed thing, because you might be doing it well enough first pass.
[03:20] <wgrant> ... because there will be design requested changes.
[03:20] <wallyworld_> so? we have to start somewhgere
[03:20] <wallyworld_> and so long as it's functional and not too ugly
[03:20] <wallyworld_> then it will be fine surely
[03:20] <lifeless> retitle 'subscribers portlet' to 'sharing and notifications' - |your status | other people with different sorts of status| status2 | status3\
[03:20] <lifeless> (rotated 90'
[03:21] <lifeless> )
[03:21] <wgrant> wallyworld_: I can see the blog post now
[03:21] <lifeless> 'LP developers delivered on time' ?
[03:21] <wallyworld_> lol
[03:21] <wgrant> "Now, there are some people that have access but aren't subscribed. You can't add them, and they'll only appear sometimes, when something has happened. In a week this will change and everything will be like this"
[03:22] <wallyworld_> that's not very helpful. i don't think it will happen like that at all
[03:22] <lifeless> So, keep your current job :)
[03:22] <lifeless> I don't think marketing is your forte.
[03:22] <lifeless> hmm, that sounded meaner than I meant it. Sorry.
[03:22] <wgrant> Heh
[03:23] <lifeless> But seriously, I would say something like this:
[03:24] <lifeless> 'The disclosure project has now enabled direct access control for the beta users of Launchpad. Users of that team can now grant access to private and security bugs without needing to create subscriptions. Less mail!.
[03:24] <wgrant> So now we need the grant access UI too!
[03:24] <wgrant> Awesome.
[03:25] <wallyworld_> hmm. if only there were someone around who could write code
[03:25] <wgrant> Code isn't the problem.
[03:25] <wgrant> Code is easy.
[03:25] <lifeless> *All users* of Launchpad will be able to see who has been granted access to a private or security bug. Once we've shaken down the system with our beta team, we will permit all users to use this facility."
[03:25] <wgrant> UI when all our UI people have been stolen is the problem.
[03:25] <lifeless> wgrant: hangon, take a step back please.
[03:25] <lifeless> and a good long breath.
[03:26] <wgrant> We won't be allowed to do this without mockups and user testing, and that will take at least 6 weeks.
[03:26] <lifeless> My understanding is that noone will know this change is around until the grant access UI is enabled.
[03:26] <lifeless> True or False.
[03:26] <wgrant> The sharing management UI in general, yes/
[03:26] <wgrant> .
[03:26] <lifeless> So True.
[03:26] <lifeless> And, thats feature flagged.
[03:26] <lifeless> Right?
[03:26] <wgrant> Yes.
[03:27] <lifeless> So, there is no need for the blog until that flag is toggled.
[03:27] <lifeless> And the sketch I gave for a blog is sufficient when the flag is toggled - if the 'grant access' UI is the sharing management UI, thats sufficient.
[03:27] <wgrant> Sure.
[03:28] <wgrant> We this still means we can't finish the model until the new UI is designed.
[03:28] <lifeless> so why did you wax sarcastic?
[03:28] <lifeless> wgrant: so do the design for the UI.
[03:28] <wgrant> Heh
[03:28] <wgrant> Have you ever designed UI using the new process?
[03:28] <lifeless> There is a difference between design and signoff.
[03:28] <wallyworld_> we don't need the entire process to get started
[03:28] <wallyworld_> or to have enough to do the model
[03:28] <wgrant> We do.
[03:29] <lifeless> I feel like you have a genuine point somewhere, but its getting hidden behind absolute statements and general hysteria.
[03:29] <lifeless> This is exhausting trying to work through.
[03:29] <wgrant> We cannot evolve the model until the UI enforces its display limitations.
[03:29] <wallyworld_> sigh. i'm going to write code. see y'all
[03:29] <wgrant> The point of my plan is to allow us to evolve the model before we have UI
[03:29] <wgrant> In lifeless' plan, we cannot evolve the model until the new UI is turned on.
[03:29] <wgrant> Which requires signoff.
[03:29] <wgrant> turned on for everyone, that is
[03:30] <lifeless> Your plan requires that where the model is implemented move around, but htat the model (in the general sense of 'rules of the system') stay the same for the same period of time.
[03:31] <wgrant> Crucially, it allows us to completely stabilise the model code and work on more project privacy.
[03:31] <lifeless> I was hoping to unblock you on a technically hairy transition, but if you believe you can't do it differently, thats your call. I'm not here to tell you how to do it.
[03:31] <wgrant> Meanwhile the UI can be bikeshedded without blocking the rest of the world.
[03:33] <lifeless> What I would do is nab dan or huw on skype tomorrow, talk them through the key things (show the non-subscribed grants, show a (-) if you can remove them), get them to ack that as a provisional thing, and move on.
[03:33] <lifeless> LP UI will be bikeshedded for the next 50 years
[03:33] <lifeless> (thats hyperbole :P)
[03:37] <cody-somerville> Yea. We'll be using github by then.
[03:37]  * cody-somerville ducks.
[04:28] <StevenK> wgrant: Does any of the bugsearch stuff still reference Bug.private ?
[04:32] <wgrant> StevenK: Not the main stuff, but there are some stragglers.
[04:33] <wgrant> Most were eliminated in a branch that landed a few hours ago.
[04:33] <StevenK> wgrant: So we can't quite rip out Bug._private and friends yet
[04:33] <wgrant> Sadly not.
[04:34] <StevenK> Do you think it's worth putting together a silly branch that drops them just to see how much fallout is involved, or not yet?
[04:34] <wgrant> Not yet.
[04:35]  * StevenK will continue to bash his head against IBranch.
[04:35] <wgrant> Not until the legacy half of get_bug_privacy_filter is gone and we've grepped for [Bb]ug.private
[04:35] <StevenK> jtv: O HAI
[04:35] <StevenK> wgrant: Bug.private isn't dying, ._private is.
[04:36] <wgrant> I mean DB [Bb]ug.private
[04:37] <StevenK> Hm, I think Bug._private might actually be dead.
[04:41] <wgrant> I believe it was meant to be unused except for compatibility with DB queries.
[04:42] <StevenK> Right. I just can't see any others in the tree.
[04:58]  * StevenK reads the triggers related to Branch.transitively_private and prepares for a 12 hour drive.
[05:13] <StevenK> wgrant: Hm, you were involved with jtv's testing on staging, does that qualify as QA for the purposes of r15218 and r15220 ?
[05:14] <wgrant> StevenK: No, there have been some slight changes since.
[05:15] <wgrant> He might be able to judge it sufficient, but I don't particularly want to.
[05:15] <StevenK> wgrant: Yah, okay
[05:43] <czajkowski> aloha
[05:56] <lifeless> czajkowski: I thought you were @ UDS ?
[05:58] <czajkowski> lifeless: yup I am indeed
[05:58] <czajkowski> lifeless: and I work on lp stuff in and around sessions and stuff so working now for a bit
[05:58] <czajkowski> but need jtv :/
[06:00] <lifeless> czajkowski: isn't it 11pm ?
[06:00] <czajkowski> lifeless: yup
[06:08] <jtv> StevenK: no, it's not quite the same thing.  I've been trying to Q/A, but running into qastaging trouble
[06:12] <lifeless> czajkowski: btw, feature work defects are never critical, unless they are oopsing
[06:12] <lifeless> czajkowski: (because its planned work, its not an interrupt)
[06:12] <czajkowski> lifeless: ah ok thought they were as they're part of a new feature not working as the feature intended
[06:13] <czajkowski> sorry
[06:13] <lifeless> czajkowski: no worries; also minor things like typo are at most high
[06:13] <lifeless> (they don't stop people getting their work done)
[06:14] <lifeless> czajkowski: 997346 should indeed be critical, because its a regression - but it should have the tag added
[06:15] <lifeless> czajkowski: there is I think (and if not there should be), in the bug triage wiki docs a comment to the effect of 'all critical bugs have to have a tag explaining why'
[06:15] <lifeless> e.g. timeout, or oops, or escalated, or regression
[06:16] <lifeless> mmm, and looking closer
[06:19] <lifeless> stub: hi thar
[06:20] <stub> urgh
[06:20] <lifeless> good morning :P
[06:21] <lifeless> stub: ready for a catch up?
[06:23] <stub> Ha. Can do, but not ready :)
[06:24] <lifeless> skype or g+ ?
[06:25] <stub> Hang on, need to steal my mike back.
[06:26] <stub> I still haven't tried G+.
[06:26] <lifeless> skype then :)
[07:23] <wallyworld_> stub: hi. for some tests, is there an 'admin' user i can use like "with dbuser('admin')" which allows me to avoid 'you do not own this relation' errors. i have got it to work with 'ian' but obviously i can't commit that
[07:24] <stub> wallyworld_: There is a 'testadmin' user
[07:24] <wallyworld_> stub: it still complains when i try that
[07:24] <stub> Hmm... 'you do not own this relation'. What are you trying to do?
[07:24] <wallyworld_> stub: disable a trigger
[07:25] <stub> oic. Need to be the real owner then.
[07:25] <wallyworld_> as in 'ian' or whoever?
[07:25]  * stub checks to confirm if 'launchpad' or other
[07:26] <stub> wallyworld_: os.environ['USER'] would be best for now
[07:26] <wallyworld_> stub: cool. thanks
[07:26] <stub> wallyworld_: Ideally, the 'testadmin' user should be a superuser if we are trying to do this sort of thing. Open a bug if you like.
[07:27] <wallyworld_> stub: will do. i was hoping there'd be a symbolic admin user i could use
[07:27] <stub> Currently it must just have full permissions on every object, which isn't quite a superuser.
[07:27] <wallyworld_> ok
[07:27] <stub> Yer. Didn't think of tests issuing DDL.
[07:28] <wallyworld_> well, most don't :-)
[07:28] <wallyworld_> i'll file a bug and add an XXX to my branch
[07:29] <stub> No need for the XXX really - just a normal comment that os.environ['USER'] is a superuser (or our database setup scripts will completely fail)
[07:30] <wallyworld_> stub: i was going to add the XXX so that when the bug i file is fixed, we can replace the os.environ with 'testadmin'
[07:30] <stub> Sure.
[07:31] <wgrant> wallyworld_, stub: Why not use postgres?
[07:31] <wgrant> In test scenarious the current user should be able to auth as postgres, and postgres is both a superuser and the real owner.
[07:31] <stub> wgrant: If we know that works for every dev, sure.
[07:31] <wgrant> They have be able to auth as dozens of other users for the test suite to work.
[07:32] <wgrant> So unless they've gone and named them all explicitly...
[07:33] <stub> More that pg_hba.conf often starts with restrictive settings for connecting as postgresql (to ensure autovacuum etc. can work), followed by user settings. But our setup instructions say don't do that, so...
[07:34] <stub> wallyworld_: Use 'postgres', no need for the bug or XXXX
[07:34] <wallyworld_> ok, thanks
[07:34] <stub> wallyworld_: We already switch to that user in other tests
[07:35] <stub> wgrant: ta
[07:35] <wallyworld_> i tried to find something but there's so many... :-)
[07:39] <StevenK> wallyworld_: Can you review https://code.launchpad.net/~stevenk/launchpad/information_type-branch-privacy-trigger/+merge/105291 so I can land it?
[07:39] <StevenK> stub: A review of https://code.launchpad.net/~stevenk/launchpad/db-branch-information_type-not-null/+merge/105282 would be lovely.
[07:40]  * stub looks
[07:40] <wallyworld_> StevenK: ok, give me a minute
[07:40] <StevenK> wallyworld_: It's tiny, only test changes.
[07:41] <stub> StevenK: Are you using PG 9.1 yet?
[07:41] <wgrant> StevenK: That col is indexed now, right?
[07:41] <StevenK> stub: I'm not, but neither was the sampledata in db-devel
[07:41] <stub> StevenK: Oh, ok. Thought that the 9.1 version had landed already.
[07:42] <wgrant> cjwatson didn't regen sampledata
[07:42] <StevenK> It looks to have in devel, so I will probably have fun with a merge
[07:42] <wgrant> I did in devel a few hours back, with 8.4, because I knew there was more coming
[07:42] <stub> diff didn't look that huge - was just checking
[07:42] <stub> r=stub anyway
[07:43] <StevenK> wgrant: stub did the index the day before the garbo job landed.
[07:43] <wgrant> Should be deployable tomorrow.
[07:43] <wgrant> Yeah, I thought I remembered that, but best to check.
[07:43] <StevenK> wgrant: Except that I can't land it yet, since it requires the test fix that I wanted wallyworld_ to review.
[07:43]  * wallyworld_ is looking
[07:44] <wgrant> StevenK: That's true. You may have to be lucky.
[07:45] <wallyworld_> StevenK: r=me
[07:45] <StevenK> Yes, rather.
[07:46] <StevenK> wallyworld_: I considered changing it to the factory, but decided against it.
[07:46] <StevenK> Why it does INSERT directly is beyond me,
[07:47] <adeuring> good morning
[07:49] <wallyworld_> StevenK: i can't recall why. i think it was because it was just testing the triggers and wanted to keep it simple
[07:52] <StevenK> wallyworld_: Right, so there is a reason.
[08:11] <lifeless> www.pretotyping.org -
[08:24] <jtv> Any reviewers in the house?  I have 2 incremental MPs — https://code.launchpad.net/~jtv/launchpad/bug-994650-scrub-in-batches/+merge/105189 & https://code.launchpad.net/~jtv/launchpad/bug-994650-cache-potmsgsets/+merge/105193
[10:20] <jtv> Does anyone have any tips on how to find, given a job class, what command line we use to run that job?
[10:21] <jtv> Ahhh, the trail leads to the culprit.  Wow, we can't standardize this stuff soon enough.
[10:29] <wgrant> jtv: There's only around 4 ways to run jobs now.
[10:29] <wgrant> Celery is a 5th, but will subsume the rest.
[10:29] <wgrant> Eventuall.
[10:29] <wgrant> y
[10:30] <jtv> like any One New Standard To Replace All Legacy Standards.
[10:43] <wgrant> This one actually has major benefits over all the existing ones, and is much easier to set up, though.
[10:43] <wgrant> And is nearly ready.
[12:04] <nigelb> wgrant / jtv https://www.xkcd.com/927/
[12:10] <wgrant> Indeed
[12:10] <wgrant> I don't even need to click the link :)
[12:10] <nigelb> haha
[12:10] <nigelb> I didn't have to actually open the url.
[12:11] <nigelb> It's like 386 is Duty Calls, 705 is Devotion to Duty, etc.
[13:02] <deryck> Morning, everyone.
[13:04] <nigelb> Hey deryck
[14:14] <deryck> adeuring, I'm free again.  want to meet back in the standup hangout?
[14:14] <adeuring> deryck: sure
[14:53] <abentley> adeuring: Could you please review https://code.launchpad.net/~abentley/lazr.jobrunner/rollback-29/+merge/105335 ?
[14:53] <adeuring> aabesure
[14:53] <adeuring> abentley:  sure
[14:58] <adeuring> abentley: r=me
[15:02] <rick_h_> jcsackett: if you get a sec pls https://code.launchpad.net/~rharding/launchpad/bugnom_874250/+merge/105317
[15:03] <jcsackett> rick_h_: it's in my queue.
[15:03] <rick_h_> jcsackett: ty
[15:08] <jcsackett> jtv: you around?
[15:26] <cjwatson> wgrant: sampledata> Oops.  Should I have done?
[15:55] <stub> cjwatson: Doesn't matter.
[15:55] <cjwatson> OK
[15:55] <stub> cjwatson: Just me reconciling what I thought had occurred with reality
[15:57] <jcsackett> rick_h_: r=me, with nitpicks.
[15:58] <rick_h_> jcsackett: ty, will go check them out.
[15:59] <rick_h_> jcsackett: ah, heh I didn't clean that up. Had pdb break points in there so having the middle var allowed stuff
[16:05] <jcsackett> rick_h_: dig.
[18:26] <lifeless> morning
[19:09] <sinzui> jcsackett, ping
[19:12] <jcsackett> sinzui: pong.
[19:12] <sinzui> jcsackett, have time to hangout>
[19:12] <sinzui> ?
[19:12] <jcsackett> sure, be on g+ in a minute.
[19:17] <sinzui> jcsackett, sorry, lost my phone. I am calling it now
[19:17] <jcsackett> ok.
[19:20] <sinzui> bugger, g+ changed it's UI again
[19:21] <jcsackett> sinzui: i'm still seeing you as offline.
[19:22] <sinzui> oh, I think I am in a hangout with you in g messenger
[19:22] <sinzui> New UI, but same crap
[19:23] <jcsackett> yeah, i'm messaging you via g messenger, but still not seeing you online.
[21:07] <lifeless> bbiab, shopping run
[21:55] <james_w> jcsackett, hi, would you take a look at https://code.launchpad.net/~james-w/launchpad/no-subscription-cancellation-email/+merge/105400 please?
[21:55] <jcsackett> james_w: sure.
[21:56] <jcsackett> james_w: looks good. if you'll set the commit message i can send it off to ec2 and land for you.
[21:56]  * jcsackett likes short, direct MPs
[21:56] <james_w> jcsackett, ace, thanks
[21:57] <james_w> jcsackett, done
[22:51] <jcsackett> james_w: may have lied to you, i can't seem to get ec2 to workout properly. sinzui, can you land james_w's branch? i keep getting silent failure on the last step of ec2 land.
[22:51] <sinzui> I can land
[22:55] <rick_h_> lifeless: ping
[22:55] <jcsackett> sinzui: thanks. MP is https://code.launchpad.net/~james-w/launchpad/no-subscription-cancellation-email/+merge/105400
[22:55]  * jcsackett makes note to poke at ec2 stuff tomorrow.
[22:59] <lifeless> rick_h_: ola!
[23:00] <rick_h_> lifeless: just commenting on your comment
[23:00] <rick_h_> https://code.launchpad.net/~rharding/launchpad/bugnom_874250/+merge/105317
[23:02] <rick_h_> lifeless: bath/bed time for the boy, but will check back in in 30ish. If you want it changed I can, but it was that way with some reason for consistancy. Let me know what you want and I'll update it in the morning
[23:04] <lifeless> rick_h_: replies