Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a lint action #108

Merged
merged 9 commits into from
Feb 8, 2021
Merged

Add a lint action #108

merged 9 commits into from
Feb 8, 2021

Conversation

lestrrat
Copy link
Contributor

@lestrrat lestrrat commented Feb 1, 2021

fixes #105

The go vet is appended, because I have seen some important
lint issues that are disabled by golangci-lint being reported by
the vanilla go vet commnand
@lestrrat
Copy link
Contributor Author

lestrrat commented Feb 1, 2021

@goccy というわけで当然テストは落ちます! :)

@goccy
Copy link
Owner

goccy commented Feb 1, 2021

timeout しちゃってるみたいなので、何かしら設定してあげる必要がありそうです〜!

@lestrrat
Copy link
Contributor Author

lestrrat commented Feb 1, 2021

これ、ローカルでもたまにあるんですけど、何回か走らせてると普通に動くんですよね…

@lestrrat
Copy link
Contributor Author

lestrrat commented Feb 1, 2021

--timeou=5m ででるようになったみたいです。

これはちなみに、ですけど、go-jsonは他のプロジェクトに比べて明らかにgolangci-lintが遅い気がします!

@goccy
Copy link
Owner

goccy commented Feb 1, 2021

自動生成ファイルとか、一部のカバレッジ向上目的のでかいテストファイルを除いたりすると多少改善するかな...
といった感じですかねえ。そのあたりは自分の方で調整してみようと思います。

@goccy goccy mentioned this pull request Feb 1, 2021
@goccy
Copy link
Owner

goccy commented Feb 1, 2021

一度 master をとりこんでいただくと、 lint の error が解消されるかと思います...!
( .golangci.yml がコンフリクトしてしまったので、 disable linter のまわりだけちょっといじらないといけないかもです )

@lestrrat
Copy link
Contributor Author

lestrrat commented Feb 1, 2021

僕の手元ではまだちょっとだけ残ってるみたいです。最初のやつはなんかそこだけ無視指定でいい気もしますが、最後の三つは対処したほうがよさそう。ちなみにgolangci-lint、すごいペースで新しいバージョンが出るので、僕と @goccy さんのバージョンがあってないとかもありそう。

ちなみに今見たらActionsに指定してたバージョンも古かったので一応このあと最新版にひきあげておきます(1.36.0)

lestrrat@finch go-json % golangci-lint run ./...
encode_string.go:400:37: unsafeptr: possible misuse of reflect.SliceHeader (govet)
	return *(*[]uint64)(unsafe.Pointer(&reflect.SliceHeader{
	                                   ^
decode_slice.go:33:5: variable cap has same name as predeclared identifier (predeclared)
				cap := 2
				^
decode_slice.go:87:4: variable cap has same name as predeclared identifier (predeclared)
			cap := slice.cap
			^
decode_slice.go:187:4: variable cap has same name as predeclared identifier (predeclared)
			cap := slice.cap
			^

@goccy goccy mentioned this pull request Feb 3, 2021
@goccy
Copy link
Owner

goccy commented Feb 3, 2021

v1.36.0 で通ったものを master に入れておきました。

go vet ./... で出る以下のエラーは false positive なので ( 大体 encoding/json に存在するテストケース起因のもの )、
とりあえず golangci-lint だけでも良さそうでした。

# github.com/goccy/go-json_test
./decode_test.go:2363:2: struct field m has json tag but is not exported
./decode_test.go:2364:2: struct field m2 has json tag but is not exported
./decode_test.go:2366:2: struct field s has json tag but is not exported
./encode_test.go:107:4: struct field a has json tag but is not exported
./encode_test.go:440:4: struct field a has json tag but is not exported
./tagkey_test.go:62:2: struct field tag `:"BadFormat"` not compatible with reflect.StructTag.Get: bad syntax for struct tag key

@goccy goccy mentioned this pull request Feb 8, 2021
@goccy
Copy link
Owner

goccy commented Feb 8, 2021

検証のために #114 を作成してみました。

@lestrrat
Copy link
Contributor Author

lestrrat commented Feb 8, 2021

ああ。go vetととればいいのかな
まぁ僕の場合それで探せてなかったケースがいくつかあった、ってだけなので…

@goccy goccy merged commit 13751b0 into goccy:master Feb 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Consider using golangci-lint
2 participants