{"push_id":1339469154,"size":9,"distinct_size":1,"ref":"refs/heads/optional_sources","head":"6e293968426b95c4b2bd55281e04190b91cd790a","before":"207c29aa5ac41c198491b94acc3bed58d23b70cb","commits":[{"sha":"7a79f52f014d838d2178c4e2c08b1bb2b8ce4c15","author":{"name":"Nick Howard (Twitter)","email":"563680712feb31124802cc3475789de064d53427@twopensource.com"},"message":"[engine] Rule Graph construction perf improvements\n\nThis follows up https://rbcommons.com/s/twitter/r/4251/, cleaning up the perf todos.\n\nIt passes through the full graph construction's intermediate states so that they can short circuit subsequent subgraph constructions.\n\nIt also moves transitive unfulfillable rule elimination so that it happens once for both full graph and subgraph instead of once per construction.\n\nThere's also a bug fix in RuleEdges matching, which was caused by matching being overly broad.\n\nTesting Done:\nRan engine tests locally. CI passed at https://travis-ci.org/pantsbuild/pants/builds/165317483\n\nBugs closed: 3928\n\nReviewed at https://rbcommons.com/s/twitter/r/4281/\n\ncloses #3928","distinct":false,"url":"https://api.github.com/repos/benjyw/pants/commits/7a79f52f014d838d2178c4e2c08b1bb2b8ce4c15"},{"sha":"ce5f34706e4791bfe32c94de82f1233360e3b110","author":{"name":"Stu Hood","email":"50abbb3a4290d1d6c08c7e8a002d0c743d331242@gmail.com"},"message":"Clean up after failed artifact extractions\n\nIn the case of a corrupted remote artifact, we rely on tarball checksums to determine whether an extraction attempt has failed. But because we don't see tarball extraction errors until after some of the contents of the tarball might have been extracted, we might have already polluted the workspace.\n\nLuckily, for Tasks that set `cache_target_dirs`, the contents of the cache artifact should all be located under the `results_dir`, meaning that clearing the `results_dir` in case of failure to extract should purge partially extracted artifacts.\n\n- Clean up after failed artifact extractions which specify a results_dir.\n- Move initialization of results_dirs before cache lookups and validate that they are are set by accessing them via their property whenever `cache_target_dirs` is set.\n- Deprecate compression level ==0, which disables gzip compression entirely, and doesn't seem to do any checksumming (without compression, none of truncating/mutating/etc of the test file were detected)\n- Extract the `pants_test.cache.cache_server` helper to provide a \"remote\" cache server for integration testing\n- Add an end-to-end corruption test for java compilation\n\nTesting Done:\ngreen ci: https://travis-ci.org/pantsbuild/pants/builds/165385610\n\nBugs closed: 3894, 3895\n\nReviewed at https://rbcommons.com/s/twitter/r/4255/","distinct":false,"url":"https://api.github.com/repos/benjyw/pants/commits/ce5f34706e4791bfe32c94de82f1233360e3b110"},{"sha":"924b78c5a75ef2e0fd7a3640f8c2ec82c9c9f657","author":{"name":"Yujie Chen","email":"65c382bc2340b7893f23fa0d1be4ebac3c5fd60c@gmail.com"},"message":"Refactor Intermediate Target Generation Logic\n\nThe current intermediate target logic uses integer index to tag target name. This has 2 major problems:\n1. This creates output difference between v1 and v2 engine. In v1 engine, parse_context is created for each BUILD file. Thus the index will be initialized to 0 for each BUILD file. But in v2 engine, only 1 parse_context will ever be created, which means index will only be initialized to 0 at the beginning and keep growing afterwards. This causes output intermediate target names being different between v1 and v2 engine.\n2. The current logic will create a new target every time it sees \"scoped, intransitive, or provided\" field, even though they may refer to the same target, which leads to redundant intermediate targets.\n\nThis review does:\n1. Extract a common base class IntermediateTargetFactory. IntransitiveDependencyFactory, ProvidedDependencyFactory and ScopedDependencyFactory all subclass IntermediateTargetFactory.\n2. The base class holds a class variable which is a set that holds the tuples (\"intermediate target name\", \"relpath to BUILD file\"). This is to make sure a unique target is created only once in each dir (The reason we choose dir but not the entire repo is that v2 engine has undeterminded execution order, thus the intermediate target may be created in non-determined dirs if we want to enforce this uniqueness in repo level).\n3. Instead of using index, hash target's full adress and its scope to generate an identifier.\n4. Add some integration tests\n\nTesting Done:\nhttps://travis-ci.org/pantsbuild/pants/builds/165646469\n\nBugs closed: 3917\n\nReviewed at https://rbcommons.com/s/twitter/r/4277/","distinct":false,"url":"https://api.github.com/repos/benjyw/pants/commits/924b78c5a75ef2e0fd7a3640f8c2ec82c9c9f657"},{"sha":"b0e39149248bf8bd35f39c2a4a179b90505db30f","author":{"name":"Benjy Weinberger","email":"a509d487a5f8dbb865a9ea050fc89e4377b3af8b@gmail.com"},"message":"Update the setup.py description.\n\n\"A bottom-up build tool\" isn't particularly descriptive, and it\nappears on all our PyPI releases.\n\nI'm open to alternative phrasing, this is my best suggestion so far.\n\nTesting Done:\nCI away: https://travis-ci.org/pantsbuild/pants/builds/165594440\n\nReviewed at https://rbcommons.com/s/twitter/r/4283/","distinct":false,"url":"https://api.github.com/repos/benjyw/pants/commits/b0e39149248bf8bd35f39c2a4a179b90505db30f"},{"sha":"972a2577ab88fc52ed207fcf92b5dd479f60b1bc","author":{"name":"John Sirois","email":"a3aece39382087830532a4184dc76ba110e155bd@gmail.com"},"message":"Add libffi to pants pre-reqs, qualify JDK req.\n\nTesting Done:\nRendered here:\n  https://github.com/jsirois/pants/blob/fcaf99f0b0d365af96fd51edf445cfa1314cff80/README.md\n\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/165870980\n\nBugs closed: 3935\n\nReviewed at https://rbcommons.com/s/twitter/r/4285/","distinct":false,"url":"https://api.github.com/repos/benjyw/pants/commits/972a2577ab88fc52ed207fcf92b5dd479f60b1bc"},{"sha":"ce5172338e508728ebe2275f62453aadb2901609","author":{"name":"Peiyu Wang","email":"d174f8fb0d546c0de85a0b484162cd0c833dc038@gmail.com"},"message":"Clean up zinc analysis unused code/tests\n\nThis is in preparation of upgrading zinc (Will resurrect past effort rb/3658, rb/4064).\nFormat of new analysis has changed, this clean up will help reduce the migration effort.\n\nWhat's removed:\n\n* `split`\n* `merge`\n* misc unused methods here and there.\n\nWhat's left:\n\n* `rebase` (used for `relativize` and `localize`)\n* `parse_products`\n* `parse_deps`.\n\n[1] https://rbcommons.com/s/twitter/r/3658/\n[2] https://rbcommons.com/s/twitter/r/4064/\n\nTesting Done:\nhttps://travis-ci.org/peiyuwang/pants/builds/165438274\n\nBugs closed: 3937\n\nReviewed at https://rbcommons.com/s/twitter/r/4286/","distinct":false,"url":"https://api.github.com/repos/benjyw/pants/commits/ce5172338e508728ebe2275f62453aadb2901609"},{"sha":"5271d80ff98eda4d4586741c768de4aa5bc156a5","author":{"name":"Benjy Weinberger","email":"a509d487a5f8dbb865a9ea050fc89e4377b3af8b@gmail.com"},"message":"Prepare the 1.2.0rc0 release.\n\nTesting Done:\nCI passes: https://travis-ci.org/pantsbuild/pants/builds/165938240\n\nReviewed at https://rbcommons.com/s/twitter/r/4288/","distinct":false,"url":"https://api.github.com/repos/benjyw/pants/commits/5271d80ff98eda4d4586741c768de4aa5bc156a5"},{"sha":"cace0c4600348a39949766d6afc35ef8866c58e4","author":{"name":"John Sirois","email":"a3aece39382087830532a4184dc76ba110e155bd@gmail.com"},"message":"Leverage default targets throughout pants BUILDs.\n\nAdd support for the default name protocol to managed_jar_dependencies to\nsupport this cleanup sweep.\n\nTesting Done:\nBrought to you almost completely by sed and bash:\n```\nfind . -name \"BUILD*\" | \\\nxargs grep -E \"name\\s*=\" | \\\nsed -r -e \"s|((.*/)?([^/]+)/BUILD[^:]*):.*name\\s*=\\s*['\\\"]([^'\\\"]+)['\\\"].*|\\1 \\3 \\4|\" | \\\nwhile read file dir name\ndo\n  [ \"$dir\" == \"$name\" ] && echo \"$file $name\"\ndone | \\\nsort -u | \\\nwhile read file name\ndo\n  sed -ri \\\n    -e \"s|(\\s*name\\s*=\\s*['\\\"]$name['\\\"]\\s*,\\s*|(|\" \\\n    -e \"/name\\s*=\\s*['\\\"]$name['\\\"]/d\" $file\ndone\n```\n\nFor posterity, the 1 code (non-BUILD) change is here:\n  https://rbcommons.com/s/twitter/r/4287/diff/1?page=5#98\n\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/165928657\n\nBugs closed: 3936\n\nReviewed at https://rbcommons.com/s/twitter/r/4287/","distinct":false,"url":"https://api.github.com/repos/benjyw/pants/commits/cace0c4600348a39949766d6afc35ef8866c58e4"},{"sha":"6e293968426b95c4b2bd55281e04190b91cd790a","author":{"name":"Benjy","email":"a509d487a5f8dbb865a9ea050fc89e4377b3af8b@gmail.com"},"message":"Merge branch 'master' into optional_sources","distinct":true,"url":"https://api.github.com/repos/benjyw/pants/commits/6e293968426b95c4b2bd55281e04190b91cd790a"}]}
{"actor":{"display_login":"benjyw"}}