Skip to main content

Development Checklist

Before you commit any changes, check your work against these requirements:

  • All communication to external devices or services must be wrapped in an external Python library hosted on pypi.
    • Issue trackers must be enabled for external Python libraries that has communication with external devices or services.
    • If the library is mainly used for Home Assistant and you are a code owner of the integration it is encouraged to use an issue template picker with links to Home Assistant Core Issues. For example: zwave-js-server-python - New Issue
  • New dependencies are added to requirements_all.txt (if applicable), using python3 -m script.gen_requirements_all
  • New codeowners are added to CODEOWNERS (if applicable), using python3 -m script.hassfest
  • The .coveragerc file is updated to exclude your platform if there are no tests available or your new code uses a third-party library for communication with the device, service, or sensor. config_flow.py can't be excluded as it must be fully tested (100% coverage).
  • The .strict-typing file is updated to include your code if it provides a fully type hinted source.
  • The code is formatted using Black, as per these guidelines. This can be done running the command black --fast homeassistant tests.
  • Documentation is developed for home-assistant.io