Contributing to PHARE
The solver is written in C++20, the interface in Python, and parallelism uses MPI. Contributions go through GitHub issues and pull requests, as described in CONTRIBUTING.md.
Contribution process
Issue
Every change, bug fix or feature, starts as an issue that states its motivation, using the bug report or feature request template.
Pull request
A pull request references its issue and changes the code for a single reason. Pull requests above about 500 lines or 10 files should be split.
Tests
Unit or functional tests accompany the change; if they cannot, the pull request explains why.
Review and continuous integration
A maintainer reviews the change and the CI builds and tests it (see below).
Issues labelled "good first issue"
on GitHubList updated 2026-10-05.
Code organisation
Lower layers do not include upper ones; src/core never includes SAMRAI.
Most of the code is header-only C++ templated on dimension and interpolation order.
Continuous integration
- GitHub Actions: build and test suite on Ubuntu; CodeQL static analysis.
- TeamCity (LPP): every pull request is built with gcc and with clang (AddressSanitizer), with SAMRAI pre-installed or built as a subproject, and runs about 1,500 tests. Scheduled jobs on master add performance and coverage runs.
- Activity reports: issues, pull requests, reviews and CI results, week by week: activity reports.
Internships, PhD and postdoctoral positions
Enquiries about working on PHARE: phare@lpp.polytechnique.fr.