-
Notifications
You must be signed in to change notification settings - Fork 148
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:
- Fork the relevant SAM repositories.
- 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!).
- Create a pull request.
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:
-
Using the Fork-and-Branch Git Workflow from Scott's Weblog is a good introduction.
-
Git Concepts: Branches, Forks, and Pull Requests from Will Anderson is useful, although the video on the page does not work.
-
3.2 Git Branching - Basic Branching and Merging from the Git documentation.
-
Fork a Repo from GitHub Help.
-
About pull requests from GitHub Help.
For further assistance
SAM Support sam.support@nrel.gov