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_packagehundreds-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 👀