Contributing

Thank you for considering contributing to this project! We welcome contributions large and small, from documentation to code. Following these guidelines helps communicate that you respect the time of the developers managing and developing this open source project. In return, we will recriprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
There are many ways to contribute, from advocacy through writing tutorials or blog posts, improving or translating the documentation, submitting bug reports and feature requests, or writing code which can be incorporated into future Marrow Mongo releases.

Table of Contents

Asking Questions

The first step in determining how best to tackle a concern is to ask about it. There are a number of avenues available for discussion and support.
  • Freenode IRC
    Likely the best way to get fast turnaround on inquiries is through the Marrow Open Source Collective community on Freenode IRC. Point your IRC client at the #webcore channel on chat.freenode.net:6667 (SSL; non-SSL port 6667) or, if you are viewing this on a medium which supports it and have an IRC client installed which recognizes irc:// URLs, just use this link.
    If you have general Python questions, or general MongoDB questions, ##python-friendly, #python, or #mongodb, as appropraite, may be more active. Stack Overflow is also worth considering.
  • Stack Overflow
    To help develop a comprehensive knowledgebase of problems and solutions, with good metadata, user incentives, and fancy native apps, you can utilize Stack Overflow to ask your questions. Just remember to tag your question marrow.mongo so that it can be found.
  • GitHub Issues
    For problems relating to bugs or enhancements witin Marrow Mongo itself, please utilize the Marrow Mongo Issue Tracker provided by GitHub. If you have identified an issue and have already begun work on a feature branch, just issue a pull request instead of creating a ticket, then creating a pull request.
    Please do not use the issue tracker for general support questions. IRC or Stack Overflow are better resources for quick questions or longer questions, respectively.

First Steps

  • Triage
    If you find an unreviewed ticket reporting a bug, try to reproduce it. If the problem appears valid make a note that you confirmed the bug.
  • Help Wanted
    Look through the Help Wanted issues on GitHub. Look for tickets with greater numbers of reactions and comments to help gauge impact. If you feel it's a problem you can help solve, ask to be assigned.
  • Write Some Documentation
    We like to think that Marrow Mongo's documentation is excellent, but there's always room for improvement. Did you find a typo? Do you feel a certain section is unclear? Let us know by leaving a comment on the web version of this document—hover over a paragraph, use the speech bubble on the right—or feel free to contrbute to the book.

Guidelines

  • Start small.
    It'll be less overwhelming to tackle a small, focused problem, and easier to get feedback.
  • Leave feedback.
    See an idea being discussed, or a work-in-progress you feel could use your input? Do not hesitate to comment anywhere at any time.
  • Large (especially breaking) changes should be discussed.
    Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback.
  • Be excellent to each-other.
    Be welcoming to newcomers and encourage diverse new contributors from all backgrounds. See the Python Community Code of Conduct.
  • Code quality is a key priority.
    We love code. To ensure our code is understandable and maintainable long into the future it is important that changes:
    1. 1.
      Ensure cross-runtime (CPython, Pypy) and cross-version (2.7, 3.x) compatibility.
    2. 2.
      Ensure code coverage and code health do not decrease.
    3. 3.
      Ensure changes are up to date with their parent branch and that they do not conflict.

Donations and Patreon Support

Financial contributions are welcome. To arrange a one-time donation, please contact GothAlice on IRC (see details above) and for more ongoing support we have Patreon prepared for you. We have rewards (such as inclusion in the Patrons team on GitHub and our eternal gratitude) and goals, so please give it a look; every cent helps pay for infrastructure costs and caffeine. So much caffine.
If at any point you wish or need to cease recurring donations, do not feel bad. Don't put yourself out on our account, and thank you!