Skip to content

Contributing to WiredTiger

Etienne Petrel edited this page Jan 5, 2023 · 5 revisions

This wiki is a guide to contributing to the WiredTiger storage engine. The code in this repository is primarily maintained by MongoDB. For general contact details and references to resources please see the README.

The WiredTiger storage engine is written in C with an extensive suite of tests in Python and other languages.

Contributing to WiredTiger

The engineers working full-time on WiredTiger and MongoDB welcome community contributions! If you’re interested in making a contribution to WiredTiger, please follow the steps below before you start writing any code:

  1. Sign the contributor's agreement. This will allow us to review and accept contributions.
  2. Reach out to us to discuss your contribution. Either find an open JIRA ticket for an existing issue and comment on it, or create a new JIRA ticket that describes the change you would like to work on. If in doubt feel free always to create a new ticket.
    • New to WiredTiger development? The WT JIRA project, tickets of appropriate complexity for new engineers are marked with a “neweng” label.
  3. Begin a discussion on the ticket describing the intended changes. WiredTiger developers can help hash out the approach and make sure everyone is on the same page before too much time is spent writing the code changes and associated tests.
    • For bug fixes, the discussion should be a brief one to confirm that your proposed fix makes sense. It is also required to have a reproducer to verify the changes.
    • All syntactic and new feature changes go through our design review process. A WiredTiger engineer will first discuss your proposal to confirm that the implementation fits our product vision. Once you have agreed, this engineer will act as the 'champion' for your proposal in our internal design review process.
  4. Make the code changes and open a pull request. Note that almost all changes require tests to ensure that the code works as expected. MongoDB developers will review the code changes and run our automation tests against a patch build. If everything looks good, the pull request can be merged.

Other Resources for help with WiredTiger

Documentation

https://source.wiredtiger.com/

User Group

https://groups.google.com/group/wiredtiger-users