Native installation of Caliopen
Go developments for CaliOpen
As Caliopen use a mono repository structure and use many languages, the setup for a go development environment need some specific considerations.
A specific GOPATH is privilegied
We use govendor for external dependencies it's better to have a specific GOPATH to develop on Caliopen.
mkdir $HOME/caliopen cd $HOME/caliopen for i in bin pkg src/github.com/CaliOpen do mkdir -p caliopen/$i done cd src/github.com/CaliOpen git clone https://github.com/CaliOpen/Caliopen # DO NOT FORGET TO SETUP AS a distinct GOPATH export GOPATH=$HOME/caliopen
NOTE: you will need to setup frequently this GOPATH, add an alias into your shell, for example for bash or zsh:
alias tocaliopen="export GOPATH=$HOME/caliopen; cd $GOPATH/src/github.com/CaliOpen"
Setup external dependencies
Using govendor external dependencies will be fetch into your Caliopen repository
cd $GOPATH/src/github.com/CaliOpen/Caliopen go get -u github.com/kardianos/govendor govendor sync -v
all external golang dependencies for all CaliOpen services written in this
Refer to devtools/package.yaml file for services in go language and their build command
go build github.com/CaliOpen/Caliopen/src/backend/protocols/go.smtp/cmd/caliopen_lmtpd
Will produce a caliopen_lmtp binary from where this command is launched inside the $GOPATH
Python developments for CaliOpen
apt-get install virtualenv libffi-dev gcc python-dev
To start the apiv1 service and develop on it, you can use the pyramid pserve command to start a local http server that will be restarted each time you update part of the code.
cd src/backend pserve configs/apiv1.ini --reload
Message queue worker
This service process nats message for : - incoming SMTP message - incomling Twitter message - cryptographic public key actions - contact actions (create, update)
cd src/backend/interfaces/NATS/py.client/caliopen_nats python listener.py -f ../../../../configs/caliopen.yaml.template