[09:35]  * cjwatson starts trying to saw up his Git MP work from the plane into manageable pieces
[09:35] <cjwatson> blr: You probably didn't see, but I got MPs working on Saturday evening \o/
[09:35] <cjwatson> (minimally, anyway)
[09:36] <cjwatson> wgrant,blr: Are we holding the team meeting at the calendared time tonight?
[09:39] <wgrant> That time's a bit awkward for me this week but I guess we might be able to get away without it.
[09:43] <cjwatson> It's exactly as awkward for me as it normally is :-)
[09:44] <wgrant> Heh, true.
[09:45] <cjwatson> How goes the release sprint?
[09:46] <wgrant> The usual amusing crop of installer bugs.
[09:46] <wgrant> Except all with added systemd fun this time.
[09:47] <wgrant> eg. oem-config breaking because of a shadow bug from two years ago because systemd.
[09:47] <wgrant> Only two last-minute sabdfl changes so far.
[09:50] <wgrant> cjwatson: Are you comfortable enough with your MP changes to make schema review sensible at this stage?
[09:53] <cjwatson> wgrant: Yeah, my threshold was "works locally", which it does.
[09:53] <wgrant> Great, will look soon
[09:54] <cjwatson> Do you think I need to ask thumper etc. if they're OK with removing BMQs?
[09:54] <cjwatson> Or just assume that if they haven't finished it in the last 5+ years they're unlikely to now?
[09:54] <wgrant> Meh.
[09:54] <wgrant> They're unused, and have been disabled for like five years.
[09:54] <wgrant> If someone wants to revive them, they can feel free.
[09:54]  * cjwatson nods
[09:55] <wgrant> VCSes are cool like that.
[09:55] <cjwatson> :-)
[09:55] <cjwatson> Vanishing.
[10:08] <wgrant> cjwatson: https://code.launchpad.net/~wgrant/launchpad/changelog-formatting/+merge/256898
[10:08] <wgrant> Quality tests.
[10:11] <cjwatson> wgrant: Nice, r=me.
[10:12] <wgrant> Thanks, bugged me for five years or so...
[10:13] <jpds>  
[10:14] <wgrant> cjwatson: Not oversized? I'm disappointed.
[10:14] <cjwatson> wgrant: Hm?
[10:14] <wgrant> Your next git branch is just under 800 lines!
[10:15] <cjwatson> Ah :-)
[10:15] <cjwatson> I have another smallish one, but then need to think a bit ...
[10:15] <wgrant> The whole diff's 4kish, right?
[10:16] <cjwatson> 4060 right now, though I'll need to write some more tests.
[10:20] <wgrant> cjwatson: boom, btw
[10:22] <cjwatson> Grr.
[10:24] <cjwatson> So much for having carefully run all the code tests and thought that was probably enough ...
[10:29] <wgrant> Heh
[10:29] <cjwatson> Ah, maybe I didn't apply the changed security.cfg first.
[10:30] <cjwatson> I'll just revert security.cfg, not worth the hassle.
[10:31] <wgrant> Yep
[10:40] <cjwatson> Testfix landing.
[11:22] <cjwatson> wgrant: Do you know why the existing Branch:+subscribe etc. permissions are the way they are?  I was copying from those.
[11:23] <wgrant> cjwatson: Probably from before private branches.
[11:24] <wgrant> The lack of a ViewAndAnyPerson-ish thing has always been annoying.
[11:25] <cjwatson> What would the difference be between that and just View here, given that an anonymous user can't subscribe to things?
[11:25] <cjwatson> Oh, but View would *allow* an anonymous user to subscribe.
[11:26] <wgrant> Exactly.
[11:26] <cjwatson> I guess it's sufficient to just rely on you not being able to get at the Branch/GitRepository to subscribe to it in the first place if you don't have View.
[11:27] <cjwatson> The portlets could be launchpad.View at least, though.
[11:30] <wgrant> Yeah, that's the way it works now, but it's a bit unfortunate.
[11:30] <wgrant> Particularly given that +subscribe is the access control view.
[11:30] <cjwatson> I'll put something in Asana for it.
[11:37] <wgrant> cjwatson: Can I upgrade DF?
[11:37] <cjwatson> Sure.
[11:42] <wgrant> cjwatson: Have you timed the new check constraints?
[11:43] <cjwatson> wgrant: I don't have the scrollback, but that was what I was doing during the wrap-up when I accidentally failed to do it in a transaction :-)
[11:43] <cjwatson> wgrant: IIRC they were something like 0.2 seconds each
[11:43] <wgrant> Oh,heh.
[11:44] <wgrant> Right.
[11:44] <wgrant> It's not a big table.
[11:45] <cjwatson> Yeah, on DF I get 153.458 ms, 95.952 ms, 94.037 ms, 69.866 ms, 125.432 ms
[11:46] <cjwatson> So the whole patch might end up being as much as a second or two but shouldn't be much worse.
[11:47] <wgrant> cjwatson: Does different_git_refs really handle a null dependent_git_repository proprely?
[11:49] <cjwatson> wgrant: Should do.  ROW (NULL, NULL) != ROW (1, 1), e.g., and I tested without a prerequisite locally.
[11:50] <wgrant> cjwatson: And one_vcs doesn't check that the VCS is consistent.
[11:50] <wgrant> Just that each of source, target and dependent only has ne.
[11:50] <cjwatson>  source_git_repository |   source_git_path    | target_git_repository |  target_git_path  | dependent_git_repository | dependent_git_path
[11:50] <cjwatson> -----------------------+----------------------+-----------------------+-------------------+--------------------------+--------------------
[11:50] <cjwatson>                      1 | refs/heads/ibm-nvram |                     1 | refs/heads/master |                          |
[11:52] <cjwatson> wgrant: Hm, yes, that's true.
[11:52] <cjwatson> Should be (source_branch IS NULL OR target_branch IS NULL OR dependent_branch IS NULL) != (source_git_repository IS NULL OR target_git_repository IS NULL OR dependent_git_repository IS NULL), I think.
[11:53] <cjwatson> Er, s/IS NULL/IS NOT NULL/g
[11:56] <cjwatson> Fixed.
[12:02] <wgrant> cjwatson: I think that new one_vcs allows me to completely omit target or source, as long as one of the others is set.
[12:02] <wgrant> But apart from that it looks reasonable now.
[12:03] <cjwatson> Oh, that's true.
[12:07] <cjwatson> Will fix after lunch.
[13:17] <cjwatson> wgrant: How does that look to you now?
[13:17] <cjwatson> ALTER TABLE BranchMergeProposal
[13:17] <cjwatson>     ADD CONSTRAINT one_vcs CHECK (((source_branch IS NOT NULL AND target_branch IS NOT NULL) != (source_git_repository IS NOT NULL AND target_git_repository IS NOT NULL)) AND (dependent_branch IS NULL OR source_branch IS NOT NULL) AND (dependent_git_repository IS NULL OR source_git_repository IS NOT NULL));
[13:19] <wgrant> cjwatson: That works.
[13:19] <cjwatson> brushing off my boolean logic
[13:19] <cjwatson> I want IMPLIES
[13:19] <wgrant> A truth table would be more compact...
[13:20] <wgrant> Yeah
[13:24] <cjwatson> p → q ≡ ¬p ∨ q, but.
[15:31] <cjwatson> wgrant: Did you intend to review db-git-mp in the MP itself?
[15:38] <wgrant> cjwatson: Er, yeah, if you've pushed that.
[15:38] <wgrant> Sorry, distracted by OpenStack.
[15:39] <cjwatson> I pushed that change, yes.
[15:39] <cjwatson> How goes the restacking?
[15:39] <wgrant> Finally got the x86 cloud back up with trusty+kilo, doing builds, next step is to see if nova-compute works on cameron.
[15:40] <wgrant> And then weneed to hack up the imemaker bits so we can hulksmash them onto cameron for ppc64el only.
[15:43] <cjwatson> works on cameron> Hopefully you won't have done the kilo upgrade for nothing ...
[15:46] <cjwatson> Huh, I wonder why I made GitRepository.name readonly=True?
[15:47] <wgrant> cjwatson: It'll at least be easier to fix on kilo!
[15:47] <wgrant> cjwatson: name needs a setter, at least.
[15:48] <cjwatson> Branch.name doesn't have one.  I assume you just get a constraint violation if you try to make it equal to an existing one.
[15:49] <wgrant> Ugh.
[15:49] <cjwatson> And trying to set GitRepository.owner crashes, bah.
[15:51] <cjwatson> I'll be able to QA subscriptions eventually ...
[20:29] <blr> cjwatson: excellent, great news :)
[20:31] <blr> should have the cross-repo diff soon, yesterday was a bit of a write-off.
[20:52] <cjwatson> I can imagine
[20:52] <cjwatson> Not been hugely useful today myself ...
[22:03] <cjwatson> wgrant,blr: Are we meeting?