Repository Structure

Branches

  • master: the latest stable release, always tagged with a version
  • dev: the development branch where all features start from and are merged to
  • release-X.Y.Z: release candidate for version X.Y.Z with an upcoming release, receives updates for bug fixes and documentation such as change logs but usually no new features

Directory Structure

  • include/

    • C++ header files
    • set -I here
    • prefixed with project name
    • auxiliary/
      • internal auxiliary functionality
    • helper/, benchmark/
      • user-facing helper functionality
  • src/

    • C++ source files
    • cli/
      • user-facing command line tools
  • lib/

    • python/
      • modules, e.g. additional python interfaces and helpers
      • set PYTHONPATH here
  • examples/

    • read and write examples
  • samples/

    • example files; need to be added manually with: share/openPMD/download_samples.sh (or .ps1)
  • share/openPMD/

    • download scripts for example files
    • cmake/
      • cmake scripts
    • thirdParty/
      • included third party software
  • test/

    • unit tests which are run with ctest (make test)
  • .github/

    • GitHub issue/pull request templates
    • workflows/
      • GitHub Action scripts for continuous integration checks
    • ci/
      • service-agnostic configurations for continuous integration
  • docs/

    • documentation files