Skip to content

DistributedDesigns/Milestone1

Repository files navigation

Milestone1

Monolithic implementation of the trading server. What could go wrong?

Installing

mkdir -p $GOPATH/src/github.com/distributeddesigns/milestone1
cd $GOPATH/src/github.com/distributeddesigns

# Note the change of M -> m; Fixes ref problem on case sensitive
# file systems (i.e. windows)
git clone https://github.com/DistributedDesigns/Milestone1.git milestone1

cd milestone1

go get

# creates a disposable temp binary; no need to `go install` then invoke
go run app.go ${workload file}

You can get workload files from the docs repo or the project website.

Installing the linter

metalinter will be run by CI. You can run the linter locally to check for problems early.

go get -u github.com/alecthomas/gometalinter

# Install all known linters
$GOPATH/bin/gometalinter --install

# Run the linter on all files the project
$GOPATH/bin/gometalinter --config=.gometalinterrc ./...

# Force gometalinter to pass before code is pushed to remote
chmod +x githooks/pre-push
ln -s $PWD/githooks/pre-push $PWD/.git/hooks/pre-push

Never think about this again

Use a plugin to run the linter whenever you save a file in your IDE. Here's a list. The only command you'll need to pass to the linter is --config=.gometalinterrc, which tells the linter to use the referenced config file.

Validating logs

New logs for each run will be created in ./logs. You can do partial validation for the schema using logfile.xsd and xmllint.

xmllint --version # should be > 20624
xmllint --schema logfile.xsd --noout logs/yourlogfile.xml

Logfile troubleshooting is available on the project website.

Releases

No releases published

Packages

No packages published