************ Contributing ************ Georges-core is an open-source Python library, and we encourage users to contribute to this repository. The best way to contribute to the code is to make a fork of the repository and open a pull-request to integrate the developments inside the master branch. To install all the packages, simply run :: poetry install --with dev,docs Git Convention ############## Principles ---------- * No one should commit to the master branch except the release manager. * The master branch is the default people will get when cloning the repository and should only be a working tagged version. Therefore, the only commits in master are tagged versions. * develop is our main development branch and features are made off of this branch. * A new pull request must pass all tests before be merge inside the develop branch. * Documentation should be added to the manual before merging the branch. Naming ------ Feature branches should be descriptive and preferably named in the format “some-new-feature”. Coding Style ############ We use `black `_, `isort `_ and `flake8 `_ to ensure consistent Python code. All the parameters are described in the `pyproject.toml` file. Testing and metrics ################### All the tests are available in the georges-cores's test repository. We use `pytest `_ as a tool for testing and the results are then passed to `coverage` and uploaded to `sonar `_ to compute metrics such as: * Bugs * Code smells * Coverage Documentation ############# The documentation files are located in the docs repository and can be generated using sphinx. To create the HTML (or PDF) files, go to the docs repository and use the `make` command:: cd docs make html / latexpdf The results are in the folder `build/html` (`build/latex`). Pre-commit file ############### We provide a `.precommit.yml` file. This script simple can be executed before committing a file to automatically point out issues in code such as missing semicolons, trailing whitespace, and debug statements. `pre-commit `_ can be installed using pip or brew and must be installed in the repository with:: pre-commit install And the script can be run using:: pre-commit run --all-files -v