Slide 1

Slide 1 text

Go Package Development (PMBOHษڧձJO0LJOBXBPLJHP

Slide 2

Slide 2 text

@Tomohiro

Slide 3

Slide 3 text

http://tomohiro.me/go-gyazo

Slide 4

Slide 4 text

http://tomohiro.me/gyazo-cli

Slide 5

Slide 5 text

Writing Code with Atom + goplus • gocode • gofmt, go imports • golint • vet • godef • gorename

Slide 6

Slide 6 text

Vendoring by govend (Go 1.6+) $ govend -v github.com/google/go-querystring/query golang.org/x/oauth2 google.golang.org/appengine/urlfetch google.golang.org/appengine/internal/urlfetch github.com/golang/protobuf/proto github.com/golang/protobuf/proto/testdata github.com/golang/protobuf/proto/proto3_proto google.golang.org/appengine/internal google.golang.org/appengine/internal/remote_api google.golang.org/appengine/internal/log google.golang.org/appengine/internal/datastore google.golang.org/appengine/internal/base golang.org/x/net/context golang.org/x/oauth2/internal …

Slide 7

Slide 7 text

Testing by go test $ go test -v ./gyazo -cover === RUN TestNewClient --- PASS: TestNewClient (0.00s) === RUN TestNewClient_EmptyAccessToken --- PASS: TestNewClient_EmptyAccessToken (0.00s) === RUN TestList --- PASS: TestList (0.00s) === RUN TestList_InvalidToken --- PASS: TestList_InvalidToken (0.00s) === RUN TestUpload --- PASS: TestUpload (0.00s) === RUN TestDelete --- PASS: TestDelete (0.00s) PASS coverage: 74.3% of statements

Slide 8

Slide 8 text

with Travis CI https://travis-ci.org/Tomohiro/go-gyazo

Slide 9

Slide 9 text

with goveralls for Coveralls https://coveralls.io/github/Tomohiro/go-gyazo

Slide 10

Slide 10 text

Documentation on GoDoc https://godoc.org/github.com/Tomohiro/go-gyazo/gyazo

Slide 11

Slide 11 text

Cross Compiling by gox $ gox -os "darwin linux windows" -arch "386 amd64" -output "pkg/{{.OS}}_{{.Arch}}/gyazo" Number of parallel builds: 3 --> windows/amd64: github.com/Tomohiro/gyazo-cli --> linux/386: github.com/Tomohiro/gyazo-cli --> darwin/386: github.com/Tomohiro/gyazo-cli --> darwin/amd64: github.com/Tomohiro/gyazo-cli --> linux/amd64: github.com/Tomohiro/gyazo-cli --> windows/386: github.com/Tomohiro/gyazo-cli $ tree pkg/ pkg/ |-- darwin_386 | `-- gyazo |-- darwin_amd64 | `-- gyazo |-- linux_386 …

Slide 12

Slide 12 text

Release the package to GitHub Releases by ghr $ tree pkg/ pkg/ `-- dist `-- 0.4.1 |-- 0.4.1_SHA256SUMS |-- gyazo_0.4.1_darwin_386.zip |-- gyazo_0.4.1_darwin_amd64.zip |-- gyazo_0.4.1_linux_386.zip |-- gyazo_0.4.1_linux_amd64.zip |-- gyazo_0.4.1_windows_386.zip `-- gyazo_0.4.1_windows_amd64.zip $ ghr -u tomohiro -r gyazo-cli 0.4.1 pkg/dist/0.4.1 --> Uploading: 0.4.1_SHA256SUMS --> Uploading: gyazo_0.4.1_darwin_amd64.zip --> Uploading: gyazo_0.4.1_window_amd64.zip --> Uploading: gyazo_0.4.1_darwin_386.zip --> Uploading: gyazo_0.4.1_linux_amd64.zip --> Uploading: gyazo_0.4.1_linux_386.zip --> Uploading: gyazo_0.4.1_windows_386.zip

Slide 13

Slide 13 text

on GitHub Releases https://github.com/Tomohiro/gyazo-cli/releases

Slide 14

Slide 14 text

No content