2024-10-04 11:45:07 +02:00
# Contributing to EOS
Thanks for taking the time to read this!
The `EOS` project is in early development, therefore we encourage contribution in the following ways:
2025-01-06 19:34:15 +01:00
## Documentation
2025-03-23 13:52:15 +01:00
Latest development documentation can be found at [Akkudoktor-EOS ](https://akkudoktor-eos.readthedocs.io/en/latest/ ).
2025-01-06 19:34:15 +01:00
2024-10-04 11:45:07 +02:00
## Bug Reports
2024-11-10 23:00:16 +01:00
Please report flaws or vulnerabilities in the [GitHub Issue Tracker ](https://github.com/Akkudoktor-EOS/EOS/issues ) using the corresponding issue template.
2024-10-04 11:45:07 +02:00
## Ideas & Features
Please first discuss the idea in a [GitHub Discussion ](https://github.com/Akkudoktor-EOS/EOS/discussions ) or the [Akkudoktor Forum ](https://www.akkudoktor.net/forum/diy-energie-optimierungssystem-opensource-projekt/ ) before opening an issue.
There are just too many possibilities and the project would drown in tickets otherwise.
## Code Contributions
We welcome code contributions and bug fixes via [Pull Requests ](https://github.com/Akkudoktor-EOS/EOS/pulls ).
2025-04-07 22:23:35 +02:00
To make collaboration easier, we require pull requests to pass code style, unit tests, and commit
message style checks.
2024-10-04 11:45:07 +02:00
2024-11-17 15:27:43 +01:00
### Setup development environment
Setup virtual environment, then activate virtual environment and install development dependencies.
See also [README.md ](README.md ).
2024-10-04 11:45:07 +02:00
```bash
2024-11-17 15:27:43 +01:00
python -m venv .venv
source .venv/bin/activate
2024-10-07 20:56:10 +02:00
pip install -r requirements-dev.txt
2025-02-12 21:35:51 +01:00
pip install -e .
2024-10-04 11:45:07 +02:00
```
2024-11-17 15:27:43 +01:00
Install make to get access to helpful shortcuts (documentation generation, manual formatting, etc.).
- On Linux (Ubuntu/Debian):
```bash
sudo apt install make
```
- On MacOS (requires [Homebrew ](https://brew.sh )):
```zsh
brew install make
```
The server can be started with `make run` . A full overview of the main shortcuts is given by `make help` .
### Code Style
Our code style checks use [`pre-commit` ](https://pre-commit.com ).
2024-10-04 11:45:07 +02:00
To run formatting automatically before every commit:
```bash
pre-commit install
2025-04-07 22:23:35 +02:00
pre-commit install --hook-type commit-msg
2024-10-04 11:45:07 +02:00
```
Or run them manually:
```bash
2024-10-07 20:56:10 +02:00
pre-commit run --all-files
2024-10-04 11:45:07 +02:00
```
### Tests
Use `pytest` to run tests locally:
```bash
2024-11-10 23:00:16 +01:00
python -m pytest -vs --cov src --cov-report term-missing tests/
2024-10-04 11:45:07 +02:00
```
2025-04-07 22:23:35 +02:00
### Commit message style
Our commit message checks use [`gitlint` ](https://github.com/jorisroovers/gitlint ). The checks
enforce the [`Conventional Commits` ](https://www.conventionalcommits.org ) commit message style.