:orphan: .. role:: raw-html-m2r(raw) :format: html .. |m2r-link-6d17989f7dfb| replace:: \ ``qmat`` companion package .. _m2r-link-6d17989f7dfb: https://github.com/Parallel-in-Time/qmat .. |m2r-link-d3e2db30b591| replace:: \ ``aidecl.yaml`` .. _m2r-link-d3e2db30b591: https://github.com/Parallel-in-Time/pySDC/blob/master/aidecl.yaml .. _CONTRIBUTING/how-to-contribute-to-pysdc: How to contribute to pySDC ========================== Developments on the ``pySDC`` code use the classical approach of forks and pull requests. You can look at `extended GitHub documentation `_ for more details (skip this if you are already used to it). Furthermore, branches on ``pySDC`` follow a pre-defined structure. To contribute to any of them, please look at the :doc:`pull request recommendations <./docs/contrib/01_pull_requests>`. Additionally, a *few* rules are set to enforce code readability, consistency and reliability. Some of them are automatically tested with each commit, and summarized in the page on :doc:`continuous integration (CI) <./docs/contrib/02_continuous_integration>`. Others are specific conventions chosen for the pySDC library, that may follow Python standards (or not ...), detailed in the :doc:`naming conventions <./docs/contrib/03_naming_conventions>` page. Finally, while ``pySDC`` provides many base functionalities that implement classical flavors of SDC, it also allows problem-specific applications through Object-Oriented Programming (OOP) and the implementation of custom inherited classes. This follows a specific OOP framework, you can look at the page on :doc:`custom implementations <./docs/contrib/04_custom_implementations>` for more details. Additional guideline are also given on how to :doc:`document the code <./docs/contrib/05_documenting_code>` in ``pySDC``. .. 📣 Some core components (collocation matrix, :math:`Q-\Delta` coefficients, Lagrange barycentric interpolation)\ :raw-html-m2r:`
` are implemented and developed in the |m2r-link-6d17989f7dfb|_. Checkout its own `contributing guide `_ to add any new coefficient / feature on this part. .. 🤖 ``pySDC`` declares how much of its code was written with AI help in |m2r-link-d3e2db30b591|_\ , checked on every CI run. Two things help keep that honest: please keep the ``Co-authored-by:`` trailer that agents add to their commits (this mostly means not stripping it when squashing), and, if you contribute regularly, consider installing `Git AI `_. It records which lines an agent wrote, needs no workflow changes, and is strongly recommended but entirely optional — without it your commits simply count as human-written. See :doc:`using AI tools <./docs/contrib/08_ai_usage>` for the rules on AI-assisted contributions. #. `GitHub Forks and Pull Requests `_ #. :doc:`Pull Requests Recommendations <./docs/contrib/01_pull_requests>` #. :doc:`Continuous Integration <./docs/contrib/02_continuous_integration>` #. :doc:`Naming Conventions <./docs/contrib/03_naming_conventions>` #. :doc:`Custom Implementations <./docs/contrib/04_custom_implementations>` #. :doc:`Documenting Code <./docs/contrib/05_documenting_code>` #. :doc:`Adding a project <./docs/contrib/06_new_project>` #. :doc:`Publishing a new release <./docs/contrib/07_release_guide>` #. :doc:`Using AI tools <./docs/contrib/08_ai_usage>` |:arrow_left:| :doc:`Back to main page <./index>`