|
| 1 | +# NASA Operational Simulator for Small Satellites (NOS3) Contributing Guide |
| 2 | + |
| 3 | +So you'd like to contribute to NOS3? |
| 4 | +Below are some guidelines for contributors to follow in addition to a standard [code of conduct](https://www.contributor-covenant.org/version/1/4/code-of-conduct/). |
| 5 | +Contributions come in all shapes and sizes. |
| 6 | +We appreciate your help with documentation, unit tests, framework code, continuous-integration, or simply reporting bugs and improvement ideas. |
| 7 | +We can't promise that we'll accept every suggestion or fix every bug in a timely manner but we'll respond to you as quickly as possible. |
| 8 | + |
| 9 | +* [Code of Conduct](#CodeofConduct) |
| 10 | +* [Ways to Contribute](#WaystoContribute) |
| 11 | + * [Discussions and Questions](#DiscussionsandQuestions) |
| 12 | + * [Bug Reports](#BugReports) |
| 13 | + * [Before Reporting a Bug](#BeforeReportingaBug) |
| 14 | + * [Reporting a Bug](#ReportingaBug) |
| 15 | + * [What Happens to my Bug Report?](#WhatHappenstomyBugReport) |
| 16 | + * [New Feature Requests](#NewFeatureRequests) |
| 17 | + * [Before Requesting a New Feature](#BeforeRequestingaNewFeature) |
| 18 | + * [Requesting a New Feature](#RequestingaNewFeature) |
| 19 | + * [What Happens to my Feature Request?](#WhatHappenstomyFeatureRequest) |
| 20 | + * [Pull Requests](#PullRequests) |
| 21 | + * [Before starting your Pull Request](#BeforestartingyourPullRequest) |
| 22 | + * [Creating a Pull Request](#CreatingaPullRequest) |
| 23 | + * [What Happens to My Pull Request?](#WhatHappenstoMyPullRequest) |
| 24 | + |
| 25 | +## <a name='WaystoContribute'></a>Ways to Contribute |
| 26 | + |
| 27 | +### <a name='DiscussionsandQuestions'></a>Discussions and Questions |
| 28 | + |
| 29 | +For discussions, questions, or ideas, [start a new discussion](https://github.com/nasa/nos3/discussions/new) in the cFS repository under the Discussions tab. If you prefer email, you can also [join the cfs community mailing list](README.md#join-the-mailing-list). |
| 30 | + |
| 31 | +### <a name='BugReports'></a>Bug Reports |
| 32 | + |
| 33 | +#### <a name='BeforeReportingaBug'></a>Before Reporting a Bug |
| 34 | +Perform a cursory search to see if the bug has already been reported. |
| 35 | +If a bug has been reported and the issue is still open, add a comment to the existing issue instead of opening a new one. |
| 36 | + |
| 37 | +#### <a name='ReportingaBug'></a>Reporting a Bug |
| 38 | + |
| 39 | +If you find a bug in our code don't hesitate to report it: |
| 40 | + |
| 41 | +1. Open an issue using the bug report template. |
| 42 | +2. Describe the issue. |
| 43 | +3. Describe the expected behavior if the bug did not occur. |
| 44 | +4. Provide the reproduction steps that someone else can follow to recreate the bug or error on their own. |
| 45 | +5. If applicable, add code snippets or references to the software. |
| 46 | +6. Provide the system the bug was observed on including the hardware, operating system, and versions. |
| 47 | +7. Provide any additional context if applicable. |
| 48 | +8. Provide your full name or GitHub username and your company organization if applicable. |
| 49 | + |
| 50 | +#### <a name='WhatHappenstomyBugReport'></a>What Happens to my Bug Report? |
| 51 | + |
| 52 | +1. The NOS3 team will label the issue. |
| 53 | +2. A team member will try to reproduce the issue with your provided steps. If the team is able to reproduce the issue, the issue will be left to be implemented by someone. |
| 54 | + |
| 55 | +### <a name='NewFeatureRequests'></a>New Feature Requests |
| 56 | + |
| 57 | +NOS3 has a multitude of users from different fields and backgrounds. We appreciate your ideas for enhancements! |
| 58 | + |
| 59 | +#### <a name='BeforeRequestingaNewFeature'></a>Before Requesting a New Feature |
| 60 | + |
| 61 | +Perform a cursory search to see if the feature has already been requested. |
| 62 | +If a feature request has been reported and the issue is still open, add a comment to the existing issue instead of opening a new one. |
| 63 | + |
| 64 | +#### <a name='RequestingaNewFeature'></a>Requesting a New Feature |
| 65 | + |
| 66 | +1. Open an issue using the feature request template. |
| 67 | +2. Describe the feature. |
| 68 | +3. Describe the solution you would like. |
| 69 | +4. Describe alternatives you've considered. |
| 70 | +5. Provide any additional context if applicable. |
| 71 | +6. Provide your full name or GitHub username and your company organization if applicable. |
| 72 | + |
| 73 | +#### <a name='WhatHappenstomyFeatureRequest'></a>What Happens to my Feature Request? |
| 74 | + |
| 75 | +1. The project team will label the issue. |
| 76 | +2. The project team will evaluate the feature request, possibly asking you more questions to understand its purpose and any relevant requirements. If the issue is closed, the team will convey their reasoning and suggest an alternative path forward. |
| 77 | +3. If the feature request is accepted, it will be marked for implementation. |
| 78 | + |
| 79 | +### <a name='PullRequests'></a>Pull Requests |
| 80 | + |
| 81 | +#### <a name='BeforestartingyourPullRequest'></a>Before starting your Pull Request |
| 82 | + |
| 83 | +Ready to Add Your Code? Follow GitHub's fork-branch-pull request pattern. |
| 84 | + |
| 85 | +1. Fork the relevant component. |
| 86 | + |
| 87 | +2. Find the related issue number or create an associated issue that explains the intent of your new code. |
| 88 | + |
| 89 | +3. Create a new branch in your fork to work on your fix. We recommend naming your branch `fix-ISSUE_NUMBER-<FIX_SUMMARY>`. |
| 90 | + |
| 91 | +3. Add commits to your branch. For information on commit messages, review [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/). |
| 92 | + |
| 93 | +#### <a name='CreatingaPullRequest'></a>Creating a Pull Request |
| 94 | + |
| 95 | +We recommend creating your pull-request as a "draft" and to commit early and often so the community can give you feedback at the beginning of the process as opposed to asking you to change hours of hard work at the end. |
| 96 | + |
| 97 | +1. For the title, use the title convention `Fix #XYZ, SHORT_DESCRIPTION`. |
| 98 | +2. Describe the contribution. First document which issue number was fixed using the template "Fix #XYZ". Then describe the contribution. |
| 99 | +3. Provide what testing was used to confirm the pull request resolves the link issue. If writing new code, also provide the associated coverage unit tests. |
| 100 | +4. Provide the expected behavior changes of the pull request. |
| 101 | +5. Provide the system the bug was observed on including the hardware, operating system, and versions. |
| 102 | +6. Provide any additional context if applicable. |
| 103 | +7. Provide your full name or GitHub username and your company or organization if applicable. |
| 104 | + |
| 105 | +#### <a name='WhatHappenstoMyPullRequest'></a>What Happens to My Pull Request? |
| 106 | + |
| 107 | +1. The NOS3 team will label and evaluate the pull request in the next configuration control board meeting. |
| 108 | +2. If the pull request is accepted, it will be merged. |
0 commit comments