|
| 1 | +.. _contributing: |
| 2 | + |
| 3 | +Contributing |
| 4 | +============ |
| 5 | + |
| 6 | +Encouraging more people to help develop pvlib-python is essential to our |
| 7 | +success. Therefore, we want to make it easy and rewarding for you to |
| 8 | +contribute. |
| 9 | + |
| 10 | + |
| 11 | +Easy ways to contribute |
| 12 | +----------------------- |
| 13 | + |
| 14 | +Here are a few ideas for you can contribute, even if you are new to |
| 15 | +pvlib-python, git, or Python: |
| 16 | + |
| 17 | +* Make `GitHub issues <https://github.com/pvlib/pvlib-python/issues>`_ |
| 18 | + and contribute to the conversation about how to resolve them. |
| 19 | +* Read issues and pull requests that other people created and |
| 20 | + contribute to the conversation about how to resolve them. |
| 21 | +* Improve the documentation and the unit tests. |
| 22 | +* Improve the IPython/Jupyter Notebook tutorials or write new ones that |
| 23 | + demonstrate how to use pvlib-python in your area of expertise. |
| 24 | +* If you have MATLAB experience, you can help us keep pvlib-python |
| 25 | + up to date with PVLIB_MATLAB or help us develop common unit tests. |
| 26 | + For more, see `Issue #2 <https://github.com/pvlib/pvlib-python/issues/2>`_ |
| 27 | + and `Issue #3 <https://github.com/pvlib/pvlib-python/issues/3>`_. |
| 28 | +* Tell your friends and colleagues about pvlib-python. |
| 29 | +* Add your project to our |
| 30 | + `Projects and publications that use pvlib-python wiki |
| 31 | + <https://github.com/pvlib/pvlib-python/wiki/Projects-and-publications- |
| 32 | + that-use-pvlib-python>`_. |
| 33 | + |
| 34 | + |
| 35 | +How to contribute new code |
| 36 | +-------------------------- |
| 37 | + |
| 38 | +Contributors to pvlib-python use GitHub's pull requests to add/modify |
| 39 | +its source code. The GitHub pull request process can be intimidating for |
| 40 | +new users, but you'll find that it becomes straightforward once you use |
| 41 | +it a few times. Please let us know if you get stuck at any point in the |
| 42 | +process. Here's an outline of the process: |
| 43 | + |
| 44 | +#. Create a GitHub issue and get initial feedback from users and |
| 45 | + maintainers. If the issue is a bug report, please include the |
| 46 | + code needed to reproduce the problem. |
| 47 | +#. Obtain the latest version of pvlib-python: Fork the pvlib-python |
| 48 | + project to your GitHub account, ``git clone`` your fork to your computer. |
| 49 | +#. Make some or all of your changes/additions and ``git commit`` them to |
| 50 | + your local repository. |
| 51 | +#. Share your changes with us via a pull request: ``git push`` your |
| 52 | + local changes to your GitHub fork, then go to GitHub make a pull |
| 53 | + request. |
| 54 | + |
| 55 | +The Pandas project maintains an excellent `contributing page |
| 56 | +<https://github.com/pydata/pandas/wiki/Contributing>`_ that goes into |
| 57 | +detail on each of these steps. Also see GitHub's `Set Up Git |
| 58 | +<https://help.github.com/articles/set-up-git/>`_ and `Using Pull |
| 59 | +Requests <https://help.github.com/articles/using-pull-requests/>`_. |
| 60 | + |
| 61 | +Note that you do not need to make all of your changes before creating a |
| 62 | +pull request. Your pull requests will automatically be updated when you |
| 63 | +commit new changes and push them to GitHub. This gives everybody an easy |
| 64 | +way to comment on the code and can make the process more efficient. |
| 65 | + |
| 66 | +We strongly recommend using virtual environments for development. |
| 67 | +Virtual environments make it trivial to switch between different |
| 68 | +versions of software. This `astropy guide |
| 69 | +<http://astropy.readthedocs.org/en/latest/development/workflow/ |
| 70 | +virtual_pythons.html>`_ is a good reference for virtual environments. If |
| 71 | +this is your first pull request, don't worry about using a virtual |
| 72 | +environment. |
| 73 | + |
| 74 | +You must include documentation and unit tests for any new or improved |
| 75 | +code. We can provide help and advice on this after you start the pull |
| 76 | +request. |
| 77 | + |
| 78 | +The maintainers will follow same procedures, rather than making direct |
| 79 | +commits to the main repo. Exceptions may be made for extremely minor |
| 80 | +changes, such as fixing documentation typos. |
| 81 | + |
| 82 | + |
| 83 | +This documentation |
| 84 | +------------------ |
| 85 | +If this documentation is unclear, help us improve it! Consider looking |
| 86 | +at `IPython <https://github.com/ipython/ipython/wiki/Dev:-Index>`_, |
| 87 | +`pandas <https://github.com/pydata/pandas/wiki>`_, and |
| 88 | +`Sandia-Labs/PVLIB_Python#33 <https://github.com/Sandia-Labs/ |
| 89 | +PVLIB_Python/issues/33>`_ for inspiration. |
0 commit comments