Jump to content

Metrics Platform/Contribute

From Wikitech

This page documents the process for contributing to Metrics Platform tools. The Metrics Platform libraries are open-source and hosted on GitLab at data-engineering/metrics-platform. Metrics Platform is owned by the Data Products team.

Volunteer contributions welcome!

Contributions to the Metrics Platform client libraries are most welcome and appreciated.

Follow the steps below to get started, and feel free to ping any member of the WMF Data Products team (cjming, jennifer_ebe, mforns, phuedx, sfaci, wdoran, xcollazo) on #wikimedia-staff connect for assistance.

Making good merge requests

Ideally, merge requests from volunteers should be:

  • Small and concise: Your merge request should fix a single specific issue, or implement a single specific feature. Be very clear about what your pull request does, and make sure the code is clean and readable.
  • Testable: Whenever possible, include a unit test or two in your merge request.

Please avoid making these types of contributions:

  • Complete overhauls of our code: A merge request that involves hundreds to thousands of lines of changes and touches many files is usually unfeasible because of the amount of reviewing, testing, and adjusting that we would need to do to accept it. Huge fundamental changes to our code are done gradually, and are decided by us internally as a team.
  • Adopt shiny new library X throughout a particular client library: Similarly, adopting a new library (especially one that impacts our code in a fundamental way) is a decision that we make internally as a team. Please ask us first before undertaking such a task.

Open bugs and feature requests

Work items are tracked on our work board in Phabricator. First time Metrics Platform contributors are encouraged to consider a good first task. Unassigned tasks in our backlog could be suitable for development and are roughly organized by descending priority though it is advised to reach out to one of the engineers or managers prior to taking on a given task.