************************** Setup for pre-commit hooks ************************** Pre-requisites ============== * python 3.8+: Tested up to python 3.12 * (Optional) pipx : Tested for 1.4.3 Installation of pre-commit ========================== There are a few different ways to install ``pre-commit``. The easiest, if available, is to use ``pipx`` :: pipx install pre-commit Alternatively, you can create a virtual environment with ``venv`` and ``pip install`` inside it or use ``uv`` or ``pixi`` or even Spack (listed as ``py-pre-commit`` in Spack). Generate the hook scripts ========================= Assuming that VANTAGE-Reactions has been cloned per the instructions in ``User Guide/Installation``, then inside the repo directory, run: :: pre-commit install How it works ============ Now every time you make a commit, any C++ files that have been changed will go through the process of being checked by ``clang-format``. If it finds incorrect formatting, it will make the necessary changes and you will have to re-stage the files that it has modified before completing the commit (at which point the ``clang-format`` test will pass and let you commit). If you want to commit without going through the ``clang-format`` step, then it is possible to use the ``--no-verify`` option when committing. In any case, your branch will be subject to a ``clang-format`` check upon opening a pull request as well but it is good practice to have this enabled locally to make merging a bit easier (otherwise another commit with the required changes will be necessary).