Contributing
We welcome contributions to this project!
How to Contribute
- Bug Reports: Create an issue
- Questions & Help: Start a Q&A discussion
- Feature Requests: Share an idea
- Lovelace & Automations: Show your project
- Pull Requests: Fork → Branch → Changes → PR
- Documentation: Improve wiki pages or add new ones
- Translations: Help with DE/EN translations
Development Environment Setup
- Fork the repository
- Clone the fork locally
- Copy
custom_components/idm_heatpump/to your HAcustom_components/directory - Enable debug logging
- Restart HA
Language
The project writes in English: code, comments, documentation, changelog entries,
commit messages and pull request descriptions. German belongs in
README_de.md, the Home Assistant de translations and the German wiki mirror
under docs/wiki/de/. English wiki pages remain the source of truth. Run
python scripts/check_documentation_language.py before opening a pull request —
tests/test_documentation_language.py fails the build on German prose.
Code Style
- Use Ruff for linting and formatting
- Follow Conventional Commits for commit messages
- Keep the code simple and understandable
Pull Request Process
- Create a fork
- Create a feature branch (
git checkout -b feat/my-feature) - Commit your changes (
git commit -m 'feat: add my feature') - Push to the fork (
git push origin feat/my-feature) - Create a Pull Request
License
By contributing, you agree that your code will be published under the MIT License.
Keep documentation with the code
Every new feature, behavior-changing fix and field discovery belongs on the relevant English wiki page and its German mirror. Include setup, defaults, actions, privacy and limitations. Link evidence and open questions in the findings register. Register new pages in the website navigation as well.
python scripts/check_wiki_coverage.py reports new or changed source modules,
missing language mirrors and undocumented actions. Only after reviewing both
languages, run python scripts/check_wiki_coverage.py --update and inspect
docs/wiki-coverage.json. Also run
python scripts/check_documentation_versions.py for version claims.