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

Reply via email to