Community Tech/Development

From Meta, a Wikimedia project coordination wiki
Jump to: navigation, search

This is a page for Community Tech developers to share information about coding conventions, workflows, etc. This is intended to supplement the manual on mediawiki.org.

Github workflow[edit]

Many tools and bots are hosted on Github, outside of the WMF's Gerrit patch review system. The intent of this process is to enable work on projects hosted on GitHub to be reviewed and merged quickly when colleagues may not be receiving notifications automatically, as they would through the integrated Phabricator/Gerrit/git review system.

Process[edit]

  • Developer forks the project in question--to their own repository, or as a subfolder of community-tech-tools.
  • Developer may handle branches as they like, although they should strongly consider starting a branch for each task worked on with a descriptive name
  • When work is complete, submit a pull request to the main repository.
    • Or the master branch of your own repo, but this will mean it has to be merged twice.
    • Ping possible reviewers in the comment or ask them to watch that repository. If no response, nudge your coworkers and see if they are getting notifications (or getting swamped by notifications).
  • Move the Phabricator task to the "Needs review/feedback" column
  • People review your pull request, adding general or line comments. If it needs more work, move the card back to "In development".
  • Comments are addressed through discussion on those comments or through new commits pushed to that branch. There is no need to amend/squash the first commit.
  • When the developer believes all comments have been addressed, ask for a re-check, and move the card back to "Needs review/feedback".
  • If all comments have been addressed, reviewer comments "+2" on the PR, which can then be merged by anyone with permissions. It is ok to merge your own (non-trivial) pull request if it has been through this review process.