{"push_id":849776002,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"8802c8c07af07a5fe81ba3f463ebdf1162a62e1b","before":"90b000e8767925f99e4b0262bea5f42d2f466605","commits":[{"sha":"956bc31645a0645b3c7e2199adc6716f89e1d5e4","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Add `go` and `go-env` goals.\n\nThese goals support running arbitrary go commands and arbitrary\nthird-party commands that respect the $GOROOT and $GOPATH.\n\nIn particular, 2 usecases are immediately enabled:\n1. Certain enhanced Go editor environments now work with pants Go source\n   trees including their 3rdparty deps, two of which this change was\n   tested with: The GoSublime plugin for the Sublime Text editor and the\n   go-vim plugin for the vim editor.\n2. Certain go tooling without direct pants support can be used.  In\n   particular `./pants go [targets] -- vet` now runs `go vet` for the\n   given targets providing linting for common non-compile-time errors.\n\nTests are added for these tasks.\n\nTesting Done:\nManually tested with go-vim and sublime via:\n```\n./pants go-env contrib/go/examples:: -- subl\n./pants go-env contrib/go/examples:: -- vim\n```\n\nIn both cases, the plugins could both browse to 3rdparty code, stdlib code\nand symbol completion for these worked as well.  In the case of the stdlib\ncode, browsing was against the `~/.cache/pants bootstrapped` Go\ndistribution as would be hoped.\n\nAdditionally successfully used the following to vet examples:\n```\n$ ./pants go contrib/go/examples/:: -- vet\nINFO] Detected git repository at /home/jsirois/dev/3rdparty/jsirois-pants4 on branch jsirois/go/go\n.pants.d/go/go/contrib.go.examples.3rdparty.go.github.com.kr.pretty.pretty/src/github.com/kr/pretty/formatter_test.go:46: possible misuse of unsafe.Pointer\nexit status 1\n.pants.d/go/go/contrib.go.examples.3rdparty.go.github.com.gorilla.mux.mux/src/github.com/gorilla/mux/mux_test.go:1080: arg len(ancestors) for printf verb %s of wrong type: int\nexit status 1\n.pants.d/go/go/contrib.go.examples.3rdparty.go.gopkg.in.check.v1.check.v1/src/gopkg.in/check.v1/printer.go:89: go/printer.CommentedNode composite literal uses unkeyed fields\n.pants.d/go/go/contrib.go.examples.3rdparty.go.gopkg.in.check.v1.check.v1/src/gopkg.in/check.v1/printer.go:162: go/ast.ExprStmt composite literal uses unkeyed fields\n.pants.d/go/go/contrib.go.examples.3rdparty.go.gopkg.in.check.v1.check.v1/src/gopkg.in/check.v1/printer.go:162: go/ast.Ellipsis composite literal uses unkeyed fields\n.pants.d/go/go/contrib.go.examples.3rdparty.go.gopkg.in.check.v1.check.v1/src/gopkg.in/check.v1/printer.go:167: go/ast.BlockStmt composite literal uses unkeyed fields\nexit status 1\n...\n```\n\nJust running against `contrib/go/examples/src::` produced no errors.\n\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/88444876\n\nBugs closed: 2476, 2477\n\nReviewed at https://rbcommons.com/s/twitter/r/3060/","distinct":true,"url":"https://api.github.com/repos/benjyw/pants/commits/956bc31645a0645b3c7e2199adc6716f89e1d5e4"},{"sha":"8163d6850d0f33d4ea6614a97fc499765e824f94","author":{"email":"bb1f132dcb86bfc59bf4a043a3139a9ac7c0b658@gmail.com","name":"Stu Hood"},"message":"For prepare.services, avoid empty classpath entries by only selecting jvm targets that have services defined\n\nPrepareServices should only select targets which actually have services. I don't actually know why the previous logic (to select all JvmTargets) existed though, so hoping reviewers have insight there.\n\nThis prevents creating empty classpath entries for all JvmTargets (which significantly slows down classloading time).\n\nTesting Done:\nhttps://travis-ci.org/pantsbuild/pants/builds/88266699\n\nBugs closed: 2472\n\nReviewed at https://rbcommons.com/s/twitter/r/3058/","distinct":true,"url":"https://api.github.com/repos/benjyw/pants/commits/8163d6850d0f33d4ea6614a97fc499765e824f94"},{"sha":"8802c8c07af07a5fe81ba3f463ebdf1162a62e1b","author":{"email":"040cff05bd320eb0560246813fe142b421636f09@gmail.com","name":"Benjy Weinberger"},"message":"Refactor the python checkstyle plugin system.\n\nNow instead of the plugins knowing about their corresponding\nsubsystems, the subsystems know about (and create) the plugins.\n\nThis allows us to only import (and therefore parse and interpret)\ncode we're actually going to use.  Performance profiles show that\nalmost a second of startup time is spent just loading backends,\nand checkstyle was a good chunk of that.\n\nIf we like how this works, we can contemplate something similar\nfor backend code in general. Right now we load huge amounts of code\neven if we never invoke it.\n\nThis change also creates some useful unittest infrastructure for\ntesting these checkstyle plugins. As a result it switches all\nthe relevant tests to use our idiomatic style (self.assertTrue\ninstead of assert keyword, and so on).\n\nTesting Done:\nCI passes: https://travis-ci.org/pantsbuild/pants/builds/88461495\n\nReviewed at https://rbcommons.com/s/twitter/r/3061/","distinct":true,"url":"https://api.github.com/repos/benjyw/pants/commits/8802c8c07af07a5fe81ba3f463ebdf1162a62e1b"}]}