Fabian Affolter 4f3c011fd1 Fix sentence
2016-02-03 20:47:09 +01:00

62 lines
2.7 KiB
Markdown

---
layout: page
title: "Developers"
description: "Home Assistant developer information. Everything to get you started"
date: 2014-12-21 13:32
sidebar: false
comments: false
sharing: true
footer: true
---
Home Assistant is build from the ground-up to be easily extensible by other developers using components. It uses [Python 3](https://www.python.org/) for the backend and [Polymer (Webcomponents)](https://www.polymer-project.org/) for the frontend.
Home Assistant is open-source and MIT licensed. The source can be found here:
- [home-assistant](https://github.com/balloob/home-assistant) - Python server-backend
- [home-assistant-js](https://github.com/balloob/home-assistant-js) - javascript-backend powering the client
- [home-assistant-polymer](https://github.com/balloob/home-assistant-polymer) - Polymer UI
### {% linkable_title Starting development %}
You will need to setup a development environment if you want to start developing a new feature or component for Home Assistant. Please follow these steps to perform it. Visit the [the Home Assistant repository](https://github.com/balloob/home-assistant) first and click fork in the top right.
```bash
$ git clone https://github.com/your_github_username/home-assistant.git
$ git remote add upstream git@github.com:balloob/home-assistant.git
$ cd home-assistant
$ script/setup
```
We suggest that you setup a [virtual environment](https://docs.python.org/3.4/library/venv.html) aka `venv` before running the setup script.
After following these steps, running `hass` will invoke your local installation.
### {% linkable_title Submitting improvements %}
Improvements to Home Assistant should be submitted one feature at a time using Github pull requests.
1. Go to [the Home Assistant repository](https://github.com/balloob/home-assistant) and click fork in the top right.
2. Follow steps in the previous section but with your forked repository.
3. Create a new branch to hold your changes
`git checkout -b some-feature`
4. Make the changes you want
5. Check your changes for style violations
`./script/lint`
6. Commit the changes
`git add .`
`git commit -m "Added some-feature"`
7. Push your commited changes back to your fork on GitHub
`git push origin HEAD`
8. Follow [these steps](https://help.github.com/articles/creating-a-pull-request/) to create your pull request.
### {% linkable_title Further reading %}
- [Home Assistant Architecture](/developers/architecture/)
- [Frontend development](/developers/frontend/)
- [Creating a custom component](/developers/creating_components/)
- [Adding support for a new platform](/developers/add_new_platform/)
- [Rest API](/developers/api/)
- [Website](/developers/website/)