Skip to content

Latest commit

 

History

History
83 lines (56 loc) · 2.04 KB

CONTRIBUTING.md

File metadata and controls

83 lines (56 loc) · 2.04 KB

Developing Cadence

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

Development Environment

  • Go. Install on OS X with brew install go.

Checking out the code

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

Dependency management

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

Licence headers

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

Commit Messages

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.

Building

You can compile the cadence service and helper tools without running test:

make bins

Testing

Before running the tests you must have cassandra and kafka running locally:

# for OS X
brew install cassandra

# start cassandra
/usr/local/bin/cassandra

To run kafka, follow kafka quickstart guide here

Run all the tests:

make test

# `make test` currently do not include crossdc tests, start kafka and run 
make test_xdc

# 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