Thank you for your interest in contributing to fermo_core
! Please take a moment to
read this document to understand how you can contribute.
When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. Please note we have a Code of Conduct, please follow it in all your interactions with the project.
- Fork the repository on GitHub.
- Clone your forked repository to your local machine.
- Create a new branch for your contribution and push it to your remote:
git checkout -b <your-feature-name>
git push origin <your-feature-name>
git branch --set-upstream-to=origin/<your-feature-name>
- Install the package including the developer requirements as described in the Documentation.
- Install
pre-commit
and run the test suite as described in the Documentation. - Make your changes and keep track of them in the [CHANGELOG.md] file.
- Once the changes are ready for a pull request (PR), increase the version number in [pyproject.toml].
- Create a PR on GitHub with a clear title, description, and a list of changes.
- Your changes will be reviewed and, if approved, merged in the main branch.
We want to write well-documented, clear and concise code that is easily maintainable. For our strategy to achieve our goal, see below.
- We use Semantic Versioning for versioning.
- We follow the Google Python Style Guide.
- We use automated linting and formatting.
- We apply following design principles:
- OOP (object-oriented programming)
- KISS (keep it super simple)
- DRY (don't repeat yourself)
- SOLID (single responsibility, open/closed, Liskov's substitution, interface segregation, dependency inversion)
- TDD (test-driven development)
- Logging
- LCC (Low cognitive complexity)