[00:16] <cjwatson> wgrant: Fancy some pip fun?  https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/379684 arranges to build wheels as part of our deployment artifact, which is something on the order of four or five times as fast on my laptop as building them from scratch (as happens when we rsync out from one path on carob to a different path on target machines).
[00:17] <cjwatson> Should get deployment times back to in the area of what they were before the conversion to pip.
[00:20] <wgrant> cjwatson: what's the [0-9]* in the LP wheel name?
[00:20] <wgrant> But sounds like a good idea
[00:20] <cjwatson> Version
[00:21] <cjwatson> $ grep ^__version__ setup.py
[00:21] <cjwatson> __version__ = '2.2.3'
[00:21] <cjwatson> I just wanted to avoid future amusement with some dependency's name happening to start with "lp-" or something
[00:21] <wgrant> Ah, fair enough, indeed
[00:21] <wgrant> No underscores for us
[00:22] <wgrant> r=me
[00:24] <cjwatson> Excellent, thanks
[01:38] <cjwatson> atemoya:
[01:38] <cjwatson> Thu 27 Feb 12:44:33 UTC 2020 Building code
[01:38] <cjwatson> Thu 27 Feb 13:09:14 UTC 2020 Updating code
[01:38] <cjwatson> Thu 27 Feb 18:13:05 UTC 2020 Building code
[01:38] <cjwatson> Thu 27 Feb 18:32:48 UTC 2020 Updating code
[01:38] <cjwatson> (both builds before the change above)
[01:38] <cjwatson> Fri 28 Feb 01:32:28 UTC 2020 Building code
[01:38] <cjwatson> Fri 28 Feb 01:36:38 UTC 2020 Updating code
[01:39] <cjwatson> So that phase is indeed about five times as fast there.
[01:47] <wgrant> Very nice.
[03:32] <lifeless> noice
[12:42] <tomwardill> ooh, a bug fix from 2017, that's exciting :)
[12:43] <pappacena> Well, I think we still have some bugs from 2011 open... 😅
[12:43] <tomwardill> little steps, little steps ;)
[12:44] <pappacena> One at a time. We will get there. :-)
[12:44] <SpecialK|Canon> We have some bugs from before that ;)
[12:44] <SpecialK|Canon> I put a card on the list for Frankfurt to do a little triage of our Critical bugs
[12:44] <cjwatson> We have bugs from 2005 open ...
[12:44] <tomwardill> huh, you can't sort bugs by age
[12:44] <SpecialK|Canon> I can believe they're still bugs, but we should maybe talk about the definition of "Critical"
[12:45] <tomwardill> oh, I guess Number is basically the same
[12:45] <cjwatson> tomwardill: You can, use the cog at the left of the list of sort columns
[12:45] <tomwardill> https://bugs.launchpad.net/launchpad/+bug/25
[12:45] <mup> Bug #25: Allow discussion/commenting on translations <feature> <lp-translations> <ui> <Launchpad itself:Triaged> <https://launchpad.net/bugs/25>
[12:46] <pappacena> wow... #25!
[12:49] <cjwatson> Launchpad was of course the first project to use Launchpad for bug tracking (leaving aside the special case of bug 1)
[12:49] <mup> Bug #1: Microsoft has a majority market share <canonical> <eoan> <iso-testing> <microsoft> <package-qa-testing> <Clubdistro:Fix Committed> <Computer Science Ubuntu:Fix Committed by compscibuntu-bugs> <LibreOffice:Fix Committed> <dylan.NET.Reflection:Fix Committed> <dylan.NET:Fix Committed>
[12:49] <mup> <EasyPeasy Overview:Fix Committed by ramvi> <Ichthux:Fix Committed by raphink> <JAK LINUX:Fix Committed by jp-charras> <LibreOffice:In Progress by bjoern-michaelsen> <Linux:New> <Linux Mint:Fix Released> <The Linux OS Project:In Progress> <Neobot:New> <Novabot:New> <OpenOffice:In Progress by
[12:49] <mup> lh-maviya> <ReactOS Core Operating System:Incomplete> <Tabuntu:Invalid by tinarussell> <Tivion:Invalid by shakaran> <Tv-Player:Invalid> <Ubuntu Malaysia LoCo Team:In Progress by apogee> <Wine:Confirmed> <Ubuntu:Fix Released> <Arch Linux:New> <Baltix:Confirmed> <Debian:In Progress>
 <Fluxbuntu:Confirmed> <openSUSE:In Progress> <Tilix:New> <https://launchpad.net/bugs/1>
