Unverified Commit 74accae0 authored by David Haynes's avatar David Haynes
Browse files

Words added to section 3

- also, no more $'s
- approaching the finish line here
- make README great again
parent bdbd8043
...@@ -28,18 +28,26 @@ of steps we will take: ...@@ -28,18 +28,26 @@ of steps we will take:
### On Linux Based Systems ### On Linux Based Systems
**with apt:**
Open a terminal and run the following command: Open a terminal and run the following command:
$ sudo apt-get update sudo apt update
This retrieves links to the most up-to-date and secure versions of your packages. This retrieves links to the most up-to-date and secure versions of your packages.
Next, with: Next, with:
$ sudo apt-get install git sudo apt install git
you install `git` onto your system. you install `git` onto your system.
**with yum (now something else??):**
**with rpm:**
**with other package manager???:**
### On macOS ### On macOS
We recommend that you use the third party Homebrew package manager for macOS, We recommend that you use the third party Homebrew package manager for macOS,
...@@ -49,55 +57,135 @@ use one at all), but Homebrew is highly reccomended. ...@@ -49,55 +57,135 @@ use one at all), but Homebrew is highly reccomended.
To get homebrew, run the following command in a terminal: To get homebrew, run the following command in a terminal:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
**Note**: You do NOT need to use `sudo` when running any Homebrew commands, and **Note**: You do NOT need to use `sudo` when running any Homebrew commands, and
it likely won't work if you do. it likely won't work if you do.
Next, to make sure Homebrew is up to date, run: Next, to make sure Homebrew is up to date, run:
$ brew update brew update
Finally we can install git with `brew install git` Finally we can install git with:
brew install git
### On Windows ### On Windows
---
Instruction on how to setup git on Windows goes here. Instructions on how to setup git on Windows goes here.
## 2) Clone the Go codebase. ## 2) Clone the Go codebase.
Now, we're going to clone down a copy of the Go codebase from [git.gmu.edu](http://git.gmu.edu/srct/go), Now, we're going to clone down a copy of the Go codebase from [git.gmu.edu](http://git.gmu.edu/srct/go),
the SRCT code respository. the SRCT code respository with SSH.
**a)** Configure your ssh keys by following the directions at:
Configure your ssh keys by following the directions at [git.gmu.edu/help/ssh/README](http://git.gmu.edu/help/ssh/README). [git.gmu.edu/help/ssh/README](http://git.gmu.edu/help/ssh/README).
Now, on your computer, navigate to the directory in which you want to download the project (perhaps one called development/ or something similar), and run **b)** Now, on your computer, navigate to the directory in which you want to download the project (ie. perhaps one called `development/SRCT`), and run
`$ git clone git@git.gmu.edu:srct/go.git` git clone git@git.gmu.edu:srct/go.git
## 3) Get Go up and running with the method of your choice. ## 3) Get Go up and running with the method of your choice.
Now that we have `git` setup and cloned down the code you can
cd go/
and get to working on setting up a development environment!
### Docker ### Docker
[docker configuration on the wiki](https://git.gmu.edu/srct/go/wikis/docker-configuration) Docker is an emerging containerization platform written in Google's Go
language.
Instead of running a full VM that runs Go, we package up all the
various bits that make up Go and run that as a container (two
containers: one for Go and the other for mysql) that act as normal
processes to the OS.
Pros:
- Lightweight
- Can be run on most machines without needing significant resources.
- SRCT members report minimal battery impact on laptops.
- Fast
- Compared to other methods, Docker is comparatively faster than
Vagrant or manual setup.
- Minimal setup
- You run one command. Really easy to get up and running once you install
Docker.
- Good cross platform support
- Runs smoothly on macOS, Linux, and Windows
- Great docs to help if you get stuck.
- Can easily destroy and rebuild the docker images
- Loads in changes to code on the fly
Cons:
### Vagrant - Challenging to debug problems
- Cannot interact with attached images and as a result, you cannot really
interact with the database.
[config](https://git.gmu.edu/srct/go/wikis/vagrant-configuration) There are instructions on how to setup/develop with Docker at the [docker-configuration page in the Go project wiki](https://git.gmu.edu/srct/go/wikis/docker-configuration).
[usage](https://git.gmu.edu/srct/go/wikis/vagrant-usage) ### Vagrant + Ansible
Vagrant boots up a full virtual machine (VM) through VirtualBox that then runs Go. A
script written with Ansible will then run on that VM to automate the setup process
for you. It is similar in a way to running Go on a legitimate server.
Pros:
- Very similar to a production environment
- Can use `vagrant ssh` to "ssh" into the VM to debug things such as the
database.
- Relatively straightforward and easy setup.
- One Command.
- Can easily destroy and rebuild the VM.
- Loads in changes to code on the fly.
- Fast-ish (Initial provision takes a bit).
Cons:
- Heavier on resources.
- It's literally a full VM.
- Occasional issues/hiccups.
- Documented fixes are in the wiki.
There are instructions on how to setup with Vagrant at the [vagrant-configuration
page in the Go project wiki](https://git.gmu.edu/srct/go/wikis/vagrant-configuration).
Additionally, there is documentation about developing with Vagrant at
the [vagrant-usage page in the Go project wiki](https://git.gmu.edu/srct/go/wikis/vagrant-usage).
### Manual Setup ### Manual Setup
# On Contributing Manual setup (or: the old fashioned way) is where you install all dependecies on
your system and run Go as a local server with Django. Granted you are technically
doing that with Vagrant and Docker except those platforms automate the steps that
are laid out in this section.
Pros:
- Experience setting up a Django project for local development
Cons:
- Greater potential for things to go wrong
- Way more steps
Link to wiki page goes here.
# Some words about contributing to Go.
Words about contributing.md go here.
I encourage you to join the [#go channel](https://srct.slack.com/messages/go/details/) in SRCT's [Slack Group](https://srct.slack.com) I encourage you to join the [#go channel](https://srct.slack.com/messages/go/details/) in SRCT's [Slack Group](https://srct.slack.com)
if you have any questions on setup or would like to contribute. if you have any questions on setup or would like to contribute.
# Deployment # Some words about deploying Go.
someone @sysadmin writes up about how to deploy Go or just links to the wiki.
In order to expire links, you need to set up a cron job to run the manage.py In order to expire links, you need to set up a cron job to run the manage.py
expirelinks command regularly. A sample cron script is available in the expirelinks command regularly. A sample cron script is available in the
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment