Contributing to MongoEngine =========================== MongoEngine has a large `community `_ and contributions are always encouraged. Contributions can be as simple as minor tweaks to the documentation. Please read these guidelines before sending a pull request. Bugfixes and New Features ------------------------- Before starting to write code, look for existing `tickets `_ or `create one `_ for your specific issue or feature request. That way you avoid working on something that might not be of interest or that has already been addressed. If in doubt post to the `user group ` Supported Interpreters ---------------------- MongoEngine supports CPython 2.7 and newer. Language features not supported by all interpreters can not be used. Please also ensure that your code is properly converted by `2to3 `_ for Python 3 support. Style Guide ----------- MongoEngine aims to follow `PEP8 `_ including 4 space indents. When possible we try to stick to 79 character line limits. However, screens got bigger and an ORM has a strong focus on readability and if it can help, we accept 119 as maximum line length, in a similar way as `django does `_ Testing ------- All tests are run on `Travis `_ and any pull requests are automatically tested by Travis. Any pull requests without tests will take longer to be integrated and might be refused. You may also submit a simple failing test as a PullRequest if you don't know how to fix it, it will be easier for other people to work on it and it may get fixed faster. General Guidelines ------------------ - Avoid backward breaking changes if at all possible. - Write inline documentation for new classes and methods. - Write tests and make sure they pass (make sure you have a mongod running on the default port, then execute ``python setup.py nosetests`` from the cmd line to run the test suite). - Ensure tests pass on every Python and PyMongo versions. You can test on these versions locally by executing ``tox`` - Add enhancements or problematic bug fixes to docs/changelog.rst - Add yourself to AUTHORS :) Documentation ------------- To contribute to the `API documentation `_ just make your changes to the inline documentation of the appropriate `source code `_ or `rst file `_ in a branch and submit a `pull request `_. You might also use the github `Edit `_ button.