Skip to content

Latest commit

 

History

History
88 lines (55 loc) · 3.79 KB

initial-setup-details.md

File metadata and controls

88 lines (55 loc) · 3.79 KB

Details on the initial setup for development

The readme contains the following steps for initial setup:

  1. Clone the git repository
  2. cd lab-interactives-site
  3. make everything
  4. open another new terminal and run rackup config.ru
  5. open http://localhost:9292
  6. (optional) open a new terminal and run guard
  7. (optional) cp -vn script/post-commit .git/hooks/

1. Clone the git repository

Use git to create a local clone of the Lab repository. If you aren't familiar with git, you should read one of the tutorials on it.

If you have commit access to the repository use this form:

git clone [email protected]:concord-consortium/lab-interactives-site.git

Alternatively if you don’t have commit access use this form:

git clone git://github.com/concord-consortium/lab-interactives-site.git

2. cd lab-interactives-site

Open a shell and change to the lab-interactives-site/ directory. The first time you cd into the lab-interactives-site/ directory RVM will switch to using ruby-2.0.0-p247 based on the .ruby-version file in the repository. Additionally the .ruby-gemset tells RVM to install the gems in a gemset named lab. So together these files tell RVM to store and load gems from the ruby-2.0.0-p247@lab gemset.

If you don't have ruby-2.0.0-p247 already installed rvm will display the command you need to run to install it. Run this command if required.

If you do end up having to install a new version of Ruby with RVM change out of and back into the lab directory after the RVM install of Ruby is complete:

cd ..; cd lab

3. make everything

This will download and install all the dependencies and build the whole project for the first time. When make everything is run on a freshly cloned repository it performs the following tasks:

  1. Install the runtime dependencies as git submodules into the vendor/ directory:

    git submodule update --init --recursive
    
  2. Install the development dependencies that use nodejs and are managed by npm:

    npm install
    

    You can see the list of dependencies to be installed in the file package.json. In addition vendor/d3 and vendor/science.js are manually installed into node_modules/.

  3. Install the additional RubyGems used for development: haml, sass, guard ...

    bundle install
    
  4. Generates the public directory:

You should now be able to open the file: public/index.html in a browser however most things won't work correctly. This is because of the limitation of the file protocol in browsers. Continue on to see about setting up the server.

4. open another new terminal and run rackup config.ru

Startup the Rack-based Lab server for local development. This is simple rack application that mainly just serves the files in public.

Alternatively you can use python -m SimpleHTTPServer to run a python server. Currently it won't handle the applets and it won't support snapshots, but you might not need those features.

Now that the files in public are built and a server is running you can view the Lab site locally.

6. (optional) open a new terminal and run guard

Start watching the src/ and test/ directories with Guard and when files are changed automatically generate the JavaScript Lab modules, the examples, and run the tests.

Now any change you make in src/examples/ will generate the corresponding content in public/examples/. In addition changes in src/lab/ generate the associated Lab modules in lab/ and copy these modules to public/lab/. In addition any change in either the src/lab/ or test/directories will run the tests and display the results in the console window where guard is running.

This is optional because you can also just manually run make after making changes.