Hi folks, Executive summary: T108255 is the default option for our Wednesday RfC review (E66)[0]. As part of improving our database use, we need to start gating our code review on better shared norms of SQL correctness. We need to enable strict mode, cleanup/enforce primary keys (T17441), and start using row-based replication (T109179). Let's talk about this on Wednesday.
Details: We're still not 100% decided what our topic for this week's RfC review meeting will be, but I'm leaning pretty heavily toward T108255. Jaime Crespo (Jynus) asked me about it last week, which inspired me to turn T108255 into an RfC. After he cleared up my writeup, I think there's something for us to talk about. In particular, I originally thought this was merely about enabling MariaDB's strict mode, and all of the rainbows and unicorns that would result from that. Jaime corrected me, pointing out that there is other database related cleanup we would need to do to get the benefits of this. So, as of this writing, T108255 by title still appears to be about merely enabling strict mode. It's tempting to split this ticket into two tickets: 1. RfC: Write/enforce SQL correctness guidelines 2. Enable MariaDB/MySQL's Strict Mode I may make a separate ticket tomorrow unless someone convinces me that kittens will die as a result.[1] Regarding SQL correctness guidelines, we have a mess of stuff on mediawiki.org, which doesn't seem to be very discoverable, and also doesn't seem to have any teeth to it. We have a modest number of pages marked as "MediaWiki development policies"[2], but of the 5 pages that were there, only 1 of them was about specifically about databases, which is weakly called [[Database optimization]][3]. Since [[Database optimization]] didn't seem to have gotten the review that [[Security for developers]] or [[Gerrit/+2]] had, I changed its status to "{{draft}}" We *do* have something that actually looks more policy-like, which is the "#Database patches" section of the [[Development policy]] page[4] However, it's not clear that the "Development policy" page gets read, and has gotten pretty crufty. It's tempting to put "{{draft}}" on that one too. It seems there are a number of sources we could/should be pulling from to make a database development policy[5] T108255 (or some database-related RfC) should be about pulling all of these together into a coherent set of guidelines. These guidelines should be well-known to frequent committers, and should be well-written for a beginning developer. What we need to actually *do* is not merely enable strict mode, but also cleanup/enforce primary keys (T17441), and start using row-based replication (T109179). Before completing all of this, we need our code review gated on actually making this work. The fact that we have a mess of documentation and norms is the reason why I'm leaning toward this topic for the E66 meeting this week. If you believe we should talk about this, please participate at T108255 and help get this as far along as possible so that we can wrap things up at the E66 meeting, If you believe we should be talking about something else in our IRC meeting, please say so in E66 on Phab. Rob [0] IRC meeting: <https://phabricator.wikimedia.org/E66> "RfC: Enable MariaDB/MySQL's Strict Mode" <https://phabricator.wikimedia.org/T108255> [1] if someone decides to jfdi, I would recommend using T108255 for the "Write/enforce SQL correctness guidelines" RfC, and make a new ticket for the less important "Enable MariaDB/MySQL's Strict Mode". The comments on the ticket seem to relate more to the former than the latter, and the subscribers will probably be more interested in the former. [2] <https://www.mediawiki.org/wiki/Category:MediaWiki_development_policies> [3] <https://www.mediawiki.org/wiki/Database_optimization> [4] <https://www.mediawiki.org/wiki/Development_policy#Database_patches> [5] Other database-related guidance for developers: <https://www.mediawiki.org/wiki/Performance_guidelines> <https://www.mediawiki.org/wiki/Manual:Coding_conventions/Database> <https://www.mediawiki.org/wiki/Architecture_guidelines> <https://wikitech.wikimedia.org/wiki/Schema_changes> _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l