Thanks for your interest in contributing to the AIXpert!
To submit PRs, please fill out the PR template along with the PR. If the PR fixes an issue, don't forget to link the PR to the issue!
We use the standard git development flow of branch and merge to main with PRs on GitHub. At least one member of the core team needs to approve a PR before it can be merged into main. As mentioned above, tests are run automatically on PRs with a merge target of main. Furthermore, a suite of static code checkers and formatters are also run on said PRs. These also need to pass for a PR to be eligible for merging into the main branch of the library.
For code style, we recommend the PEP 8 style guide.
For docstrings we use numpy format.
We use ruff for code formatting and static code analysis. Ruff checks various rules including flake8. The pre-commit hooks show errors which you need to fix before submitting a PR.
Last but not the least, we use type hints in our code which is then checked using mypy.
All of these checks and formatters are invoked by pre-commit hooks. These hooks are run remotely on GitHub. In order to ensure that your code conforms to these standards, and, therefore, passes the remote checks, you can install the pre-commit hooks to be run locally. This is done by running (with your environment active):
pre-commit installOnce the python virtual environment is setup, you can run pre-commit hooks using:
pre-commit run --all-filesThe repository consists of the following github action continuous integration workflows:
- code checks: Static code analysis, code formatting and unit tests
- documentation: Project documentation including example API reference
- integration tests: Integration tests
- publish: Publishing python package to PyPI.