Go: x/tools/cmd/stringer: ๊ณต๊ธ‰์—…์ฒด ์ข…์†์„ฑ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 08์›” 10์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: golang/go

๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์งˆ๋ฌธ์— ๋‹ตํ•˜์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ ํ•ด์š”!

์–ด๋–ค ๋ฒ„์ „์˜ Go๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ( go version )?

์ด๋™ ๋ฒ„์ „ go1.8.3 linux/amd64

์–ด๋–ค ์šด์˜ ์ฒด์ œ ๋ฐ ํ”„๋กœ์„ธ์„œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ( go env )?

์šฐ๋ถ„ํˆฌ ๋ฆฌ๋ˆ…์Šค, amd64

๋ญ ํ–ˆ์–ด?

๊ณต๊ธ‰์—…์ฒด ์ข…์†์„ฑ์„ ๊ฐ€์ ธ์˜ค๋Š” ํŒจํ‚ค์ง€์—์„œ golang.org/x/tools/cmd/stringer๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์—‡์„ ๋ณผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๊นŒ?

๋„๊ตฌ๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์‹  ๋ฌด์—‡์„ ๋ณด์•˜์Šต๋‹ˆ๊นŒ?

'go build' ๋ฐ ๊ธฐํƒ€ ๋ชจ๋“  ๋„๊ตฌ๋Š” $GOPATH/src/vendor์—์„œ ๊ณต๊ธ‰๋˜๋Š” ์ข…์†์„ฑ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์ŠคํŠธ๋ง๊ฑฐ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

$ go build plinth/auth
$ go get golang.org/x/tools/cmd/stringer
$ go generate plinth/auth
stringer: checking package: auth.go:8:2: could not import golang.org/x/net/context (can't find import: vendor/golang.org/x/net/context)
src/plinth/auth/auth.go:37: running "stringer": exit status 1
$ stringer -type Role $GOPATH/src/plinth/auth
stringer: checking package: [...]/src/plinth/auth/auth.go:8:2: could not import golang.org/x/net/context (can't find import: vendor/golang.org/x/net/context)
$ ls $GOPATH/src/vendor/golang.org/x/net/context
context.go  context_test.go  ctxhttp  go17.go  go19.go  pre_go17.go  pre_go19.go  withtimeout_test.go

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@ChimeraCoder #10249 ์ž ๊ธˆ์„ ํ•ด์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์šฐ๋ฆฌ๋„ ์ด ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. https://travis-ci.org/stripe/veneur/builds/278659663์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด Go 1.8์—์„œ๋งŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. Go 1.9 ๋Œ€์‹  Go 1.8์„ ์‚ฌ์šฉ ํ•˜๋„๋ก ํ•ด๋‹น pull ์š”์ฒญ ์˜ Dockerfile์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๋กœ์ปฌ์—์„œ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐพ์„ ์ˆ˜ ์—†๋Š” ํŒจํ‚ค์ง€(์ด ๊ฒฝ์šฐ github.com/gogo/protobuf/proto )๊ฐ€ go install ๋กœ ์„ค์น˜๋œ ๊ฒฝ์šฐ์—๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ŠคํŠธ๋ง๊ฑฐ ์ž„ํฌํ„ฐ๋Š” 1.8์šฉ ๊ธฐ๋ณธ Go ์ž„ํฌํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ 1.9์šฉ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค .

Stringer๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ go install ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

stringer ์—์„œ ์ด๊ฒƒ์„ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ go/importer ์ž์ฒด์˜ ๋™์ž‘์ด ์ด๋Ÿฐ ์‹์œผ๋กœ 1.8๊ณผ 1.9 ์‚ฌ์ด์—์„œ ๋ณ€๊ฒฝ๋œ ์ด์œ ๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์—ฌ๊ธฐ์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ๋Š” Go 1.10์—์„œ ์ˆ˜์ •๋˜์—ˆ์ง€๋งŒ ์ตœ๊ทผ์— ๋‹ค์‹œ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋„์ž…ํ•œ ์ปค๋ฐ‹์ด CL 40403์„ ๋˜๋Œ๋ฆฌ๋Š” https://github.com/golang/tools/commit/ffe88906718454e356e61776b54256e873fc133b ๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

https://github.com/golang/go/issues/25650 ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋ฐ‹์ด ๋˜๋Œ๋ ค์กŒ์ง€๋งŒ ๊ด€๋ จ์ด ์žˆ๋Š” https://github.com/golang/go/issues/10249 ๋ฅผ ๋‹ค์‹œ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค.

์›๋ž˜ ๋‚˜์ด ๋•Œ๋ฌธ์— ์ž ๊ฒจ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ดํ‹€ ์ „์— ๋‹ค์‹œ ์—ด๋ ธ์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ณต๋™ ์ž‘์—…์ž๋กœ ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

@ChimeraCoder #10249 ์ž ๊ธˆ์„ ํ•ด์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