Gerrit/Project ownership

__NEWSECTIONLINK__ This page queues individuals' requests to be added to the Gerrit project owner groups for specific Gerrit projects (each of which corresponds to a Git repository). A Gerrit project owner has the power to approve changes for merger into that Gerrit project's master branch, and to veto changes (see +2).

"When/how we'll add, remove people from Gerrit project owner groups" has procedural details. Sumana Harihareswara will regularly look at new requests for project owner membership and contact the existing project owners. If there is consensus from the existing project owners, then we'll approve the candidate. For each new candidate the process shouldn't take more than two weeks, and usually much less. Ownership can be revoked.

If your codebase/extension/tool isn't in Git yet, use this form to create a new Gerrit project: Gerrit/New repositories

To see the current list of Gerrit project owners for a specific Gerrit project, visit https://gerrit.wikimedia.org/r/#/admin/groups/.

= Ownership structure = Example: an extension is named foo.
 * The Gerrit group "foo" should usually be an owner of the Gerrit project "foo."
 * Sometimes, meta-groups will be included in the group. This is for people have ownership over multiple extensions, so you can add/remove members in one place.
 * Rights to the group may be inherited from other groups (Look for a "Rights Inherit From:" in the project access.)

Specific example: the project "mediawiki/extensions/DonationInterface" is owned by group "extension-DonationInterface." This group includes the meta-group "fundraising." Also members of the group "mediawiki" has ownership via "Rights Inherit From: "mediawiki/extensions access"

By keeping the naming convention ("extensions/foo" is owned by group "extension-foo"), it'll make the "automatically setup a repo" process much more scriptable when we hit that bridge.

(Note to Gerrit group creators: remember to check the "Make group visible to all registered users." checkbox.)

= To make a new Project Owner =


 * Create a group
 * Give it ownership of a Project
 * Anyone in that group can now add more owners via https://gerrit.wikimedia.org/r/#/admin/projects/ (but we prefer to keep that process public via Git/Gerrit project ownership)
 * Click Groups
 * As long as you are a member of the group, you can edit the group
 * example: https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki,access

MediaWiki core
We are maintaining a "WMF" branch of mediawiki/core.git. We use submodules for deployed extensions, and can pull from master as regularly as we want for deployments. At the start of the migration to git, the project owners of this branch are going to be the people who have the ability to deploy code to Wikimedia Foundation servers. gerrit will offer a list of the "Gerrit project owners" for this branch, except for the Operations (system administration) group, which is an LDAP group. Every member of the Wikimedia Foundation operations team will also be in the Gerrit project owners group insofar as they have code review rights globally, but in practice will rarely review code. We may add some existing code reviewers to this Gerrit project owners group. Details; you can request to be added.

At the start of the migration, this list of Gerrit project owners for the WMF branch is also the list of Gerrit project owners for the master branch. However, eventually, we will add to the list of Gerrit project owners for master, using as criteria the number and quality of developers' previous commits and code reviews.

Details and procedure for adding and removing people from the Gerrit project owners groups.

MediaWiki has release branches (19 so far) for core, and master (the default branch previously known as "trunk" in SVN). Example: ("heads" is gitweb's term for branches). MediaWiki core and WMF-deployed extensions will be tagging releases just as we did in Subversion, except they'll be Git tags instead of SVN tags. Any other extension will make its own decisions regarding tagging.

MediaWiki extensions that the Wikimedia Foundation deploys
Same procedure as for MediaWiki core, and the same Gerrit project owner groups.

Other MediaWiki extensions
Every extension author can choose between two choices here for non-master branches: the gated-trunk/push-for-review model, and a straight push model. For any given extension, we will honor the wishes of the person/s listed as the main author on the extension's mediawiki.org page.


 * The gated-trunk/push-for-review is the model that we are using for MediaWiki core, as mentioned above. A Gerrit project owners group (plus the above mentioned Gerrit project owners group for MediaWiki core) will be able to "+2" (approve and merge) changes to their extensions.  The extension author(s) will be able to define a Gerrit project owners group and add others to it.


 * The straight push model is similar to how we did things in Subversion; anyone can suggest a change and submit a pull request, and it will automatically be approved and merged.

Master branches must go through Gerrit and cannot be straight push. This is necessary to facilitate a number of Gerrit features, including replication, updating of the extension meta-repository, and ability of Translatewiki to provide localization updates.

We could define groups to make this easier for batches of extensions (e.g. SMW developers). Chad will offer your community a choice. Please let Chad what you would like via Git/New repositories.

Other Gerrit projects
Same procedure as for "other MediaWiki extensions" above.

= Requests =

[ Add a request]

A bunch of new groups
I'd like to have an $extension-trusted group (initially empty and with no rights assigned) for the following extensions: Validator, Maps, SemanticMaps, Push, LiveTranslate, SubPageList, Spark, IncludeWP, Survey, DidYouKnow, Gitweb (once created), DataValues (once created), Diff, SemanticWatchlist, SemanticImageInput and SemanticBundle.

These groups would be owned by their respective $extension-owner group.

This will allow me to manage my extension myself without posting a request here each time someone should get access :) --Jeroen De Dauw (talk) 19:25, 17 August 2012 (UTC)

