Skip to content

Contribution Policy

Paul Gilman edited this page Apr 23, 2021 · 13 revisions

SAM Contribution Policy

The SAM team welcomes your contribution to the project!

This policy applies to the SAM, SSC, WEX, LK, and PySAM repositories.

If you contribute code, you agree that your contribution may be incorporated into SAM and made available under the SAM license in compliance with standard GitHub terms of service.

In the effort to make SAM easy to contribute to, the contribution process is composed of three simple steps:

  1. Fork the relevant SAM repositories.
  2. Make your modifications. For large new features, we suggest that you email us before you start working so that we coordinate your contribution (see more info for large contributions below!).
  3. Create a pull request.

Additional contribution help

Some additional details on what makes it more likely that your code will be readily accepted into the main development version of SAM.

For large contributions

If your contribution is larger (e.g. a new feature), it helps us to have a detailed description of the project that you are proposing, the precise functionalities that you plan to implement as part of the project, and a time frame for implementation. After we review your materials, we may ask you to revise your materials. For the greatest likelihood of success, it would be great to align on functionalities to be addressed.

Code quality and testing

We want SAM to adhere to high quality standards. Please try and broadly adhere to the same style of code in the area you will be working. You can do this automatically with an editorconfig file. Any bugs, either discovered by you, us, or any users will be tracked on the GitHub issues page for the specific repository (SSC or SAM). We request you that you take full responsibility for correcting bugs. We'd also really love for you to write a new unit test for the code you contribute!

Documentation

Proper documentation is crucial for our users; without it users will not know how to use your contribution! If you add a new feature to SAM, we please ask you to submit some documentation as a Word, LaTex, Markdown or simple text document that our team will integrate SAM’s Help system.

Resources for learning GitHub

If you are new to GitHub, you can find helpful articles to help you learn how it works on the web. Some examples are:

For further assistance

SAM Support sam.support@nrel.gov