developers.home-assistant/docs/development_checklist.md
Robbie Trencheny 67b9a5299d Add docs about The Manifest File (#214)
* Add docs about The Manifest File

* Remove stale line

* Update docs/development_checklist.md
2019-04-04 21:21:00 -07:00

3.7 KiB

title
title
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.
  • New dependencies are added to requirements_all.txt (if applicable), using script/gen_requirements_all.py
  • 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
  • Documentation is developed for home-assistant.io
  • All dependencies are only imported inside functions that use them.
  • Add the manifest file. What is the manifest file? Keep reading to find out!

The Manifest File

As of Home Assistant 0.91, we have begun a migration to a new concept we call the manifest file. What is the manifest file? The manifest file contains information about a Home Assistant integration. It looks like this:

{
  "domain": "mobile_app",
  "name": "Home Assistant Mobile App Support",
  "documentation": "https://www.home-assistant.io/components/mobile_app",
  "requirements": [
    "PyNaCl==1.3.0"
  ],
  "dependencies": [
    "device_tracker",
    "http",
    "webhook"
  ],
  "codeowners": [
    "@robbiet480"
  ]
}

Here are the fields contained in the manifest file.

Key Type Description
codeowners array of strings Contains a array of GitHub usernames or team names responsible for the contents of this file that will be notified whenever someone submits a issue or PR relating to it. You, the author, should put your username here.
dependencies array of strings Other integrations/components this integration requires to be loaded before it can start.
documentation url A URL pointing to documentation for the integration. If this integration is being submitted for inclusion to Home Assistant, it should probably point to documentation under home-assistant.io.
domain string The domain of the integration. For example, if your integration is in a folder named mobile_app, this should be mobile_app
name string The human readable name of your integration
requirements array of strings Dependencies that should be installed from PyPi.

The manifest file should be stored in the integration folder and be named manifest.json.