isbntools
has a very small code base, so it is a good project to begin your
adventure in open-source.
NOTE: By contributing you agree with the license terms (LGPL v3) of the project.
- Make sure you have a GitHub account
- Submit a ticket for your issue or idea (ONE ticket for each issue or idea) (help), on https://github.com/xlcnd/isbntools/issues, (if possible wait for some feedback before any serious commitment... :)
- Fork the repository on GitHub and clone it locally (help).
pip install -r requirements-dev.txt
(at your local directory).- Do your code... (remember the code must run on python 2.7, 3.5+ and be OS independent It is easier if you start to write in python 3 and then adapt for python 2) (you will find Github Actions very handy for testing with this requirement!)
- Write tests for your code using
pytest
and put then in the directoryisbntools/test
- Pass all tests and with coverage > 90%.
Check the coverage locally with the command
pytest -v --cov-config=setup.cfg isbntools
. - Check if all requirements are fulfilled!
- Push your local changes to GitHub and make there a pull request
(help)
using
dev
as base branch (by the way, we follow the fork & pull model with this small change). VERY IMPORTANT: Don't put in the same pull request unrelated changes in the code, make one pull request for each set of related changes!
NOTE: Travis, coverage, flake8 and pylint, have already configuration files adapted to the project.
Your code must be PEP8 compliant
and be concise as possible (use yapf
then check it with
flake8
and pylint
).
Use doc strings (PEP257) for users and comments (few) as signposts for fellow developers. Make your code as clear as possible.
Don't submit pull requests that are only comments to the code that is already in the repo! Don't expect kindness if you do that :) You can comment and give suggestions on the code at the issues page.
No doc tests! Remember point 6 above.
Don't submit pull requests without checking points 8 and 9!
Read the dev notes in the documentation.
Goto issues/enhancement for possible enhancements to the code. If you have some idea that is not there enter your own. Select some focused issue and enter some comments on how you plan to tackle it.
If you don't have experience with these issues, don't be put off by these requirements, see them as a learning opportunity. Thanks!
- https://guides.github.com/activities/hello-world/
- https://guides.github.com/introduction/flow/index.html
- https://www.youtube.com/watch?v=IeW1Irw45hQ
- https://www.youtube.com/watch?v=U8GBXvdmHT4
- https://www.youtube.com/watch?v=9Blbj1HMROU