Hi Ian,
Thanks for sending this mail! (I prodded him to do it in a private thread run amok)
More inline...
On Wed, Dec 14, 2011 at 5:05 PM, Ian Baker ian@wikimedia.org wrote:
[Process A]
- Discussion happens, a need arises, etc.
- Someone writes some code, probably in the form of an extension
- 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. [....] [Process B]
- Someone decides we need the code.
- The code gets written
- Code is checked in, makes its way through CR, must be ok'd before
deployment 4. A deployer schedules a window and deploys it.
[....]
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?
Not all community-contributed code has been subjected to process A, and not all WMF-developed code has skated by on process B. However, it's true that it generally looks a lot harder for community-contributed stuff to make it through.
It basically boils down to this: does the person deploying it feel comfortable deploying it? Well, here's what they're afraid of: a. Is this something that is going to melt down the servers on my watch? b. Is this something that is going to open up a big security hole in the site? c. Is this something that is going to cause a lot of editor/reader angst and drama? d. Is this something that runs against some WMF policy, stated direction, or unstated preference by one of the powers that be?
Process B is generally the process that occurs when the person deploying it isn't terribly afraid of any of the above. If you find yourself in process A, chances are, it's because the person deploying doesn't feel like it's been vetted to the degree necessary that they're going to put themselves on the line by deploying it.
I've got more thoughts, but rather than trying to get everything in one email, I'll stop and send now.
Rob p.s. I'd suggest a separate thread about InteractiveBlockMessage, rather than lumping it into a meta conversation about deployment process.