mirror of
https://github.com/slsdetectorgroup/aare.git
synced 2026-05-03 02:24:16 +02:00
8f8173feb64f5d2ee4d154e027f57762bee15b19
To improve codebase quality and reduce human error, this PR introduces the pre-commit framework. This ensures that all code adheres to project standards before it is even committed, maintaining a consistent style and catching common mistakes early. Key Changes: - Code Formatting: Automated C++ formatting using clang-format (based on the project's .clang-format file). - Syntax Validation: Basic checks for file integrity and syntax. - Spell Check: Automated scanning for typos in source code and comments. - CMake Formatting: Standardization of CMakeLists.txt and .cmake configuration files. - GitHub Workflow: Added a CI action that validates every Pull Request against the pre-commit configuration to ensure compliance. The configuration includes a [ci] block to handle automated fixes within the PR. Currently, this is disabled. If we want the CI to automatically commit formatting fixes back to the PR branch, this can be toggled to true in .pre-commit-config.yaml. ```yaml ci: autofix_commit_msg: [pre-commit] auto fixes from pre-commit hooks autofix_prs: false autoupdate_schedule: monthly ``` The last large commit with the fit functions, for example, was not formatted according to the clang-format rules. This PR would allow to avoid similar mistakes in the future. Python fomat with `ruff` for tests and sanitiser for `.ipynb` notebooks can be added as well.
aare
Data analysis library for PSI hybrid detectors
Documentation
Detailed documentation including installation can be found in Documentation
License
This project is licensed under the MPL-2.0 license. See the LICENSE file or https://www.mozilla.org/en-US/MPL/ for details.
Build and install
Prerequisites
- cmake >= 3.14
- C++17 compiler (gcc >= 8)
- python >= 3.10
Development install (for Python)
git clone git@github.com:slsdetectorgroup/aare.git --branch=v1 #or using http...
mkdir build
cd build
#configure using cmake
cmake ../aare -DAARE_PYTHON_BINDINGS=ON
#build (replace 4 with the number of threads you want to use)
make -j4
Now you can use the Python module from your build directory
import aare
f = aare.File('Some/File/I/Want_to_open_master_0.json')
To run from other folders either add the path to your conda environment using conda-build or add the module to your PYTHONPATH
export PYTHONPATH=path_to_aare/aare/build:$PYTHONPATH
Install using conda/mamba
#enable your env first!
conda install aare -c slsdetectorgroup # installs latest version
Install to a custom location and use in your project
Working example in: https://github.com/slsdetectorgroup/aare-examples
#build and install aare
git clone git@github.com:slsdetectorgroup/aare.git --branch=v1 #or using http...
mkdir build
cd build
#configure using cmake
cmake ../aare -DCMAKE_INSTALL_PREFIX=/where/to/put/aare
#build (replace 4 with the number of threads you want to use)
make -j4
#install
make install
#Now configure your project
cmake .. -DCMAKE_PREFIX_PATH=SOME_PATH
Local build of conda pkgs
conda build . --variants="{python: [3.11, 3.12, 3.13]}"
Developer's guide
We are looking forward to your contributions via pull requests!
If you want to fix an existing bug or propose a new feature:
- Install
pre-commitpython package and setup itpre-commit install - Create a new branch with
git branch branch_name - Implement your changes and make a commit (
pre-commitwill check your code automatically) - Push your commit and open a pull request if needed
Languages
Jupyter Notebook
76.3%
C++
20.9%
Python
2%
CMake
0.8%