[12:50] <cjwatson> I'm not sure what happened to bug 2; it's not just that it's private or something, it literally doesn't exist
[12:50] <SpecialK|Canon> thanks mup
[12:53] <cjwatson> OK, I think the wheelhouse work has shaved about 40 minutes off our deploy-to-production time.  Not bad
[12:54] <pappacena> Great!
[12:54] <SpecialK|Canon> "not bad" he says
[12:54] <SpecialK|Canon> sounds pretty excellent to me, nicely done
[12:54] <ilasc> :)
[12:54] <cjwatson> (Comparing timestamp differences from the first couple of sections of https://deploy-logs.admin.canonical.com/index/legacy-lp/ndt/2020-02-25-ndt.log and https://deploy-logs.admin.canonical.com/index/legacy-lp/ndt/2020-02-28-ndt.log)
[12:54] <ilasc> I second that!
[12:55] <SpecialK|Canon> Am I right in my reading of that first one being 2h end-to-end?
[12:56] <cjwatson> SpecialK|Canon: Sort of, but bear in mind that it's four steps run in sequence so if the operator isn't paying much attention then that will extend the time
[12:57] <cjwatson> SpecialK|Canon: A fairer comparison is to add the four timedeltas between "Starting <foo> step" and "Ended <foo> step"
[12:57] <SpecialK|Canon> cjwatson: ah thank you
[12:58] <cjwatson> The work I just did takes about 20 minutes off each of the build step (within nodowntime-security-update.sh) and the deploy step (within ./parallel.py --config=lp --options='--push-new-code' --targets='nodowntime')
[12:58] <SpecialK|Canon> I make that about ~45m of gaps, so around 1h15 in the first instance
[12:59] <SpecialK|Canon> Heck even of 2h, 40m is quite a chunk!
[12:59] <SpecialK|Canon> It's only getting more impressive ;)
[15:52] <tomwardill> cjwatson: looks like we'll need to drop the NOT NULL constraint on OCIRecipe.git_path, as well
[15:52] <tomwardill> Snap does the same
[15:56] <cjwatson> tomwardill: Hm, yes, that makes sense
[15:57] <tomwardill> I'll do a DB patch for it
[15:57] <cjwatson> You could get away with a hack to avoid it but it would be gross
[15:58] <cjwatson> tomwardill: Maybe add something like the consistent_git_ref constraint that Snap has while you're there
[15:58] <cjwatson> tomwardill: While it was NOT NULL it wasn't needed, but now it is
[15:58] <tomwardill> ah yeah, makes sense
[16:19] <tomwardill> cjwatson: should/can I reuse the DB patch number from the reverted one? Or best to assign a new one.
[16:19] <tomwardill> Not sure what happens if there's a gap in the run
[16:38] <cjwatson> tomwardill: Reusing is fine in this case since it never went anywhere interesting
[16:38] <tomwardill> cool :)
[16:38] <cjwatson> Just update the description in dbpatches/allocated.txt
[17:22] <tomwardill> cjwatson: https://code.launchpad.net/~twom/launchpad/+git/launchpad/+merge/380038
[17:23] <tomwardill> DB patch, code patch incoming soonish
[17:26] <cjwatson> tomwardill: db=me
[17:27] <tomwardill> gah, pushed code to wrong branch
[17:27]  * tomwardill undoes
[17:38] <tomwardill> matching code, lifting the detachFromGitRepository code into OCIRecipe from Snap https://code.launchpad.net/~twom/launchpad/+git/launchpad/+merge/380039
[17:38] <tomwardill> what I have mostly learnt is that I cannot spell detach reliably.
[17:59] <cjwatson> tomwardill: LGTM, but blocked on the DB patch being rolled out
[18:00] <tomwardill> aye, it's not blocking any of the other OCI work though, so no worries :)
[18:00]  * tomwardill unticks 'git_repository should not be null' on todo list, then ticks it again.
[18:04] <cjwatson> tomwardill: Do you have time for a quick review of https://code.launchpad.net/~cjwatson/lpjsmin/py3/+merge/379696 and/or https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/379996 before you finish up?
[18:04] <tomwardill> sure
[18:07] <tomwardill> cjwatson: +1 to both
[18:10] <cjwatson> Great, thanks
[18:21] <tomwardill> huh, test failures on my DB patch. I definitely ran them, and I definitely had the change applied this time!
[18:22] <cjwatson> Hm, you swapped those two lines in the git_ref setter in your latest code patch
[18:22] <cjwatson> Which of course isn't on db-devel yet
[18:23]  * tomwardill arghs
[18:23]  * tomwardill headdesks
[18:23] <cjwatson> My guess is that you need to land a patch on master that just swaps those lines and nothing else
[18:24] <tomwardill> yeah
[18:24] <cjwatson> Then we'll need to make sure to deploy that to production before rolling out the DB patch
[18:24] <cjwatson> (If we were a larger team this would require backing out the DB patch; as it is I think we can probably cope)
[18:25] <tomwardill> patch incoming
[18:26] <cjwatson> Cool.  I need to finish up soon but I can at least cope with occasionally thwacking buildbot
[18:27] <tomwardill> https://code.launchpad.net/~twom/launchpad/+git/launchpad/+merge/380046
[18:27] <tomwardill> just running tests
[18:28] <cjwatson> r=me
[18:28] <cjwatson> But yeah, will be quickest to confirm that this does fix the db-devel failures before landing
[18:28] <tomwardill> hmm, I should check the tests against the old DB too
[18:29] <cjwatson> I'm not worried about that in this case
[18:29] <cjwatson> But well, maybe worth a try in fact
[18:31] <tomwardill> running now
[18:31] <tomwardill> oh boo, that fails
[18:32] <tomwardill> storm.database.IntegrityError: null value in column "git_path" violates not-null constraint
[18:32] <cjwatson> Ugh
[18:33] <tomwardill> I think backout out the DB patch and doing a two-stage deploy might be safest?
[18:33] <cjwatson> What does the first stage look like, though?
[18:33] <tomwardill> drop the NOT NULL on the git_path
[18:33] <tomwardill> then deploy the code change
[18:34] <tomwardill> then add the constraint
[18:34] <cjwatson> Ah, I see.  A bit elaborate, but at 6:30pm on a Friday I don't have a better plan.
[18:34] <cjwatson> So not really back out - you can just land a change that edits that DB patch in place.
[18:34] <cjwatson> Given that there's nothing on production there's probably some alternative strategy, but let's go with this
[18:34] <tomwardill> how about a revert for the DB patch, given 18:30 friday, etc. Then fix it up next week?
[18:35] <cjwatson> I think it would be fine to back out just the new constraint
[18:35] <tomwardill> so just delete that line from the patch?
[18:35] <cjwatson> DROP NOT NULL on its own is pretty safe.
[18:35] <cjwatson> Yeah
[18:36] <tomwardill> running tests
[18:39] <tomwardill> okay, they passed with both old and new code: https://code.launchpad.net/~twom/launchpad/+git/launchpad/+merge/380048
[18:41] <cjwatson> tomwardill: db=me, thanks
[18:42] <tomwardill> cjwatson: landing, apologies for the late evening mess!
[18:42] <cjwatson> tomwardill: np.  you'll need to force buildbot
[18:43] <cjwatson> wait until you see the change at the left of http://lpbuildbot.canonical.com/waterfall first
[18:43] <tomwardill> on it
[18:45] <cjwatson> Right, mostly gone.  See you in FRA
[18:46] <tomwardill> o/