This doc is intended for contributors to cadence
server (hopefully that's you!)
Note: All contributors also need to fill out the Uber Contributor License Agreement before we can merge in any of your changes
- Go. Install on OS X with
brew install go
.
Make sure the repository is cloned to the correct location:
cd $GOPATH
git clone https://github.com/uber/cadence.git src/github.com/uber/cadence
cd $GOPATH/src/github.com/uber/cadence
Dependencies are tracked via glide.yaml
. If you're not familiar with glide
,
read the docs.
After you install gide, run below command to get all dependencies into vendor folder.
glide up
This project is Open Source Software, and requires a header at the beginning of all source files. To verify that all files contain the header execute:
make copyright
Overcommit adds some requirements to your commit messages. At Uber, we follow the Chris Beams guide to writing git commit messages. Read it, follow it, learn it, love it.
You can compile the cadence
service and helper tools without running test:
make bins
Before running the tests you must have cassandra
running locally:
# for OS X
brew install cassandra
# start cassandra
/usr/local/bin/cassandra
Run all the tests:
make test
# or go to folder with *_test.go, e.g
cd service/history/
go test -v
# run single test
go test -v <path> -run <TestSuite> -testify.m <TestSpercificTaskName>
# example:
go test -v github.com/uber/cadence/common/persistence -run TestCassandraPersistenceSuite -testify.m TestPersistenceStartWorkflow