[00:33:56] anomie: I believe https://gerrit.wikimedia.org/r/#/c/281238/ is redundant with your recent commits. Can you confirm? [01:59:18] Krinkle: It should use atomic sections with ATOMIC_CANCELABLE rather than SavepointPostgres, but the general idea is still something that should be done. [13:34:14] addshore, DanielK_WMDE_: Would any recent RevisionStore change result in undeletions converting null ar_len to 0 rev_len, or null rev_len to 0 ar_len? Relevant to T192189. [13:34:15] T192189: Some revisions incorrectly shown as "empty" - https://phabricator.wikimedia.org/T192189 [13:34:48] anomie: at a guess there might be an intval somewhere [13:35:53] anomie: i'm not aware of a more recent change being deployed than the one 4 months ago. But as addshore said, it is possible that this is related to RevisionStore, yes. [13:36:48] RevisionRecord *should* calculate the revision size if it's null in the database. [13:38:58] the only thing that sticks out to me would be https://github.com/wikimedia/mediawiki/blob/master/includes/Storage/RevisionStore.php#L1768 [13:39:20] *reads the ticket* [13:39:25] anomie: RevisionStore::listRevisionSizes() has: [13:39:31] $revLens[$row->rev_id] = intval( $row->rev_len ); [13:39:53] this method bypasses all the magic in RevisionRecord and SlotRecord [13:40:18] yup, looks like the ticket relates to lists of revisions so that's probably it [13:40:21] addshore: ah, i see you are way ahead of me :) [13:40:28] heh, second time an intval has thrown me today ;) [13:42:59] Looks like it's undeletion specifically. [13:43:15] hmmm [13:51:49] addshore: https://github.com/wikimedia/mediawiki/blob/master/includes/Storage/RevisionArchiveRecord.php#L87 [13:52:44] that'll be the one [13:52:45] anomie: yes, that is probably it. I wonder why I did it correctly for ar_sha1, but not for ar_len?... [13:53:05] oh, i know why. [13:53:09] tables.sql has: [13:53:46] "ar_len int unsigned". I may have turned the absense of DEFAULT NULL into NOT NULL in my mind [13:54:14] actually, ar_sha1 *does* have NOT NULL, but defualts to ''. [13:54:37] so Line 88 should probably check !empty() instead of isset() [17:40:41] legoktm: A little birdie told me you wanna hold off on REL1_31? [19:56:21] no_justification: well no, I'm just worried about whether requiring PHP 7 is going to be possible/realistic [19:56:37] Oh, so not a blocker to branching, but possibly release? [19:56:49] yeah [19:58:19] :-( [20:16:53] We'll branch today as planned :) [20:18:08] James_F: You happy with ed84cd9c424e8ee66aa94d572e6e892c781ba02c as the branch point? [20:18:26] (also: fun undocumented process we do for release....I ask James if he likes the branch point? We've done this a few times) [20:19:21] not 69257de17fc899c447c9f1229b6ed319bc05d316 ? today's l10n-bot run [20:28:28] Fatal error: Class undefined: JobExecutor in /srv/mediawiki/rpc/RunSingleJob.php on line 64 [20:28:32] Ruh roh [20:29:35] Yes, you're right [20:36:26] legoktm: Core branched, doing extensions/skins/vendor now [20:36:35] <3 [20:36:59] I want to use branch.py cuz it's fast, but it's kinda buggy still [20:37:11] So had to checkout the old make-extension-branches that I (I guess prematurely) deleted. [20:37:55] Then I'll build the core commits for adding submodules & version changes [20:38:22] make-extension-branches busted too? [20:38:23] Uh [20:42:43] * James_F laughs. [20:43:33] Actually, branch.py is mostly ok for the non-core stuff [20:43:38] Except REST api is being lame :\ [20:43:41] no_justification: Yeah, what legoktm said, 69257de17 is a good point. [20:44:00] _get_client().put( [20:44:00] '/projects/%s/branches/%s' % ( [20:44:00] repository.replace('/', '%2F'), [20:44:00] branch.replace('/', '%2F')), [20:44:00] data={'revision': revision} [20:44:00] ) [20:46:36] cf: https://gerrit.wikimedia.org/r/Documentation/rest-api-projects.html#create-branch [20:48:17] Oh duh. [20:49:26] requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://gerrit.wikimedia.org/r/a/projects/mediawiki%2Fskins/branches/REL1_31 [20:49:29] Progress! [20:49:37] (better than 404) [20:53:42] Ahhh, data= should be json= [20:55:34] What is this? https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/ArticleMetaDescription,branches [20:55:52] Just created in Feb. No valid HEAD breaks mah script [20:56:22] Lame. [20:56:49] I'll hack around it [20:57:34] From https://www.mediawiki.org/wiki/Gerrit/New_repositories/Requests/Archive/2018 they wanted to import from https://github.com/Wikia/app/tree/dev/extensions/wikia/ArticleMetaDescription but haven't yet. [20:57:58] Maybe I should do it for them? Eh. [20:58:13] I suspect there are more repos with no valid branches [20:58:23] Well, just HEAD not pointing to one [20:58:31] `git filter branch` is a fair bit of work to do without checking with them first. [20:58:38] ED checks there's at least one branch now before including the repository because there were so many empty repos [20:58:56] BlueSpiceMenues [20:59:10] Actually, I think I can limit my search [21:00:01] /projects/?b=master [21:00:07] Since we're branching from that [21:02:40] Ok, doing that now [21:03:05] Yep, worked [21:06:04] no_justification: Can I waste your time briefly? Is there a line length we're aiming for with the release notes? Right now they're all over the place. If you say "76" or "80" I can write a quick patch cleaning REL1_31's up. [21:06:46] I don't care. [21:07:07] * James_F grins. OK. [21:12:37] Bleh got to the W's [21:12:42] One of the repos won't let me create branches [21:13:16] * bd808 assumes we have 500 repos named wiki* [21:13:33] WikibaseQualityConstraints to be specific. Weirdly, the UI let me create it [21:13:36] * no_justification reruns script [21:22:05] Branches done! [21:24:10] yay! https://gerrit.wikimedia.org/r/427262 is the ED update whenever you have time [21:29:09] https://gerrit.wikimedia.org/r/#/c/427264/ [21:29:18] for the submodule add + version bump [21:30:20] > 1.27.0-rc.0 bump [21:31:11] no_justification: any reason .gitmodules is not alphasorted? [21:32:28] The last few of them fucked up the first time, so added them after. [23:43:59] about requiring PHP 77 [23:44:04] or PHP 7 rather [23:45:01] hehe, requiring PHP 77 would be quite restrictive :D [23:45:06] can't we just give an error in the installer? [23:45:55] is it necessary to give an error in wfEntryPointCheck()? [23:48:28] I don't know what the point of erroring out is when there is verifiably nothing that depends on PHP 7+ [23:49:33] TimStarling: Sure, we can do that, though it's a bit of a mess to have a function that claims to check PHP 7 but doesn't. [23:50:55] where does it claim that? [23:51:22] PHPVersionCheck only says that it will "display something vaguely comprehensible in the event of a totally unrecoverable error" [23:54:05] just looking at T172165, it was pretty clear that the deadline was April 1 [23:54:06] T172165: Require either PHP 7.0+ or HHVM in MW 1.31 - https://phabricator.wikimedia.org/T172165 [23:55:02] it would be reasonable at this point to just merge James_F's change [23:56:19] TimStarling: We were going to merge it before the weekend, but unfortunately one last bit of CI doesn't work on PHP7 yet. [23:56:43] TimStarling: It shouldn't break production (he says), but we'd be unable to merge any code anywhere, which is… not great. [23:57:06] I suppose we could temporarily not check in PHPVersionCheck and so that it passes, as you say.