cfa299d2ee
Nomad was manually updated, so revert that to the version in master, remove it from vendor.json and add it to the ignore list. Update all packages that were in an unknown state to their latest master commits. |
||
---|---|---|
.. | ||
client | ||
errors | ||
http | ||
jpc | ||
LICENSE | ||
README.md | ||
gocommon.go | ||
version.go | ||
wercker.yml |
README.md
gocommon
Common Go library for Joyent's Triton and Manta.
Installation
Use go-get
to install gocommon.
go get github.com/joyent/gocommon
Documentation
Auto-generated documentation can be found on godoc.
- github.com/joyent/gocommon
- github.com/joyent/gocommon/client
- github.com/joyent/gocommon/errors
- github.com/joyent/gocommon/http
- github.com/joyent/gocommon/jpc
- github.com/joyent/gocommon/testing
Contributing
Report bugs and request features using GitHub Issues, or contribute code via a GitHub Pull Request. Changes will be code reviewed before merging. In the near future, automated tests will be run, but in the meantime please go fmt
, go lint
, and test all contributions.
Developing
This library assumes a Go development environment setup based on How to Write Go Code. Your GOPATH environment variable should be pointed at your workspace directory.
You can now use go get github.com/joyent/gocommon
to install the repository to the correct location, but if you are intending on contributing back a change you may want to consider cloning the repository via git yourself. This way you can have a single source tree for all Joyent Go projects with each repo having two remotes -- your own fork on GitHub and the upstream origin.
For example if your GOPATH is ~/src/joyent/go
and you're working on multiple repos then that directory tree might look like:
~/src/joyent/go/
|_ pkg/
|_ src/
|_ github.com
|_ joyent
|_ gocommon
|_ gomanta
|_ gosdc
|_ gosign
Recommended Setup
$ mkdir -p ${GOPATH}/src/github.com/joyent
$ cd ${GOPATH}/src/github.com/joyent
$ git clone git@github.com:<yourname>/gocommon.git
# fetch dependencies
$ git clone git@github.com:<yourname>/gosign.git
$ go get -v -t ./...
# add upstream remote
$ cd gocommon
$ git remote add upstream git@github.com:joyent/gocommon.git
$ git remote -v
origin git@github.com:<yourname>/gocommon.git (fetch)
origin git@github.com:<yourname>/gocommon.git (push)
upstream git@github.com:joyent/gocommon.git (fetch)
upstream git@github.com:joyent/gocommon.git (push)
Run Tests
The library needs values for the SDC_URL
, MANTA_URL
, MANTA_KEY_ID
and SDC_KEY_ID
environment variables even though the tests are run locally. You can generate a temporary key and use its fingerprint for tests without adding the key to your Triton Cloud account.
# create a temporary key
ssh-keygen -b 2048 -C "Testing Key" -f /tmp/id_rsa -t rsa -P ""
# set up environment
# note: leave the -E md5 argument off on older ssh-keygen
export KEY_ID=$(ssh-keygen -E md5 -lf /tmp/id_rsa | awk -F' ' '{print $2}' | cut -d':' -f2-)
export SDC_KEY_ID=${KEY_ID}
export MANTA_KEY_ID=${KEY_ID}
export SDC_URL=https://us-east-1.api.joyent.com
export MANTA_URL=https://us-east.manta.joyent.com
cd ${GOPATH}/src/github.com/joyent/gocommon
go test ./...
Build the Library
cd ${GOPATH}/src/github.com/joyent/gocommon
go build ./...