The SAM team welcomes your contribution to the project!
You can contribute to SAM by letting us know about problems or suggesting new features, or by making your own changes or additions to the code. You may want to report or help us fix an issue someone else reported, fix an issue you discovered, or add a new feature to SAM. If you have a question about using SAM, you can ask us on the SAM support forum.
In the effort to make SAM easy to contribute to, the contribution process is composed of four simple steps:
- Click through to sign the Contributor License Agreement.
- 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. 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.
For further assistance
Nicholas DiOrio SAM Software Engineering [email protected] 303.384.7359
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.