Contributing to hololinked
We welcome contributions to hololinked! All types of contributions are encouraged and valued.
If you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:
- Star the project
- Tweet about it or share in social media
- Create examples & refer this project in your project's readme. I can add your example in my example repository if its really helpful, including use cases in more sophisticated integrations
- Mention the project at local meetups/conferences and tell your friends/colleagues
- Donate to cover the costs of maintaining it
You can contribute in the following ways:
- reporting bugs and issues
- submitting code
- improving documentation
- suggesting new features
- submitting examples or implementations
For good first issues, visit repository wise:
Our contribution guidelines may also help. There are also weekly office hours & discord group (currently no participants).
Please do note that we are only looking for code contributions that can enfore code ownership and integrating contributors that can understand the codebase, not AI automated PRs. All solutions anybody can automate can also be automated by us, so, this is not the purpose of accepting contributions.
Setup Development Environment
One can setup a development environment with uv as follows:
- Install uv if you don't have it already: uv docs
-
Create and activate a virtual environment:
-
Install the package in development mode with all dependencies:
Running Tests
To run unit and integration tests:
You might need docker daemon for running some tests (currently test_16_protocols_mqtt).
Pre-commit Hooks
You can use pre-commit hooks to ensure code quality before committing changes, and be ensured that certain pipeline checks will pass.
Currently ruff, bandit and gitleaks are configured to run as pre-commit hooks.
Precommit hooks are optional. To skip them, use: