Thank you for spending some time with the HiPerC project. I sincerely appreciate your interest, and hope you will consider contributing to the documentation, source code, and community at large.
There are a lot of coprocessor architectures and threading models out there, and we strive for the highest possible performance to ensure valid benchmarking. If your pull request meets the guidelines below, we'll be able to assess and merge your contribution much more quickly. If not, don't worry — we'll guide you through a constructive code review.
The phase-field accelerator benchmarks are open-source, and we really appreciate input from the community. There are several ways you can contribute, including editing or adding documentation, writing tutorials, submitting bug reports, requesting new features, and writing code to incorporate. If you'd like to help out, please do!
If you're looking for support or guidance, please visit our Gitter room to talk with the developers and community members, or send an e-mail to [email protected].
- Help us to maintain a considerate and supportive community by reading and enforcing the Code of Conduct. Be nice to newcomers.
- Promote clean code by ensuring your code and documentation build with neither
warnings nor errors using compiler flags equivalent to GCC's
-Wall -pedantic
. - Engage with the community by creating issues for changes or enhancements you'd like to make. Discuss ideas the open and get feedback.
- Maximize reusability by keeping code simple. Program in C if possible, and generally follow the Google C++ Style Guide. Avoid creating new classes if possible.
- Document new functions and classes with Doxygen-compatible comments in the source code.
Interested in helping, but unsure where to start? Consider proofreading the PDF documentation and reporting or fixing errors! There's bound to be a typo in there. Or look through the existing issues for fixes or enhancements you're interested in. The number of comments on an issue can indicate its level of difficulty, as well as the impact closing it will have.
If you're brand new to open source, welcome! You might benefit from the GitHub Help Pages and a tutorial.
We use git version control with a branching workflow,
summarized below. Please do not commit directly to the master
branch.
- Create a fork of HiPerC on your personal GitHub account.
- For obvious changes, such as typos or edits to
.gitignore
, you can edit your fork directly in the browser, then file a pull request. - For most changes, clone your fork to your local machine, then create a
working branch off of
master
. If you're working, for example, on issue #42, summarize usage in pseudocode, create a branch calledissue42_summarize-usage-in-pseudocode
by executinggit checkout -b issue42_summarize-usage-in-pseudocode master
. - Make changes on the issue branch. In your commit messages, use the keywords "Addresses" or "Closes" where appropriate.
- When finished, push the working branch to your fork on GitHub, e.g.
git push origin issue42_summarize-usage-in-pseudocode
. - Visit GitHub and make the pull request official.
Obvious fixes will be merged quickly. Enhancements may undergo a code review, which we typically conduct using reviewable.