Skip to content

Latest commit

 

History

History
89 lines (57 loc) · 3.21 KB

CONTRIBUTING.rst

File metadata and controls

89 lines (57 loc) · 3.21 KB

Contributing

As an open source project, Mesa welcomes contributions of many forms.

In no particular order, examples include:

  • Code patches
  • Bug reports and patch reviews
  • New features
  • Documentation improvements
  • Tutorials

No contribution is too small. Although, contributions can be too big, so let's discuss via the dev email list OR an issue.

To submit a contribution

  • Create a ticket for the item that you are working on.
  • Fork the Mesa repository.
  • Create a new branch if you aren't contributing to an existing branch.
  • Edit the code.
  • If implementing a new feature, include some documentation.
  • Make sure that your submission passes the Travis build. See "Testing and Standards below".
  • Submit as a pull request.
  • Describe the change w/ ticket number(s) that the code fixes.

Testing and Code Standards

As part of our contribution process, we practice continuous integration and use Travis to help enforce best practices.

If you're changing previous Mesa features, please make sure of the following:

  • Your changes pass the current tests.
  • Your changes pass our style standards.
  • Your changes don't break the models or your changes include updated models.
  • Additional features or rewrites of current features are accompanied by tests.
  • New features are demonstrated in a model, so folks can understand more easily.

To ensure that your submission will not break the build, you will need to install Flake8 and Nose.

pip install flake8 nose

We test by implementing simple models and through traditional unit tests in the tests/ folder. The following only covers unit tests coverage. Ensure that your test coverage has not gone down. If it has and you need help, we will offer advice on how to structure tests for the contribution.

nosetests --with-coverage --cover-package=mesa

With respect to code standards, we follow PEP8 and the Google Style Guide. If the command below generates errors, fix all errors that are returned.

flake8 . --ignore=F403,E501,E123,E128 --exclude=docs,build

Licensing

The license of this project is located in LICENSE. By submitting a contribution to this project, you are agreeing that your contribution will be released under the terms of this license.

Special Thanks

A special thanks to the following projects who offered inspiration for this contributing file.