Open Source Submission Guidelines - nasa/gunns GitHub Wiki

GUNNS is an open source project with NASA reserving authority over the central repository. We encourage the user community to share their improvements to this code base with us and each other so we can all benefit from each other’s efforts.

Requirements of new feature code

We try to limit what’s in the GUNNS repository to only generic models that can be reused across multiple projects. This keeps the GUNNS repository code base small and maintainable while maximizing its value for everyone.

Typically users will extend GUNNS for their own projects by writing new link or spotter classes to do specific things they need. When you develop these new classes, consider whether you want to share them with the community. If you want to share and your code satisfies the requirements listed below, then we welcome you to add it to the GUNNS repository in the appropriate place under the gunns/aspects/ folder, and submit it with a merge request.

New code should:

  • Conform to the software license,
  • Add generic & reusable value for other users,
  • Include unit tests in our existing CppUnit test framework with 100% line coverage, zero Valgrind errors, and zero Address Sanitizer (ASan) errors,
  • Contain no sensitive or personally identifiable information.

Requirements of bug fixes

We welcome fixes to the existing code case. Submissions are encouraged to be unit tested, but not required. We’ll try to add tests for it when we can. Bug fix code should:

  • Conform to the software license,
  • Contain no sensitive or personally identifiable information.

How to submit changes

For non-core GUNNS developers, such as public contributors: after satisfying the requirements above, submit a pull request here in the GUNNS GitHub to merge to master. The pull request should be associated with an issue, and you are welcome to create a new issue for your updates if there isn’t already one. We will review and accept or reject the changes, and take it from there.

Repository push access for core developers

Push access to the repository is restricted to the GUNNS team, and membership is controlled by NASA. For GUNNS core developers, submit a NASA NAMS request for the “AGCY NASA Github Collaborator Form” asset, specifying you need to be able to push to the GUNNS repository and be added to the GUNNS team.

⚠️ **GitHub.com Fallback** ⚠️