Development¶
Get Started!¶
Ready to contribute? Here’s how to set up eggshell for local development.
Fork the eggshell repo on GitHub.
Clone your fork locally:
$ git clone git@github.com:your_name_here/eggshell.git
Install your local copy into a conda environment. Assuming you have conda installed, this is how you set up your fork for local development:
$ cd eggshell/ $ conda env create -f environment.yml $ conda activate eggshell $ pip install -r requirements_dev.txt # install develop tools like pytest $ python setup.py develop
Create a branch for local development:
$ git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
When you’re done making changes, check that your changes pass flake8 and the tests:
$ flake8 $ pytest
Or use the Makefile:
$ make lint $ make test $ make test-all
Commit your changes and push your branch to GitHub:
$ git add . $ git commit -m "Your detailed description of your changes." $ git push origin name-of-your-bugfix-or-feature
Submit a pull request through the GitHub website.
Write Documentation¶
You can find the documentation in the docs/source folder. To generate the Sphinx documentation locally you can use the Makefile:
$ make docs
Pull Request Guidelines¶
Before you submit a pull request, check that it meets these guidelines:
- The pull request should include tests.
- If the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a docstring, and add the feature to the list in README.rst.
- The pull request should work for Python 2.7, 3.6 and 3.7, and for PyPy. Check https://travis-ci.org/bird-house/eggshell/pull_requests and make sure that the tests pass for all supported Python versions.
Deploying¶
A reminder for the maintainers on how to deploy. Make sure all your changes are committed (including an entry in CHANGES.rst). Then run:
$ bumpversion patch # possible: major / minor / patch
$ git push
$ git push --tags
Travis will then deploy to PyPI if tests pass.