Hi, everyone.  I'm looking for some clarification about the process whereby
code gets deployed on the Wikimedia cluster.  Not so much the technical
side of things, and in fact, I'd love to keep this conversation
VCS-agnostic.  We'll be moving to git soon and things will change, but
these questions apply regardless.

I've been working to review a new extension that Petr Bena wrote,
InteractiveBlockMessage.  It's a simple little extension that adds some
template magic for blocked users, to facilitate the creation of less
confusing talk page templates.  This bug has links to the relevant code and
on-wiki discussions: https://bugzilla.wikimedia.org/show_bug.cgi?id=32819

Here's my present understanding of the process for community-contributed
code:

1. Discussion happens, a need arises, etc.
2. Someone writes some code, probably in the form of an extension
3. That extension is checked in and makes its way through code review.  All
revisions must be ok'd to deploy.
4. On-wiki consensus is reached regarding deployment, and the discussion
closes.
5. A ticket is created to request deployment on a specific wiki
6. Someone Who's Been Around A While (Tim, Roan, maybe others) looks over
the code and decides it's okay
7. (maybe) A discussion regarding the extension happens here on wikitech-l.
8. The ticket gets picked up, extension gets deployed, ticket gets closed.

(Of course, I'm probably getting this wrong and I'm sure the steps are out
of order.  Please correct.)

This differs rather significantly from the deployment process we've been
following for new code here in the office.  That's more like:

1. Someone decides we need the code.
2. The code gets written
3. Code is checked in, makes its way through CR, must be ok'd before
deployment
4. A deployer schedules a window and deploys it.

Note that I'm leaving out the technical parts (creating a patch, pushing to
prototype, testing, etc...)  That's unnecessary detail here.  This message
concerns only the social part of the procedure.

My specific questions:

Process B is what I'm used to, but it seems that for this extension, it's
process A.  When do we pick one or the other?  Is process A for
community-contributed code, whereas B is for stuff from WMF?  Do things
change when we're deploying a whole new extension?  I understand that this
process is informal, and I'm not necessarily pushing to formalize it, but
maybe a few general guidelines or a minimum standard would help make things
more clear.

The step where Someone Who's Been Around A While reviews the code makes
sense, but it seems to be applied inconsistently, or perhaps the conditions
for that just aren't clear.  When does code need to be run past one of
these very busy people, and when is it okay to push it without?  Is there a
way to indicate which code needs this review, and when it's done aside from
the existing 'OK' status in CR?  Secondly, who *are* these people?  I've
heard Roan and Tim so far, but I bet there are more.

Is a discussion on wikitech-l generally part of the process in addition to
the on-wiki discussion?  Is that only for new extensions, or for other
types of deployment as well?

I would love to get this worked out and document it, so community
developers can better understand how to get their code deployed.  Of
course, if this is already documented somewhere please send me a link.  :)

-Ian
_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to