Contributing Guide#

Thanks for you interest in joining the SmartSim community. While SmartSim is primarily developed by a team of engineers at Hewlett Packard Enterprise, we benefit greatly from community contributions and discussions. Please feel free to reach out; we are always open to hearing about your science and engineering questions.

Code of Conduct#

All users, contributors, and developers of SmartSim are expected to treat each other fairly and with respect. Please review our Code of Conduct which highlights what this expectation means for the community.

Need Help?#

We encourage and welcome usage questions and bug reports from all users, especially those who are new to SmartSim. There are a few things you can do to improve the likelihood of quickly getting a good answer.

1. It is important to ask questions in the right place. While we understand people’s desires for privacy, we strongly prefer the use of GitHub issues (feature requests, bug reports or Stack Overflow posts (usage questions, best practices) due to their discoverability by future users as opposed to private communications like Slack or email. Slack chat should be reserved for developer and community discussion. Email is preferred for more sensitive items.

2. Please ask only in one place. Please restrict yourself to posting your question in only one place (likely Stack Overflow or GitHub) and don’t post in both.

3. A minimal example is extremely helpful! It is ideal to create minimal, complete, verifiable examples. This significantly reduces the time that responders spend understanding your situation, resulting in higher quality answers more quickly. Mathew Rocklin has this great blogpost about crafting minimal bug reports. Questions with examples have a much higher likelihood of being answered.

How to contribute#

We welcome contributions from the broader community. These generally fall under two categories:

  • Contributions to the main codebases: These contributions directly modify the SmartSim and SmartRedis repositories to fix bugs in the code, improve the documentation, or add new features. Before embarking on major development, please contact the developers first to make sure that your proposal aligns with the internal development by opening an issue or reaching out to us. Please follow the Developer Guidelines.

  • Applications of SmartSim: Many of our users build scientific/engineering applications using SmartSim and SmartRedis. Please feel free to make contributions to the SmartSim Zoo.

In both cases, contributors can expect the following:

  • A quick response to your pull requests detailing why we are accepting or rejecting your contribution.

  • If we accept your contribution, a SmartSim developer will be assigned to help bring your contribution into the codebases by testing it across a variety of platforms and ensuring code quality.

  • You will be credited as a co-author when the contribution is merged.


The last point serves as a Developer Certificate of Origin. More specifically, we will ask contributors to signoff on the final state of the PR before merging. This signoff will then be propagated into the final squash merge commit.

How to Connect?#

Questions and discussion about SmartSim should be directed to the following:

1. Using SmartSim - If you have questions on using SmartSim please post them to Stack Overflow and tag them with the #smartsim tag.

2. SmartSim Contributor Development Chat - We monitor Slack for SmartSim for contribution development questions.

3. Report a Bug or Request a Feature - Features and Bugs are managed through GitHub. For issues related to SmartSim post here. For issues related to SmartRedis post here.

4. Contact the Development Team - For all other inquiries including collaboration opportunities, please contact SmartSim at hpe dot com.