{"push_id":757540297,"size":27,"distinct_size":27,"ref":"refs/heads/master","head":"5fda92c23e3b5f13ffcd08dac9a0dfb3f96b818d","before":"31cde2e3c14fcaffd79e0a29b80d872b2266b380","commits":[{"sha":"defda638e1a6fa26a8b527fe6e973e7ef3b25cb5","author":{"email":"bb1f132dcb86bfc59bf4a043a3139a9ac7c0b658@gmail.com","name":"Stu Hood"},"message":"Fix crasher when no jvm_options are set\n\nWhen no jvm_options are set, scala_compile experiences a crash because jvm_options are `None`.\n\nTesting Done:\nhttps://github.com/pantsbuild/pants/pull/1930\n\nReviewed at https://rbcommons.com/s/twitter/r/2578/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/defda638e1a6fa26a8b527fe6e973e7ef3b25cb5"},{"sha":"ee99c80794e6b77a724bc17194165b971da0a181","author":{"email":"01dbad3a32472a219b04fa2c6a2e42f3815c76f2@gmail.com","name":"Sergey Serebryakov"},"message":"Add \"omnivorous\" ZincCompile to consume both java and scala sources\n\nPROBLEM:\nCurrently, java and scala targets are chunked separately, and (with isolated strategy) a separate execution graph is created for every chunk by JavaZincCompile and ScalaZincCompile. These graphs are then executed sequentially, meaning there are unnecessary artificial barriers in the execution flow, increasing the total compilation time.\n\nAlso, when Zinc is run in Nailgun, the static final caches like analysisCache are preserved in Nailgun between Zinc invocations. Since every GroupMember is a NailgunTask, and NailgunTask uses NailgunExecutor parameterized by the task's class name (actually by the executor_workdir, which includes the task's class name), different GroupMembers use different NailgunExecutors, ergo different Nailgun instances. In particular, JavaZincCompile and ScalaZincCompile use two different Nailgun instances, which means storing two separate copies of Zinc's internal state. While not necessarily affecting performance, this increases memory pressure.\n\nSOLUTION:\nDefine a new GroupMember which subclasses ZincCompile and consumes both java and scala sources. In GroupTask, it will claim all java and scala targets (the whole build graph), which will form a single chunk. When isolated strategy is used, the build graph is translated to the execution graph, which is executed in a single instance of the worker pool. Also, naturally, only one Nailgun instance is used to run Zinc for both languages, therefore only one copy of Zinc caches is stored.\n\nAdditionally, --enabled argument is added for jmake-based JavaCompile GroupMember, \"True\" by default.\n\nRESULT:\nThe sequence of GroupMembers now is: [AptCompile, JavaCompile, ZincCompile].\n1. All AnnotationProcessor Java targets are claimed by jmake-based AptCompile.\n2a. When --no-compile-java-enabled is used, JavaCompile becomes a no-op. All remaining Java and Scala targets are claimed by ZincCompile and compiled in a single chunk as described above. Using isolated strategy is recommended here.\n2b. When JavaCompile is not disabled, it claims all remaining Java targets. The remaining Scala targets are claimed by ZincCompile, so it behaves like ScalaZincCompile.\n\nOne should be able to painlessly test the single-chunk approach vs. multiple-chunks approach, as well as global vs. isolated strategy, comparing the performance.\n\n> ./pants test tests/python/pants_test:all\n> SUCCESS\n\nBugs closed: 1830\n\nReviewed at https://rbcommons.com/s/twitter/r/2561/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/ee99c80794e6b77a724bc17194165b971da0a181"},{"sha":"85de344c2ec4dec21259cd77b133d83f441412e3","author":{"email":"bb1f132dcb86bfc59bf4a043a3139a9ac7c0b658@gmail.com","name":"Stu Hood"},"message":"Do fewer classpath calculations in `junit_run`.\n\n- Even when coverage is not enabled, we compute a global classpath for junit to pass to `def instrument`. Make this lazy.\n- In the case of a single target owning N tests, the batch would contain N tests for the same target. We would then re-calculate the same classpath repeatedly. Dedupe targets.\n\nTesting Done:\nhttps://github.com/pantsbuild/pants/pull/1929\n\nReviewed at https://rbcommons.com/s/twitter/r/2576/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/85de344c2ec4dec21259cd77b133d83f441412e3"},{"sha":"175513c6c451bfb16059b4ae0f8d05820647682e","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Fix ApacheThriftGen chroot normalization scope.\n\nPreviously, ApacheThriftGen attempted to normalize the gen chroot once\nper file.  In a multi-file target with nested namespaces, this could\nlead to move errors when a previous file generated shared namespace\ndirectories.\n\nA `test_nested_namespaces` test is added that fails without the fix and\npasses with the fix.\n\nTesting Done:\nPaul provided an example repo here:\n  https://github.com/pgroudas/issues-1918\nThe README describes steps that fail and reproduce the bug using pants\n0.0.40, but with this fix, pants works against that sample repo.\n\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/74287990\n\nBugs closed: 1918, 1919\n\nReviewed at https://rbcommons.com/s/twitter/r/2568/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/175513c6c451bfb16059b4ae0f8d05820647682e"},{"sha":"ab901585d05031d88930ff871e9a12d02bcffe44","author":{"email":"695d76d5a2f51dc9340d65ccd0d72ad7560773f9@squareup.com","name":"Eric Ayers"},"message":"Prepare for 0.0.41 release\n\nTesting Done:\nCI running at https://travis-ci.org/pantsbuild/pants/builds/74579847\nRendered changelog uploaded @ http://pantsbuild.github.io/staging/zundel/changelog.html\n\nBugs closed: 1934\n\nReviewed at https://rbcommons.com/s/twitter/r/2581/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/ab901585d05031d88930ff871e9a12d02bcffe44"},{"sha":"565a7860be5468cf585fa618083d521343bc92b3","author":{"email":"695d76d5a2f51dc9340d65ccd0d72ad7560773f9@squareup.com","name":"Eric Ayers"},"message":"Bump pants version to 0.0.41","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/565a7860be5468cf585fa618083d521343bc92b3"},{"sha":"31a886fe4dc987f4454c1ab3b87dcee8e3e9ca59","author":{"email":"040cff05bd320eb0560246813fe142b421636f09@gmail.com","name":"Benjy Weinberger"},"message":"Remove some convenience references on Options. #docfixit\n\nCurrently, optionables that want to use custom option types\nmust import Options, which is overkill and will lead do\ncircular import problems in a pending #docfixit change to\nimprove help output.\n\nTesting Done:\nCI passes: https://travis-ci.org/pantsbuild/pants/builds/74860420\n\nReviewed at https://rbcommons.com/s/twitter/r/2587/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/31a886fe4dc987f4454c1ab3b87dcee8e3e9ca59"},{"sha":"e92e7697cf6d9611a29eacd3a8161abee43209f3","author":{"email":"040cff05bd320eb0560246813fe142b421636f09@gmail.com","name":"Benjy Weinberger"},"message":"Add the optionable class to ScopeInfo. #docfixit\n\nNot all scopes have corresponding optionables (e.g.,\nintermediate scopes don't), but most do, and in those cases\nit would be convenient to wrap the optionable class up in\nthe ScopeInfo. E.g., help generation can get scope-wide\ndescription text from it.\n\nWhile doing this, simplified the set of categories (we don't\nactually need the distinction between TASK_SUBSYSTEM and\nGLOBAL_SUBSYSTEM), which also allowed the optionable class\nto create its own ScopeInfo, instead of invoking the ScopeInfo\nctor directly all over the place, with redundant arguments.\n\nTesting Done:\nCI passes: https://travis-ci.org/pantsbuild/pants/builds/74889162\n\nReviewed at https://rbcommons.com/s/twitter/r/2588/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/e92e7697cf6d9611a29eacd3a8161abee43209f3"},{"sha":"e23414e98ba708aa80e332121162aa3fd90e88fa","author":{"email":"a13b1135e6f2f8530e85bc2896cd5ed89a6ed863@twopensource.com","name":"David Turner"},"message":"Fix more realpath issues\n\nTesting Done:\nCI is green at:\nhttps://travis-ci.org/pantsbuild/pants/builds/74622671\n\nBugs closed: https://github.com/pantsbuild/pants/issues/1933\n\nReviewed at https://rbcommons.com/s/twitter/r/2582/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/e23414e98ba708aa80e332121162aa3fd90e88fa"},{"sha":"f612f023e0e49c18e8f307a8ba647e02b0fb5cb8","author":{"email":"2700019cef58b76c97a994f3ec46da1e3309f52a@gmail.com","name":"Fedor Korotkov"},"message":"Moved classifier from IvyArtifact to IvyModuleRef\n\nThis chaneg doesn't address all what Eric proposed. It's an initial step so futher refactorings will be smaller.\n\nThis change simply moves classifier from IvyArtifact to IvyModuleRef.\n\nTesting Done:\nhttps://travis-ci.org/fkorotkov/pants/builds/74449287\n\nBugs closed: 1489\n\nReviewed at https://rbcommons.com/s/twitter/r/2579/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/f612f023e0e49c18e8f307a8ba647e02b0fb5cb8"},{"sha":"7cceab08d4e019e1b83f83d646a79787772ab74e","author":{"email":"bb1f132dcb86bfc59bf4a043a3139a9ac7c0b658@gmail.com","name":"Stu Hood"},"message":"Cleanups to the tasks developer's guide #docfixit\n\n- Use simpler `include` examples (was previously including `register.py` from the JVM backend, which is pretty hairy)\n- Expand the Product section and place it before the `require_data` section, in order to explain what products are before talking about how they influence ordering\n- Add a section describing option options.\n- Add some links to other portions of the docs that better explain concepts.\n\nTesting Done:\ninspection of:\n\n    build-support/bin/publish_docs.sh -o\n\nhttps://github.com/pantsbuild/pants/pull/1949\n\nReviewed at https://rbcommons.com/s/twitter/r/2594/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/7cceab08d4e019e1b83f83d646a79787772ab74e"},{"sha":"c91d32856639cd4912e9c7344381af997dd156a1","author":{"email":"bb1f132dcb86bfc59bf4a043a3139a9ac7c0b658@gmail.com","name":"Stu Hood"},"message":"Fix accidental cruft in previous commit.","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/c91d32856639cd4912e9c7344381af997dd156a1"},{"sha":"d038df91116c3a7b8336a06fe33759664acb1d35","author":{"email":"611c518744362208b53e7b6cfb4f421f57702d14@gmail.com","name":"Cody Gibb"},"message":"Support for Go\n\nImplements basic fetching, compiling, running, and testing Go code in Pants.\n\nThis RB is intended as a sanity check for the design / implementation of Go tasks and targets. If everything so far looks to be reasonable, then I will follow up with two more reviews:\n1. Transitive dependency resolution for remote packages\n2. Integration / unit testing\n\nAlso, please keep in mind that some design decisions in my implementation differ from the design draft I sent out last week.\n\nTesting Done:\nCI went green here: https://travis-ci.org/pantsbuild/pants/builds/75123556\n\nBugs closed: 1885\n\nReviewed at https://rbcommons.com/s/twitter/r/2544/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/d038df91116c3a7b8336a06fe33759664acb1d35"},{"sha":"7f738da27f4d5bfe5c5d369567aa675f8b5ed0ae","author":{"email":"a13b1135e6f2f8530e85bc2896cd5ed89a6ed863@twopensource.com","name":"David Turner"},"message":"Make jvm bundles output globs in filedeps with --globs.\n\nTesting Done:\nNew test case passes.\nCI green: https://travis-ci.org/pantsbuild/pants/builds/75018408\n\nReviewed at https://rbcommons.com/s/twitter/r/2583/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/7f738da27f4d5bfe5c5d369567aa675f8b5ed0ae"},{"sha":"0b329f36a741214304da0c4fc8eb898c2d702711","author":{"email":"a13b1135e6f2f8530e85bc2896cd5ed89a6ed863@twopensource.com","name":"David Turner"},"message":"Fix some more missing globs in build-file-rev mode.\n\nSome of these globs were caused because resources eagerly converted\nthe sources field to a list before its filespec had a chance to be\ncaptured.  Others were because has_sources was called on some targets,\nwhich checks for any on-filesystem source files; in globs mode, we\nonly care about globs, not actual files, so we don't care if a target\nhas sources.\n\nTesting Done:\nManual testing.\n\nCI green: https://travis-ci.org/pantsbuild/pants/builds/74989718\n\nReviewed at https://rbcommons.com/s/twitter/r/2591/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/0b329f36a741214304da0c4fc8eb898c2d702711"},{"sha":"5061de98d8c20dfdf0e625522aad8c8681f603af","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Introduce GoDistribution.\n\nThe GoDistribution encapsulates obtaining a go distribution at a fixed\nversion and running commands against it.\n\nTesting Done:\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/75131799\n\nBugs closed: 1948, 1950\n\nReviewed at https://rbcommons.com/s/twitter/r/2595/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/5061de98d8c20dfdf0e625522aad8c8681f603af"},{"sha":"65ac286d01d82437143a591fd8e4c13b8235db29","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Upgrade to pex 1.0.3.\n\nThe changelog is here:\n  https://pypi.python.org/pypi/pex/1.0.3\n\nOf particular note to pants are fixes for python interpreter discovery\non OSX and improved handling of sys.exit in pexes generated by pants.\n\nTesting Done:\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/75153059\n\nBugs closed: 1908, 1952\n\nReviewed at https://rbcommons.com/s/twitter/r/2596/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/65ac286d01d82437143a591fd8e4c13b8235db29"},{"sha":"b9de0e49cc6bef6d2ff48afe331f70c025f692c6","author":{"email":"8a48ad68f751b273a85583580b85b5eceb3e5ac9@twopensource.com","name":"Kris Wilson (Twitter)"},"message":"Pin pex==1.0.3, alpha-sort & remove line breaks\n\nhad this queued up anyway so figured I'd throw it out as general cleanup - take it or leave it.\n\n- Pin pex==1.0.3\n- Alpha-sort requirements\n- Remove extraneous line breaks\n- Correct pex version comment (< vs >=)\n\nTesting Done:\nCI went green here: https://travis-ci.org/pantsbuild/pants/builds/75161164\n\nBugs closed: 1953\n\nReviewed at https://rbcommons.com/s/twitter/r/2598/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/b9de0e49cc6bef6d2ff48afe331f70c025f692c6"},{"sha":"79772729b5d3f318543f724f1b44bc2ea88fc55a","author":{"email":"611c518744362208b53e7b6cfb4f421f57702d14@gmail.com","name":"Cody Gibb"},"message":"Integrate GoDistribution with GoTask\n\n- Go tasks no longer use `go` command directly\n- Removed `go` availability guards on integration tests\n\nTesting Done:\nCI went green here: https://travis-ci.org/pantsbuild/pants/builds/75183173\n\nBugs closed: 1956\n\nReviewed at https://rbcommons.com/s/twitter/r/2600/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/79772729b5d3f318543f724f1b44bc2ea88fc55a"},{"sha":"dbb0443715bbaaafc5b4cf22adc7b6bb67fc3257","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Improve subsystem_util.\n\nAdd a context manager that supports fully bootstrapping a Subsystem\ninstance.  In the process factor up the bootstrapping code for re-use by\nBaseTest.\n\nUse the subsystem_instance to address some TODOs and simplify tests.\n\nTesting Done:\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/75291972\n\nBugs closed: 1960\n\nReviewed at https://rbcommons.com/s/twitter/r/2603/","distinct":true,"url":"https://api.github.com/repos/gmalmquist/pants/commits/dbb0443715bbaaafc5b4cf22adc7b6bb67fc3257"}]}