From 2255af407a61664e04bf2df0a4c30e5c9f3bbff8 Mon Sep 17 00:00:00 2001 From: Martin Rowan Date: Thu, 26 Jan 2017 17:54:48 +0000 Subject: [PATCH] Update development environment setup guide (#1804) --- .../development_environment.markdown | 44 +++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/source/developers/development_environment.markdown b/source/developers/development_environment.markdown index cff766b0e10..9d8e83cf1f1 100644 --- a/source/developers/development_environment.markdown +++ b/source/developers/development_environment.markdown @@ -11,14 +11,52 @@ footer: true You'll need to set up a development environment if you want to develop a new feature or component for Home Assistant. Read on to learn how to set up. -* Visit the [Home Assistant repository](https://github.com/home-assistant/home-assistant) and click **Fork**. - -* Consider setting up a virtual environment using [`venv`](https://docs.python.org/3.4/library/venv.html) before running the setup script. +### {% linkable_title Setup Local Repository %} +Visit the [Home Assistant repository](https://github.com/home-assistant/home-assistant) and click **Fork**. +Once forked, setup your local copy of the source using the commands: ```bash $ git clone https://github.com/YOUR_GIT_USERNAME/home-assistant.git $ cd home-assistant $ git remote add upstream https://github.com/home-assistant/home-assistant.git +``` + +### {% linkable_title Prepare Your Environment %} + +#### {% linkable_title Core dependencies %} + +Install the core dependencies. +```bash +$ sudo apt-get install python3-pip python3-dev libssl-dev +``` +

+Different distributions have different package installation mechanisms and sometimes packages names as well. For example Centos would use: `sudo yum install epel-release && sudo yum install python34 python34-devel mysql-devel` +

+ +Additional dependencies exist if you you plan to perform Frontend Development, please read the [Frontend](https://home-assistant.io/developers/frontend/) section to learn more. + +#### {% linkable_title Setting up virtual environment (optional) %} + +If you plan on providing isolation to your environment using [`venv`](https://docs.python.org/3.4/library/venv.html). Within the `home-assistant` directory, create and activate your virtual environment. + +If using Python < 3.6 `pyvenv` is the recommended method of setting up virtual environments, you'll need to install the `python3-venv` package. +```bash +$ sudo apt-get install python3-venv +$ pyvenv venv +$ source venv/bin/activate +``` + +If using Python 3.6 `pyvenv` has been deprecated: +```bash +$ python3 -m venv venv +$ source venv/bin/activate +``` + +### {% linkable_title Setup and Run %} + +* On Mac OS X and Linux (remember to activate your virtual environment before running setup, if you are using one): +```bash +$ cd home-assistant $ script/setup ```