Skip to content

Contributing to pvlib python

Will Holmgren edited this page Jun 21, 2015 · 3 revisions

Encouraging more people to help develop pvlib-python is essential to our success. Therefore, we want to make it easy and rewarding for people to contribute.

Easy ways to contribute

Here are a few ideas for how people new to pvlib-python, git, or even Python itself can help.

  • Make issues and contribute to the conversation about how to resolve them.
  • Read issues and pull requests that other people created and contribute to the conversation about how to resolve them.
  • Improve the documentation and the unit tests.
  • Improve the IPython Notebook tutorials or write new ones that demonstrate how to use pvlib-python in your area of expertise.
  • If you have MATLAB experience, you can help us keep pvlib-python up to date with PVLIB_MATLAB or help us develop common unit tests. For more, see here and here.
  • Tell your friends and colleagues about pvlib-python.
  • Add your project to our Projects and publications that use pvlib-python wiki.

How to contribute new code

Contributors use GitHub's pull requests to add/modify pvlib-python's source code. The GitHub pull request process can be intimidating for new users, but you'll find that it becomes much easier once you use it a few times. Please let us know if you get stuck at any point in the process. Here's an outline of the process:

  1. Create a GitHub issue and get initial feedback from users and maintainers. If the issue is a bug report, please include the minimum amount of code needed to reproduce the problem.
  2. Obtain the latest version of pvlib-python: Fork the pvlib-python project to your GitHub account, git clone your fork to your computer.
  3. Make some or all of your changes/additions and git commit them to your local repository.
  4. Share your changes with us via a pull request: git push your local changes to your GitHub fork, then go to GitHub make a pull request.

The Pandas project maintains an excellent help page that goes into detail on each of these steps. Also see GitHub's Set Up Git and Using Pull Requests.

Note that you do not need to make all of your changes before creating a pull request. Pull requests are automatically updated when you commit new changes and push them to your repository. This gives everybody an easy way to comment on the code and can make the process more efficient.

We strongly recommend using virtual environments for development. Virtual environments make it trivial to switch between different versions of software. This astropy guide is a good reference for virtual environments. If this is your first pull request, don't worry about using a virtual environment.

You must include documentation and unit tests for any new or improved code. We can provide help and advice on this after you start the pull request.

The maintainers will follow same procedures, rather than making direct commits to the main repo. Exceptions may be made for extremely minor changes, such as fixing documentation typos.

Releases

See our Release procedures. Also see the pandas Release Checklist.

This wiki

If this wiki is unclear, help us improve it! Consider looking at IPython, pandas, and Sandia-Labs/PVLIB_Python#33 for inspiration.

Clone this wiki locally