Comments

 * Support. --siebrand (talk) 16:06, 21 August 2012 (UTC)
 * Since these are non-deployed extensions, I think this is fine. But I'd like to get input from Chad before we start introducing new group structures. --Catrope (talk) 18:02, 21 August 2012 (UTC)
 * I don't *like* it as proposed since this is very quickly going to explode the number of groups we have. Ideally all extension-$name groups should be owned by an extension-$name-owner (other than deployed exts, perhaps). The reason it's all currently owned by the "Project & Group Creators" was so people could process this page and add new users to their respective groups. What I'd like is either A) A way to manage all groups without giving out admin privs, or B) Multiple owners of groups. The former is probably easier. This all being said, perhaps we can go ahead with this structure for a few non-deployed extensions anyway and see if we really need this page at all for granting access to those. ^demon (talk) 14:05, 22 August 2012 (UTC)
 * Well then I suppose we'd be supportive of adding Jeroen as the owner of all those groups? Also, it seems to me that there are a number of them should be in some metagroup fro SMW. Tychay (talk) 20:56, 5 October 2012 (UTC)
 * Chad, sorry for being obtuse, but when you say "perhaps" is that a go-ahead for me to go ahead and create the "extension-Validator-trusted", "extension-Maps-trusted", etc. Gerrit groups, and when necessary, the "extension-[name]" groups to own the "trusted" groups? Thanks. Sharihareswara (WMF) (talk) 15:44, 8 October 2012 (UTC)
 * Jeroen, I set up the relevant groups for Validator and I think I set them up how you'd like. Is that right? Tried to ping you in IRC, haven't gotten a response -- let me know if that's the right model and I'll do the rest of the groups. Sharihareswara (WMF) (talk) 23:52, 9 November 2012 (UTC)

Thanks for setting that group up Sumanah. You made the group owner of itself. If this is an acceptable thing to do, then perhaps there is no point in having such extra groups, as you could just make the extension-name groups own themselves, solving the issue with less work and clutter. Think chad had some reason to not do this though. --Jeroen De Dauw (talk) 20:15, 12 November 2012 (UTC)
 * Yeah, the reason was that it made it impossible for people in the "Project and Group Creators" group to manage any group member. This is being solved in the near future. ^demon[omg plz] 15:58, 21 February 2013 (UTC)

Wikinaut for extension UserMerge
Hereby I apply gerrit project ownership for the extension UserMerge, which I maintain since a while see https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/UserMerge and Extension:UserMerge. Further projects which I already maintain since a long time are OpenID, AJAXPoll, EtherpadLite, RSS, WikiArticleFeeds.

To support my request: there is a relationship between UserMerge and OpenID for example, when merging/deleting an account. I also added the needed hook some time ago to mw core.

--Wikinaut (talk) 19:18, 30 May 2013 (UTC)
 * Bawolff (talk) 22:51, 3 June 2013 (UTC)
 * Weak - I've worked with Wikinaut a bit on Extension:OpenID. He's a diligent maintainer, but he tends to do a lot of self +2ing. While I don't mind this much in most extensions, it seems Extension:UserMerge is deployed to WMF wikis (specifically WikiVoyage). I would support this if somebody else was added to the project with him. Parent5446 (talk) 03:01, 4 June 2013 (UTC)
 * @Parent: the +2ing was at least in some cases done after having had security chats with Ryan and CSteipp - who gave their "ok, go on". Just as a comment. --Wikinaut (talk) 19:28, 4 June 2013 (UTC)
 * In my opinion, +2'ing is ok if he's the only maintainer (or there is agreement among the maintainers that that is ok), and the extension is not being used by WMF. I don't see anything wrong with non-wmf extensions using different code review strategies (+2'ing is of course never ok on WMF extensions). Bawolff (talk) 21:04, 13 June 2013 (UTC)


 * Weak I was just witness to an instance where Wikinaut asked for advice, implemented the solution incorrectly, then self-merged. When someone else is involved in a change it's almost certainly important to wait for some followup feedback. That said I can't strong-oppose since it was basically an extension he builds on his own, hence "weak". --MarkTraceur (talk) 00:51, 5 June 2013 (UTC)
 * In my view not yet experienced enough in web development (PHP/JS) and MediaWiki-specific interfaces to review and approve code changes to Wikimedia-deployed software. Krinkle (talk) 04:42, 9 June 2013 (UTC)

Jan Gerber (J) for Score extension
Jan has been the primary developer working on this for the past month or so. -- RobLa (talk) 15:19, 12 June 2013 (UTC)


 * Bawolff (talk) 21:31, 13 June 2013 (UTC)
 * -Tychay (talk) 17:10, 17 June 2013 (UTC)
 * Greg (WMF) (talk) 20:54, 26 June 2013 (UTC)
 * ✅ Thanks, Jan! Sharihareswara (WMF) (talk) 21:10, 1 July 2013 (UTC)

Jack Phoenix for Extension:YouTube
Adding this request for him because he was a little bitter about having to request access to what is basically his own extension (my guess would be it simply wasn't migrated to git properly - probably due to how it was requested? - but whatever the case I think we can appreciate how that might be somewhat alienating). He was the one who created the original SVN for it when he took the Wikia version and fixed it up for more general use, and as far as I know he's also been the primary checking that it still works and maintaining it since (not that it's ever needed much). How it got migrated aside, we probably do want to add him back now so he can continue to do that.

Also I'm not sure why extension-NamespacePaths is currently the owner (or an owner at all), since that's a completely different extension that doesn't appear to be at all related, nor has its only member ever been involved with this extension that I can tell, so we may want to remove that as well.

Thanks. -— Isarra ༆ 21:12, 5 October 2013 (UTC)