Contribute to HiPACE++

We welcome new contributors!

To contribute to HiPACE++, the steps are as follows:
  • Fork the HiPACE++ repo, so you have your own fork

  • Pull the latest development from baseline, and create your <new branch> from it

  • Commit your changes as usual, and push them on your fork

  • Open a PR between <new branch> on your for and development on baseline

Documentation

HiPACE++ has a full (functions and classes and their members, albeit sometimes basic) Doxygen-readable documentation. You can compile it with

cd docs
doxygen
open doxyhtml/index.html

The last line would work on MacOS. On another platform, open the html file with your favorite browser.

The HiPACE++ Doxygen documentation can be found here.

Style and conventions

  • All new element (class, member of a class, struct, function) declared in a .H file must have a Doxygen-readable documentation

  • Indent four spaces

  • No tabs allowed

  • No end-of-line whitespaces allowed

  • Classes use CamelCase

  • Objects use snake_case

  • Lines should not have >100 characters

  • The declaration and definition of a function should have a space between the function name and the first bracket (my_function (...)), function calls should not (my_function(...)). This is a convention introduce in AMReX so git grep "my_function (" returns only the declaration and definition, not the many function calls.

How-to

Make a new release

  • Find the release tag in all files with something like git grep '22\.01' and modify where relevant (be careful with automated search & replace operations, they may cause unwanted changes).

  • On the main repo page, go to Releases > Draft new release, and
    • Update the AMReX and openPMD-api versions

    • Temporarily change the AMReX build version in CMake, similar to the change in file AMReX.cmake in PR 880, so that the HiPACE++ release builds on the corresponding AMReX release.

    • Click button “Auto-generate release notes” to get a well-formatted list of PRs

    • Update the commands that you used

    • Add any additional comments

    • confirm the release

    • Revert change in point 2 above so we keep building on AMReX development in-between releases, similar to PR 882.

  • Once the release is done, Zenodo will generate a DOI. Go to zenodo.org > My Account > Github > HiPACE++, and get the DOI of the last release and copy-paste to the release description