Development

Required Software

Ansible is required to deploy conference site software to servers. For local development, you will also need Vagrant and Virtualbox to manage the virtual machine containing your development environment.

In order to successfully build virtualenvs, a number of development Python libraries/packages should also be installed.

  • libffi-dev
  • libpq-dev
  • libpython-dev
  • pip
  • virtualenv
  • virtualenvwrapper

Local Development

This section assumes all of the required software mentioned in the last section has been installed successfully.

Use Vagrant and Virtualbox to create a local environment in a virtual machine (VM) that matches production.:

git clone https://github.com/pydata/conf_site.git
cd conf_site
mkvirtualenv conf_site
vagrant up --provision

The main vagrant commands to use are:

vagrant up
This starts up the VM. When you run it for the first time, it provisions the VM.
vagrant provision
This uses Ansible to deploy your current code and other required settings to the VM.
vagrant halt
When you aren’t working on the project, you can turn off the VM with this command.
vagrant destroy
This completely wipes away the VM. You can destroy it and start over.
vagrant ssh
This logs you in to the VM as the vagrant user.