From 3162bc9f5c7b3b6921c253417a2d943c63e240b9 Mon Sep 17 00:00:00 2001 From: George Date: Tue, 16 Oct 2018 12:59:17 +0300 Subject: [PATCH 1/9] godep and travis --- .gitignore | 1 + .travis.yml | 10 ++++------ Gopkg.lock | 40 ++++++++++++++++++++++++++++++++++++++++ Gopkg.toml | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 Gopkg.lock create mode 100644 Gopkg.toml diff --git a/.gitignore b/.gitignore index 0b9f9b8..631e4f8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea/ _vendor/ +vendor/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index f0d2dc9..0f28bbb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,8 @@ notifications: email: false language: go go: - - 1.8 - - 1.9 + - "1.8" + - "1.9" - "1.10" services: @@ -13,12 +13,10 @@ services: before_install: - travis_retry docker pull yandex/clickhouse-server - docker run -d -p 127.0.0.1:8123:8123 --name dbr-clickhouse-server yandex/clickhouse-server + - curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh install: - - travis_retry go get -u github.com/golang/lint/golint - - travis_retry go get github.com/mattn/goveralls - - travis_retry go get golang.org/x/tools/cmd/cover - - travis_retry go get github.com/stretchr/testify + - travis_retry dep ensure before_script: - export TEST_CLICKHOUSE_DSN="http://localhost:8123/default" diff --git a/Gopkg.lock b/Gopkg.lock new file mode 100644 index 0000000..9f4ee50 --- /dev/null +++ b/Gopkg.lock @@ -0,0 +1,40 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" + name = "github.com/davecgh/go-spew" + packages = ["spew"] + pruneopts = "UT" + revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" + version = "v1.1.1" + +[[projects]] + digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe" + name = "github.com/pmezard/go-difflib" + packages = ["difflib"] + pruneopts = "UT" + revision = "792786c7400a136282c1664665ae0a8db921c6c2" + version = "v1.0.0" + +[[projects]] + digest = "1:5110e3d4f130772fd39e6ce8208ad1955b242ccfcc8ad9d158857250579c82f4" + name = "github.com/stretchr/testify" + packages = [ + "assert", + "require", + "suite", + ] + pruneopts = "UT" + revision = "f35b8ab0b5a2cef36673838d662e249dd9c94686" + version = "v1.2.2" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + input-imports = [ + "github.com/stretchr/testify/assert", + "github.com/stretchr/testify/suite", + ] + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml new file mode 100644 index 0000000..9125d59 --- /dev/null +++ b/Gopkg.toml @@ -0,0 +1,34 @@ +# Gopkg.toml example +# +# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html +# for detailed Gopkg.toml documentation. +# +# required = ["github.com/user/thing/cmd/thing"] +# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] +# +# [[constraint]] +# name = "github.com/user/project" +# version = "1.0.0" +# +# [[constraint]] +# name = "github.com/user/project2" +# branch = "dev" +# source = "github.com/myfork/project2" +# +# [[override]] +# name = "github.com/x/y" +# version = "2.4.0" +# +# [prune] +# non-go = false +# go-tests = true +# unused-packages = true + + +[[constraint]] + name = "github.com/stretchr/testify" + version = "1.2.2" + +[prune] + go-tests = true + unused-packages = true From 57a8b23049e6739d13cb62ec0a5810b97f457f5b Mon Sep 17 00:00:00 2001 From: George Date: Tue, 16 Oct 2018 13:25:26 +0300 Subject: [PATCH 2/9] vendor ignore in travis and ensure --- .travis.yml | 6 +++--- Gopkg.lock | 17 +++++++++++++++++ Gopkg.toml | 1 + 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0f28bbb..756b119 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,14 +16,14 @@ before_install: - curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh install: - - travis_retry dep ensure + - travis_retry dep ensure -v before_script: - export TEST_CLICKHOUSE_DSN="http://localhost:8123/default" script: - - test -z "$(golint ./... | tee /dev/stderr)" + - test -z "$(golint ./... | grep -v vendor | tee /dev/stderr)" - go vet ./... - - test -z "$(gofmt -d -s . | tee /dev/stderr)" + - test -z "$(gofmt -d -s $(find . -name \*.go -print | grep -v vendor) | tee /dev/stderr)" - go test -v -covermode=count -coverprofile=coverage.out . - goveralls -coverprofile=coverage.out -service=travis-ci diff --git a/Gopkg.lock b/Gopkg.lock index 9f4ee50..454e0c9 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -9,6 +9,14 @@ revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" version = "v1.1.1" +[[projects]] + digest = "1:d1f70995feb8132ca8e99b8bba29823c3273f68c239d9ecd93fa5442a56d546f" + name = "github.com/mattn/goveralls" + packages = ["."] + pruneopts = "UT" + revision = "b71a1e4855f87991aff01c2c833a75a07059c61c" + version = "v0.0.2" + [[projects]] digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe" name = "github.com/pmezard/go-difflib" @@ -29,10 +37,19 @@ revision = "f35b8ab0b5a2cef36673838d662e249dd9c94686" version = "v1.2.2" +[[projects]] + branch = "master" + digest = "1:1823635465fafd46fb48e79ed2a8fd05464543d625d008d9142a144f785b7a88" + name = "golang.org/x/tools" + packages = ["cover"] + pruneopts = "UT" + revision = "5d4988d199e2aeefda3528f599e06410c43caa29" + [solve-meta] analyzer-name = "dep" analyzer-version = 1 input-imports = [ + "github.com/mattn/goveralls", "github.com/stretchr/testify/assert", "github.com/stretchr/testify/suite", ] diff --git a/Gopkg.toml b/Gopkg.toml index 9125d59..d28a359 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -24,6 +24,7 @@ # go-tests = true # unused-packages = true +required = ["github.com/mattn/goveralls"] [[constraint]] name = "github.com/stretchr/testify" From 618ce5b49344f55f7060cd52aff6bbebd3f0d9ff Mon Sep 17 00:00:00 2001 From: George Date: Tue, 16 Oct 2018 14:23:50 +0300 Subject: [PATCH 3/9] vendor build in travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 756b119..46e9204 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,7 @@ before_install: install: - travis_retry dep ensure -v + - go install ./vendor/... before_script: - export TEST_CLICKHOUSE_DSN="http://localhost:8123/default" From 3fa4256030968b3777a6dd5699c3a6cd8a90be41 Mon Sep 17 00:00:00 2001 From: George Date: Tue, 16 Oct 2018 20:01:27 +0300 Subject: [PATCH 4/9] indent changes and minor improvements --- README.md | 44 ++++++++++++++++++++++++++++++++++++++------ config.go | 3 +-- helpers.go | 5 ++--- 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index dabe37e..24f6c47 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ import ( "database/sql" "log" "time" - + "github.com/mailru/go-clickhouse" ) @@ -86,7 +86,18 @@ func main() { if err != nil { log.Fatal(err) } - stmt, err := tx.Prepare("INSERT INTO example (country_code, os_id, browser_id, categories, action_day, action_time) VALUES (?, ?, ?, ?, ?, ?)") + stmt, err := tx.Prepare(` + INSERT INTO example ( + country_code, + os_id, + browser_id, + categories, + action_day, + action_time + ) VALUES ( + ?, ?, ?, ?, ?, ? + )`) + if err != nil { log.Fatal(err) } @@ -108,7 +119,17 @@ func main() { log.Fatal(err) } - rows, err := connect.Query("SELECT country_code, os_id, browser_id, categories, action_day, action_time FROM example") + rows, err := connect.Query(` + SELECT + country_code, + os_id, + browser_id, + categories, + action_day, + action_time + FROM + example`) + if err != nil { log.Fatal(err) } @@ -120,10 +141,19 @@ func main() { categories []int16 actionDay, actionTime time.Time ) - if err := rows.Scan(&country, &os, &browser, &categories, &actionDay, &actionTime); err != nil { + if err := rows.Scan( + &country, + &os, + &browser, + &categories, + &actionDay, + &actionTime, + ); err != nil { log.Fatal(err) } - log.Printf("country: %s, os: %d, browser: %d, categories: %v, action_day: %s, action_time: %s", country, os, browser, categories, actionDay, actionTime) + log.Printf("country: %s, os: %d, browser: %d, categories: %v, action_day: %s, action_time: %s", + country, os, browser, categories, actionDay, actionTime, + ) } } ``` @@ -161,7 +191,9 @@ func main() { } for _, item := range items { - log.Printf("country: %s, os: %d, browser: %d, categories: %v, action_time: %s", item.CountryCode, item.OsID, item.BrowserID, item.Categories, item.ActionTime) + log.Printf("country: %s, os: %d, browser: %d, categories: %v, action_time: %s", + item.CountryCode, item.OsID, item.BrowserID, item.Categories, item.ActionTime, + ) } } ``` diff --git a/config.go b/config.go index ffc888e..28e5976 100644 --- a/config.go +++ b/config.go @@ -110,8 +110,7 @@ func ParseDSN(dsn string) (*Config, error) { } cfg := NewConfig() - cfg.Scheme = u.Scheme - cfg.Host = u.Host + cfg.Scheme, cfg.Host = u.Scheme, u.Host if len(u.Path) > 1 { // skip '/' cfg.Database = u.Path[1:] diff --git a/helpers.go b/helpers.go index d967fcc..d7edb01 100644 --- a/helpers.go +++ b/helpers.go @@ -52,7 +52,7 @@ func readResponse(response *http.Response) (result []byte, err error) { } func numOfColumns(data []byte) int { - cnt := 0 + var cnt int for _, ch := range data { switch ch { case '\t': @@ -66,8 +66,7 @@ func numOfColumns(data []byte) int { // splitTSV splits one row of tab separated values, returns begin of next row func splitTSV(data []byte, out []string) int { - i := 0 - k := 0 + var i, k int for j, ch := range data { switch ch { case '\t': From f54b2e901c95535b64eca3e9fc70648617140d2c Mon Sep 17 00:00:00 2001 From: George Date: Tue, 16 Oct 2018 20:03:55 +0300 Subject: [PATCH 5/9] Added go 1.11 at the travis jobs --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 46e9204..f8aa544 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ go: - "1.8" - "1.9" - "1.10" + - "1.11" services: - docker From e7f0bbf778000a6f2ec721a68d4c72e2bd804148 Mon Sep 17 00:00:00 2001 From: George Date: Tue, 16 Oct 2018 22:14:49 +0300 Subject: [PATCH 6/9] manual run of tests and dependencies --- .gitignore | 3 ++- .travis.yml | 11 ++++------- Gopkg.lock | 23 +++++++++++++++-------- Gopkg.toml | 3 ++- Makefile | 15 +++++++++++++++ 5 files changed, 38 insertions(+), 17 deletions(-) create mode 100644 Makefile diff --git a/.gitignore b/.gitignore index 631e4f8..25afde9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea/ _vendor/ -vendor/ \ No newline at end of file +vendor/ +coverage.out \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index f8aa544..2cc668b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,19 +13,16 @@ services: before_install: - travis_retry docker pull yandex/clickhouse-server - - docker run -d -p 127.0.0.1:8123:8123 --name dbr-clickhouse-server yandex/clickhouse-server + - make up_docker_server - curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh install: - - travis_retry dep ensure -v - - go install ./vendor/... + - make init + - travis_retry go get -v github.com/mattn/goveralls/... before_script: - export TEST_CLICKHOUSE_DSN="http://localhost:8123/default" script: - - test -z "$(golint ./... | grep -v vendor | tee /dev/stderr)" - - go vet ./... - - test -z "$(gofmt -d -s $(find . -name \*.go -print | grep -v vendor) | tee /dev/stderr)" - - go test -v -covermode=count -coverprofile=coverage.out . + - make test - goveralls -coverprofile=coverage.out -service=travis-ci diff --git a/Gopkg.lock b/Gopkg.lock index 454e0c9..8fa820d 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -10,12 +10,15 @@ version = "v1.1.1" [[projects]] - digest = "1:d1f70995feb8132ca8e99b8bba29823c3273f68c239d9ecd93fa5442a56d546f" - name = "github.com/mattn/goveralls" - packages = ["."] + branch = "travis-1.9" + digest = "1:e8f5d9c09a7209c740e769713376abda388c41b777ba8e9ed52767e21acf379f" + name = "github.com/golang/lint" + packages = [ + ".", + "golint", + ] pruneopts = "UT" - revision = "b71a1e4855f87991aff01c2c833a75a07059c61c" - version = "v0.0.2" + revision = "883fe33ffc4344bad1ecd881f61afd5ec5d80e0a" [[projects]] digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe" @@ -39,9 +42,13 @@ [[projects]] branch = "master" - digest = "1:1823635465fafd46fb48e79ed2a8fd05464543d625d008d9142a144f785b7a88" + digest = "1:e9c3bc86738be0a8025fe254cef7fd5e39048c6bbb69f60992fa057ba59a43ad" name = "golang.org/x/tools" - packages = ["cover"] + packages = [ + "go/gcexportdata", + "go/internal/gcimporter", + "go/types/typeutil", + ] pruneopts = "UT" revision = "5d4988d199e2aeefda3528f599e06410c43caa29" @@ -49,7 +56,7 @@ analyzer-name = "dep" analyzer-version = 1 input-imports = [ - "github.com/mattn/goveralls", + "github.com/golang/lint/golint", "github.com/stretchr/testify/assert", "github.com/stretchr/testify/suite", ] diff --git a/Gopkg.toml b/Gopkg.toml index d28a359..db08596 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -24,7 +24,8 @@ # go-tests = true # unused-packages = true -required = ["github.com/mattn/goveralls"] +# for tests +required = ["github.com/golang/lint/golint"] [[constraint]] name = "github.com/stretchr/testify" diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0aa90d1 --- /dev/null +++ b/Makefile @@ -0,0 +1,15 @@ +SHELL := /bin/bash + +init: + dep ensure -v + go install ./vendor/... + +up_docker_server: + test -n "$$(docker ps -a --format {{.Names}} | grep -o dbr-clickhouse-server)" && docker rm -f dbr-clickhouse-server; \ + docker run -p 127.0.0.1:8123:8123 --name dbr-clickhouse-server -d yandex/clickhouse-server; + +test: + test -z "$$(golint ./... | grep -v vendor | tee /dev/stderr)" + go vet ./... + test -z "$$(gofmt -d -s $$(find . -name \*.go -print | grep -v vendor) | tee /dev/stderr)" + go test -v -covermode=count -coverprofile=coverage.out . \ No newline at end of file From 1697cf3d65c98a376667436f068fc3c9dd180687 Mon Sep 17 00:00:00 2001 From: George Date: Tue, 16 Oct 2018 22:38:25 +0300 Subject: [PATCH 7/9] docker up before tests and dev readme --- Makefile | 2 +- README.md | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0aa90d1..72e52d7 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ up_docker_server: test -n "$$(docker ps -a --format {{.Names}} | grep -o dbr-clickhouse-server)" && docker rm -f dbr-clickhouse-server; \ docker run -p 127.0.0.1:8123:8123 --name dbr-clickhouse-server -d yandex/clickhouse-server; -test: +test: up_docker_server test -z "$$(golint ./... | grep -v vendor | tee /dev/stderr)" go vet ./... test -z "$$(gofmt -d -s $$(find . -name \*.go -print | grep -v vendor) | tee /dev/stderr)" diff --git a/README.md b/README.md index 24f6c47..879a1df 100644 --- a/README.md +++ b/README.md @@ -197,3 +197,13 @@ func main() { } } ``` + +## Development: +You can check the effect of changes on Travis CI or run tests locally: + +``` bash +make init # dep ensure and install +make test +``` + +_Remember that `init` will add a few binaries used for testing (like `golint`) into your GOPATH_ \ No newline at end of file From 8e504ed805e4b9bb63e5839971d74da8f38217b7 Mon Sep 17 00:00:00 2001 From: George Gabolaev Date: Sun, 18 Nov 2018 16:41:13 +0300 Subject: [PATCH 8/9] gopkg remove, indent and new lines --- .gitignore | 3 ++- Gopkg.lock | 64 ------------------------------------------------------ Gopkg.toml | 26 ---------------------- README.md | 2 +- 4 files changed, 3 insertions(+), 92 deletions(-) delete mode 100644 Gopkg.lock diff --git a/.gitignore b/.gitignore index 25afde9..3d443ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ _vendor/ vendor/ -coverage.out \ No newline at end of file +coverage.out +Gopkg.lock diff --git a/Gopkg.lock b/Gopkg.lock deleted file mode 100644 index 8fa820d..0000000 --- a/Gopkg.lock +++ /dev/null @@ -1,64 +0,0 @@ -# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. - - -[[projects]] - digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" - name = "github.com/davecgh/go-spew" - packages = ["spew"] - pruneopts = "UT" - revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" - version = "v1.1.1" - -[[projects]] - branch = "travis-1.9" - digest = "1:e8f5d9c09a7209c740e769713376abda388c41b777ba8e9ed52767e21acf379f" - name = "github.com/golang/lint" - packages = [ - ".", - "golint", - ] - pruneopts = "UT" - revision = "883fe33ffc4344bad1ecd881f61afd5ec5d80e0a" - -[[projects]] - digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe" - name = "github.com/pmezard/go-difflib" - packages = ["difflib"] - pruneopts = "UT" - revision = "792786c7400a136282c1664665ae0a8db921c6c2" - version = "v1.0.0" - -[[projects]] - digest = "1:5110e3d4f130772fd39e6ce8208ad1955b242ccfcc8ad9d158857250579c82f4" - name = "github.com/stretchr/testify" - packages = [ - "assert", - "require", - "suite", - ] - pruneopts = "UT" - revision = "f35b8ab0b5a2cef36673838d662e249dd9c94686" - version = "v1.2.2" - -[[projects]] - branch = "master" - digest = "1:e9c3bc86738be0a8025fe254cef7fd5e39048c6bbb69f60992fa057ba59a43ad" - name = "golang.org/x/tools" - packages = [ - "go/gcexportdata", - "go/internal/gcimporter", - "go/types/typeutil", - ] - pruneopts = "UT" - revision = "5d4988d199e2aeefda3528f599e06410c43caa29" - -[solve-meta] - analyzer-name = "dep" - analyzer-version = 1 - input-imports = [ - "github.com/golang/lint/golint", - "github.com/stretchr/testify/assert", - "github.com/stretchr/testify/suite", - ] - solver-name = "gps-cdcl" - solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index db08596..5f9bfca 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -1,29 +1,3 @@ -# Gopkg.toml example -# -# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html -# for detailed Gopkg.toml documentation. -# -# required = ["github.com/user/thing/cmd/thing"] -# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] -# -# [[constraint]] -# name = "github.com/user/project" -# version = "1.0.0" -# -# [[constraint]] -# name = "github.com/user/project2" -# branch = "dev" -# source = "github.com/myfork/project2" -# -# [[override]] -# name = "github.com/x/y" -# version = "2.4.0" -# -# [prune] -# non-go = false -# go-tests = true -# unused-packages = true - # for tests required = ["github.com/golang/lint/golint"] diff --git a/README.md b/README.md index 879a1df..0c94ebd 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ import ( "database/sql" "log" "time" - + "github.com/mailru/go-clickhouse" ) From 659dfd77c8f61a04481582c680e9c6031d9b1ea5 Mon Sep 17 00:00:00 2001 From: George Date: Sun, 18 Nov 2018 17:13:38 +0300 Subject: [PATCH 9/9] Makefile refactor --- Makefile | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 72e52d7..e6b3ab9 100644 --- a/Makefile +++ b/Makefile @@ -4,12 +4,15 @@ init: dep ensure -v go install ./vendor/... -up_docker_server: - test -n "$$(docker ps -a --format {{.Names}} | grep -o dbr-clickhouse-server)" && docker rm -f dbr-clickhouse-server; \ - docker run -p 127.0.0.1:8123:8123 --name dbr-clickhouse-server -d yandex/clickhouse-server; +up_docker_server: stop_docker_server + docker run --rm=true -p 127.0.0.1:8123:8123 --name dbr-clickhouse-server -d yandex/clickhouse-server; + +stop_docker_server: + test -n "$$(docker ps --format {{.Names}} | grep dbr-clickhouse-server)" && docker stop dbr-clickhouse-server || true test: up_docker_server test -z "$$(golint ./... | grep -v vendor | tee /dev/stderr)" - go vet ./... + go vet -v ./... test -z "$$(gofmt -d -s $$(find . -name \*.go -print | grep -v vendor) | tee /dev/stderr)" - go test -v -covermode=count -coverprofile=coverage.out . \ No newline at end of file + go test -v -covermode=count -coverprofile=coverage.out . + $(MAKE) stop_docker_server \ No newline at end of file