hundreds-father-404
10/07/2021, 7:33 PMhundreds-father-404
10/07/2021, 7:34 PM_go_internal_package
, corresponding to a Go package / a directory of first-party .go
code
• _go_external_package
, corresponding to a package belonging to an external/third-party "module"
• go_mod
, which generates both of those targets based on the `go.mod`/`go.sum` contents and your source fileshundreds-father-404
10/07/2021, 7:34 PM/internal/
Some ideas for new names:
• _go_source_package
and _go_external_package
• _go_1stparty_package
and _go_3rdparty_package
• _go_firstparty_package
and _go_thirdparty_package
hundreds-father-404
10/07/2021, 7:34 PMhundreds-father-404
10/07/2021, 7:36 PMworried-salesclerk-37834
10/07/2021, 7:48 PMhappy-kitchen-89482
10/07/2021, 7:54 PMhundreds-father-404
10/07/2021, 7:55 PMfirstparty
> 1stparty
? Especially since the only time you'd right this out explicitly is ./pants filter --target-type
- the extra characters are worth itloud-stone-83419
10/07/2021, 7:59 PMhundreds-father-404
10/07/2021, 8:09 PMpackage main
• gofmt
hooks up to ./pants lint
and ./pants fmt
• onboarding is pretty effortless. You run ./pants tailor
and it will generate ~1 BUILD file with a go_mod
target for each go.mod
file, and go_binary
wherever there's a package main
. Dependency inference + a new feature of target generation get rid of the boilerplate
• we optimized a bunch the past two weeks. Benchmark went from 10 minutes(!!) for our very first proof-of-concept to 33 seconds on a cold cache
Remaining work:
• ./pants test
integration
• ./pants check
integration (i.e. check if something compiles)
• some edge cases with certain things not building, like if there are capital letters in the import path 👀