Contributing guidelines

Questions, feature requests, bug reports, and feedback…

…should all be reported on the Github Issue Tracker .

Setting up for local development

  1. Fork marshmallow-sqlalchemy on Github.

$ git clone https://github.com/marshmallow-code/marshmallow-sqlalchemy.git
$ cd marshmallow-sqlalchemy
  1. Install development requirements. It is highly recommended that you use a virtualenv. Use the following command to install an editable version of marshmallow-sqlalchemy along with its development requirements.

# After activating your virtualenv
$ pip install -e '.[dev]'
  1. Install the pre-commit hooks, which will format and lint your git staged files.

# The pre-commit CLI was installed above
$ pre-commit install

Pull requests

  1. Create a new local branch.

# For a new feature
$ git checkout -b name-of-feature dev

# For a bugfix
$ git checkout -b fix-something 1.2-line
  1. Commit your changes. Write good commit messages.

$ git commit -m "Detailed commit message"
$ git push origin name-of-feature
  1. Before submitting a pull request, check the following:

  • If the pull request adds functionality, it is tested and the docs are updated.

  • You’ve added yourself to AUTHORS.rst.

  1. Submit a pull request to marshmallow-code:dev or the appropriate maintenance branch. The CI build must be passing before your pull request is merged.

Running tests

To run all tests:

$ pytest

To run formatting and syntax checks:

$ tox -e lint

(Optional) To run tests in all supported Python versions in their own virtual environments (must have each interpreter installed):

$ tox

Documentation

Contributions to the documentation are welcome. Documentation is written in reStructuredText (rST). A quick rST reference can be found here. Builds are powered by Sphinx.

To build and serve the docs in “watch” mode:

$ tox -e docs-serve

Changes to documentation will automatically trigger a rebuild.