Development Guide

Building a Jekyll Site

This site is implemented in Jekyll, thus requiring Ruby and Node.js. We also use Python in our automation and testing.

Installing Node.js, Python, Ruby, and Ruby DevKit

We currently use:

Creating a Virtual Environment and Installing Dependencies

All Python work should be done within a virtual environment, to avoid dependency conflicts. Node.js and Ruby have their own dependency management (i.e., npm shrinkwrap and bundler). Our Python automation scripts will employ those tools, but we first need to configure Python.

Create the virtual environment. From the working directory of our project (e.g., c:\devel\web-cse510-wi16\):

c:\Python35\python.exe -m venv env35    

This will create a directory for the virtual environment (e.g., c:\devel\web-cse510-wi16\env35\).

Next activate that virtual environment and install our Python dependencies:

env35\Scripts\activate.bat
pip install -r requirements3.txt

Next use Python’s invoke automation to get the rest of our dependencies:

invoke update_dependencies

Building and Serving the Site

Invoke automation is provided for building the site.

If it is not already active, you need to re-activate the virtual environment. From the working directory of our project (e.g., c:\devel\web-cse510-wi16\):

env35\Scripts\activate.bat

To build the site:

invoke build_test

To build and serve the site on localhost:4000, continuously updating based on changes:

invoke serve_test